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.
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
Reacties