Doorgaan naar hoofdcontent

Gebruik van X.509 certificaten voor authenticatie

Op mijn werk hebben we een Extranet omgeving dat draait op Lotus Domino 6.5 en Websphere Application Server (WAS) 5.1. Deze omgeving maakt gebruik van SSO (Single Sign On) op basis van een LTPA token. In dit LTPA token zit versleuteld de gebruikersnaam en het wachtwoord en voorkomt dat de gebruiker zich meerdere keren moet authenticeren. Naast het gebruik van de gebruikersnaam/wachtwoord authenticatie methode willen we ook het gebruik van client certifcaten (X.509, bijvoorbeeld het Digitaal Paspoort van ADP Business Services) ondersteunen.

Het gebruik van X.509 certificaten (= SSL client certificaat) vergt enkele kleine configuratie wijzigingen. Echter het achterhalen van de juiste instellingen heeft mij de nodige tijd gekost omdat de documentatie hierover vrij summier is. Ik zal hieronder kort aangeven wat waar geconfigureerd diende te worden in onze situatie (bestaande SSO situatie: Domino - Websphere).

Lotus Domino

Binnen onze omgeving is de Domino server in gebruik als LDAP directory en maken we gebruik van de 'Internet Sites' configuratie documenten. Op het web site document van ons Extranet (Domino Directory, Configuration -> Web -> Internet Sites) dient de volgende configuratie instelling gewijzigd te worden. Op het Security tabblad dient onder het kopje 'SSL Authentication' de optie 'Client certificate' op 'Yes' gezet te worden. Vervolgens dient de aanpassing opgeslagen te worden en zal de HTTP taak herstart dienen te worden ('tell HTTP Restart' op de server console).

Om straks te kunnen testen dient op een van de persoonsdocumenten (in de Domino Directory) het publieke gedeelte van het X.509 certificaat geplaatst te worden. Om dit te doen open (in read modus) je het persoonsdocument van de gebruiker waar het certificaat aan toegevoegd dient te worden. Vervolgens selecteer je uit het menu Actions de optie 'Import Internet Certificates'. Je zal dan gevraagd worden het certificaat te selecteren (standaard het PKCS12, *.p12 of *.pfx, formaat). De wizard zal je het wachtwoord laten invoeren, de gegevens van het certificaat tonen en je vragen het certificaat te accepteren middels de knop 'Accept All'. Als je vervolgens het persoonsdocument sluit en weer opent zal je op het tabblad 'Certificates -> Internet Certificate(s)' zien dat het certificaat is toegevoegd.

Wat belangrijk is om te controleren is dat het Common Name (CN) gedeelte van het X.509 certificaat aanwezig is op het persoonsdocument, in het User Name veld (technische veldnaam: FullName), en dat het veld waarin deze staat gebruikt kan worden om te authenticeren. In onze situatie maken we gebruik van hetDigitaal Paspoort van ADP Business Services en ontbrak de naam uit het certificaat op het persoonsdocument. Ik heb dit handmatig toegevoegd zodat er een match is tussen het certificaat en een document in de Domino Directory.

Realiseer je wel dat een certificaat maar een keer (op een persoonsdocument) kan voorkomen in de Domino Directory. De server zal bij een authenticatie poging gaan zoeken aan de hand van de Common Name van het certificaat. Als bij de naam waarop gezocht wordt een persoonsdocument gevonden wordt zal vervolgens gekeken worden of de publieke sleutel van het certificaat overeenkomt. Als dit zo is dan wordt de gebruiker geauthenticeerd en anders wordt deze de toegang geweigerd. Behalve als gebruikersnaam/wachtwoord authenticatie nog aanstaat, in dit geval zal de gebruiker gevraagd worden op deze manier te authenticeren. Wat gebeurd er als de server meerdere documenten terug krijgt bij zijn zoekactie? In dit geval zal het eerste document gecontroleerd worden. Als er een match is stopt het proces (gebruiker geauthenticeerd), anders zal iedere keer het volgende document gecontroleerd totdat er uiteindelijk een match is (of niet, er zal dan geen toegang verleend worden).

Websphere

