Lange Zeit bevor Samba (ab Version 4.0 im Jahr 2011) kompatibel zu Active Directory wurde, hat das Tool UCS AD-Connection schon geholfen, eine Brücke zwischen dem OpenLDAP-basierten Identity-Management von UCS und nativen Microsoft Active Directory Domänen zu bauen. Tatsächlich ist UCS AD-Connection der konzeptionelle Ausgangspunkt für den heute in UCS verwendeten S4-Connector, der OpenLDAP intern mit Samba/AD synchronisiert.
Eine der Herausforderungen in UCS AD-Connection ist es, auch die Passwort-Hashes von Benutzerkonten zwischen Active Directory und UCS/OpenLDAP zu synchronisieren. Während generell zur Synchronisation das LDAP-Protokoll verwendet wird, ist dies für die Passwort-Hashes und Kerberos-Keys keine Option, da Active Directory diese aus Sicherheitsgründen nicht per LDAP oder LDAPS über das Netzwerk verfügbar macht. Falls eine Synchronisation der Passwort-Hashes in einem Kundensetup tatsächlich gewünscht war, war daher die Installation eines separaten Passwort-Dienstes auf dem entsprechenden Micosoft AD-Domänencontroller notwendig. Der Code dazu stammte urspünglich aus dem copypwd Tool und wurde 2010 durch den Code von pwdump6 abgelöst, der auch auf 64bit-Systemen funktioniert.
Bis vor Kurzem funktioniert hat, muss man inzwischen sagen, denn in zwei mit UCS realisierten Kundenumgebungen fiel auf, dass der Dienst vermutlich aufgrund von Software-Updates auf dem Microsoft Windows-Domänencontroller für manche Benutzerkonten keine Passwort-Hashes mehr nach AD schreiben konnte. In einer Analyse des pwdump Quellcodes in der Univention Entwicklungsabteilung war relativ schnell die Ursache in einem nicht initialisierten Element einer SAMR/DCERPC-Datenstruktur gefunden, sodass sich das akute Problem in den beiden Kundenumgebungen zeitnah lösen ließ.
Gleichzeitig brachte diese Analyse unerwartet auch die Erkenntnis, dass die in pwdump verwendete RPC-Schnittstelle der Microsoft Active Directory Domänencontroller sich ja auch über eine verschlüsselte Netzwerkverbindung direkt vom der unter UCS laufenden AD-Connection aus nutzen lassen müsste. In einem spontanen Ausbruch enthusiastischer Entdeckerfreude entspann sich daraufhin zwischen zweien der Univention Entwicklern ein ungeplantes, aber sehr konstruktives Ping-Pong von Trial and Error, das am Ende des Tages (oder ein bisschen später) das Schreiben von Passwort-Hashes über die SAMR-Schnittstelle u. a. mithilfe von Samba Python Modulen erfolgreich gegen Samba demonstrierte.
Bei Tageslicht betrachtet war dann für die erfolgreiche Kommunikation mit nativem Active Directory noch eine kleine Protokoll-Anpassung notwendig, aber die Idee war geboren: Wenn wir nun noch das Auslesen der Passwort-Hashes über eine verschlüsselte Netzwerkverbindung realisieren könnten, dann würde sich UCS AD-Connection deutlich einfacher installieren und testen lassen, da nun man nicht mehr den speziellen Passwort-Dienst auf dem entsprechenden Micosoft AD-Domänencontroller installieren müsste. Gleichzeitig würde sich die Sicherheit der Umgebung erhöhen, wenn man auf diese zusätzliche Kompontente verzichten könnte, die bisher auf dem Microsoft AD-Domänencontroller manuell bei jedem Update aktualisiert werden musste.
Zur Freude der Entwicklungsabteilung ließ sich dieser Teil der Funktionalität des UCS AD-Connection Passwortdienstes nach etwas Recherche im Samba Quellcode relativ schnell finden und unabhängig von einem weiteren Entwickler verifizieren und mit einem Prototypen als praxistauglich demonstrieren.
Diese sich spontan ergebene Weiterentwicklung der UCS AD-Connection ist aus mehreren Gründen sehr erfreulich: Zum einen hat UCS AD-Connection durch Umgebungen, die UCS als Mitglied in nativen AD-Domänen nutzen, um UCS-basierte Open Source-Lösungen komfortabler aus dem Univention App Center zu installieren und für Active Directory Benutzer nutzbar zu machen, einen zweiten Frühling erlebt. Da es bei manchen dieser Apps wünschenswert ist, die Passwort-Hashes auch nach OpenLDAP zu synchronisieren, bringt die Neuimplementierung der Passwort-Hash-Synchronisation Kunden die oben genannten Vorteile. Zum anderen zeigt es, dass das im Laufe der Zeit im Hause Univention gesammelte Know-how im Bereich des Samba-Quellcodes und der in Microsoft Active Directory eingesetzten Protokolle sich immer häufiger in konkrete Lösungen umsetzen lässt. Darüber hinaus ist es ein schönes Beispiel der puren Entwicklungsfreude, durch die auch die Weiterentwicklung von UCS immer neuen Nutzen für UCS Anwender hervorbringt.