Donnerstag, 5. März 2020

Redundanz des Active Directorys bei LDAPS beibehalten

Ausgangslage:

Die erzwungen Umstellung der LDAP Abfragen auf LDAP Channel Binding oder LDAPs "ADV190023" bringt so manchen Domain Admin und Administrator ins schwitzen. Was sollt man tun, wenn die Anwendung nur eine Eingabefeld für den Authentifizierungsserver hat (Bsp: Tomcat) und man die Redundanz der Domainaufrufs beibehalten will.


Hier die Lösung:

Die für LDAPs benötigten Zertifikate sind meist schon auf den jeweiligen Domain Controller vorhanden und beinhalten wie von Microsoft gefordert als CN= den FQDN des Domain Controllers. Dieser eindeutiger Eintrag im Zertifikat ist aber hinderlich wenn man in der Applikation welche man umstellt nur ein Feld für die LDAP Server hat, sich aber die Redundanz der mehrfach vorhanden Domain Controller zu Nutze machen will.
Bei einer reinen LDAP Abfrage auf den Domain Name war dies  bisher einfach möglich.

Durch die Umstellung auf LDAPs hat man das Problem, dass die Abfrage welche zuvor auf den hinterlegten Domain Name lautete z.B. ldap:///DomainName.Beispiel.com   nicht mit dem CN des Zertifikates übereinstimmt und somit die LDAPS Abfrage nicht erfolgreich ist.

Workaround der funktioniert aber umständlich ist:
Der einfachste Weg ist es das Zertifikat der Domain Controller mit den benötigten Inhalten wie dem Domain Namen oder einem (falls gewünscht) extra für LDAPs definierten DNS Namen zu ergänzen. Das Attribut dafür gibt es schon und nennt sich das SAN Attribut.

Dieser Workaround ist umständlich und für mich nicht zufriedenstellend. Durch diese Anpassung müssen beim beziehen des Zertifikates die SAN-Felder manuell ausgefüllt werden und das bei jedem erneuern auf jedem Domain Controller. Somit ist das automatische erneuern der Zertifikate nicht mehr möglich.

Lösung dieses Dilemmas lässt sich durch einen zwar nicht offiziell von Microsoft unterstützen Kniff lösen. Man bedient sich dem automatischen Renewal Prozess von Zertifikaten welche schon ausgestellt sind.
Dazu erstellt man das Zertifikate in der initialen Version manuell oder per PS Befehl, so wie auf den jeweiligen Domain Controllern benötigt. Das Autoenrollment wird erst danach aktiviert. So wird das Zertifikat zukünftige automatisch erneuert und die manuellen Tasks werden auf ein Minimum begrenzt.