In onze omgeving maakt WAS gebruik van de Domino LDAP taak. Binnen WAS dienen we een configuratie aanpassing te maken bij de LDAP instellingen. Open hiervoor de Administrative Console. Ga naar de LDAP instellingen ('Security -> User Registries -> LDAP) en open daar onder 'Additional Properties' de optie 'Advanced LDAP Settings'. In ons geval (Digitaal Paspoort) moesten we bij 'Certificate Map Mode' kiezen voor de instelling 'CERTIFICATE_FILTER'. Vervolgens moesten we bij 'Certificate Filter' het volgende instellen: 'cn=${SubjectCN}'. Hiermee geven we aan dat bij certificaten gekeken dient te worden naar de Common Name van het certificaat en dat we deze moeten koppelen aan de Common Name binnen LDAP. Nadat we de instellingen hebben opgeslagen dient wel de WAS server herstart te worden voordat de instellingen actief worden.

Applicatie

Als laatste moesten we nog een kleine configuratie aanpassing plegen aan onze Java applicatie. In het EAR bestand moesten we in het 'web.xml.auth' configuratie bestand het volgende toevoegen bij de authenticatie instellingen.

<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>User Auth</realm-name>
</login-config>

Zie het artikel 'Compare and contrast the authentication types (BASIC, DIGEST, FORM, and CLIENT-CERT); describe how the type works; and given a scenario, select an appropriate type.' voor meer informatie hier over.

Nadat we de aangepaste applicatie geinstalleerd hadden en de servers geprepareerd hadden konden we succesvol inloggen met een client certificaat.

Reacties

Populaire posts van deze blog

Active Directory limieten

Zoals ieder systeem heeft Active Directory ook zijn limieten. Tijdens wat Active Directory research kwam ik het volgende Technet artikel tegen waarin deze worden benoemd: Active Directory Maximum Limits . Kort samengevat zijn de limieten: Maximum aantal objecten per domain controller in een forest : ongeveer 2,5 biljoen (gedurende de volledige levensduur). Maximum aantal security identifiers (SID's) per domein : ongeveer 1 biljoen (gedurende de volledige levensduur). Aantal groepen waarvan een security indentifier (persoon, groep, computer account) lid kan zijn : ongeveer 1.015 groepen. FQDN lengte limiet : maximum lengte is 64 tekens (dit is inclusief punten en mintekens) voor de fully qualified domain name (FQDN). Bestandsnaam limiet : Windows kent een pad lengte limiet van 260 tekens. Deze is ook van toepassing op de fysieke bestanden van AD zoals SYSVOL. Organisational unit limiet : maximum lengte is 64 tekens. Heeft te maken met de Windows limiet van 260 tekens die in de gaten

Winsxs folder neemt veel ruimte in

In Windows Millenium is de Winsxs folder geintroduceerd. Deze folder bevat meerdere versies van in gebruik zijnde DLL bestanden. Het doel hiervan is dat iedere programma de juiste versie van de benodigde DLL kan gebruiken. Dit principe staat ook wel bekend als "Windows Side by Side". De folder die hiervoor gebruikt wordt is dus "C:\Windows\winsxs" en deze folder vormt dus de native assembly cache. In een tijd dat het vrij normaal is dat een computer is voorzien van een 500 GB harde schijf is de overhead van meerdere versies van een bestand opslaan niet echt een probleem. Echter in mijn geval wel. Op een van mijn multi boot computers heb ik een Vista Ultimate (met daarop Vista, MS Office en enkele andere programa's) van 32 GB. Mijn (persoonlijke) data staat op een aparte partitie. Door de installatie van de vele Windows updates is de vrije ruimte op deze partitie gezakt tot 2,85 GB (en dus in de rode waarschuwingszone terecht gekomen). Van de 32 GB is meer dan

Bevindingen over de E-tech ADWG02 tot nu toe

Ik heb de E-tech ADWG02 nu bijna een week in gebruik. Dit is de vervangende modem voor de buggy Linksys WAG54G die ik eerder gekocht had. Mijn bevindingen over de E-tech tot nu toe: Geen crashes tot nu toe. De firmware lijkt op dat punt stabiel. Het apparaat is niet door middel van een knop aan of uit te zetten. Erg vervelend omdat ik het apparaat alleen uit kan zetten door de stekker uit het stopcontact te halen. De reden dat ik hem graag uit wil kunnen zetten is dat het apparaat in de woonkamer staat (in het zicht) en de lampjes nogal fel schijnen. Dat vind ik niet erg prettig. Daarnaast wil ik niet dat de verbinding de gehele dag open staat uit beveiligingsoverwegingen en vanwege het stroomverbruik. WIFI is middels een setting uit te zetten. Als je de setting uitvinkt en bevestigd door middel van een 'apply' zie je het lampje uitgaan op de ADSL modem. Er is op dat moment ook geen WIFI verbinding actief. Sla je de setting definitief op dan reboot de modem automat