Sean Deuby | Leitender Technologe, Amerika

Da Unternehmen Cloud-Computing mittlerweile als Teil ihres Geschäftsmodells nutzen, entscheidet sich ein großer Anteil davon dafür, ihre lokale Active Directory-Umgebung mit dem entsprechenden Dienst in der Cloud – Microsofts Azure Active Directory – zu verbinden. Wenn Sie Ihr lokales AD auf Azure AD erweitern, haben Sie zwei Möglichkeiten, wie sich lokale Benutzer beim Clouddienst authentifizieren sollen: Identitätsverbund und direkte Authentifizierung mit Azure AD. Obwohl die direkte Authentifizierung technisch gesehen die einfachere der beiden Methoden ist, erfordert sie die Aktivierung einer Funktion, die als Passwortsynchronisierung bezeichnet wird. Und ich bin der Meinung, dass die Passwortsynchronisierung eine ziemlich wenig bekannte Funktion ist, die einer näheren Erläuterung bedarf.

Microsoft bietet zwei Möglichkeiten zur Authentifizierung bei Azure AD an: Identitätsverbund oder direkte Authentifizierung über Azure AD selbst. Die Identitätsföderation mit einem Föderationsdienst wie AD FS oder PingFederate ermöglicht Single Sign-On für Azure AD, indem Benutzer zur Authentifizierung vom Clouddienst zurück an ihr lokales AD weitergeleitet werden. Die andere Option, die direkte Authentifizierung in Azure AD, setzt voraus, dass die Benutzer-ID und das Kennwort des Benutzers lokal im Clouddienst gespeichert werden. Für Unternehmen muss dies über die Kennwortsynchronisierungsfunktion des AD Connect-Dienstes von Microsoft erfolgen; kein Drittanbieter stellt eine vergleichbare Funktion zur Verfügung.

Was ist eine Kennwort-Hash-Synchronisierung und warum sollte man sie verwenden?

Ganz vereinfacht ausgedrückt – auf der Ebene einer Skizze auf einer Serviette bei einer Cocktailparty – kopiert die Passwort-Hash-Synchronisierung (eine genauere Beschreibung, die ich weiter unten erläutern werde) das Passwort des Benutzers alle zwei Minuten von AD nach Azure AD. Dadurch können sich Benutzer mit derselben Benutzer-ID und demselben Passwort bei Azure AD anmelden, die sie auch für ihre AD-Anmeldung verwenden. Microsoft bezeichnet dieses Verfahren als „Same Sign-On“. Dies unterscheidet sich von „Single Sign-On“, da bei der Passwort-Hash-Synchronisierung die Benutzer zusätzlich zu ihrer bereits erfolgten Unternehmensanmeldung aufgefordert werden, sich bei Azure AD anzumelden.

Warum sollten Sie die Passwort-Hash-Synchronisierung nutzen? Vor allem, weil sie einfacher zu implementieren ist als ein Verbunddienst. Microsoft musste eine einfache Möglichkeit bereitstellen, lokale AD-Benutzer in Azure AD zu integrieren, und die Passwort-Hash-Synchronisierung ermöglicht dies, ohne dass ein hochverfügbarer Verbunddienst mit mehreren Servern erforderlich ist.

Und die einfachere Lösung hat sich als beliebt erwiesen. Etwa 50% der Unternehmen, die mit Azure AD synchronisieren, verwenden die Kennwort-Hash-Synchronisierung. Von diesen 50% sind die Hälfte kleine und mittelgroße Unternehmen. Die Kennwort-Hash-Synchronisierung bietet diesen Unternehmen einen reibungslosen Übergang zu einer Cloud-first- oder Cloud-only-IT-Infrastruktur, da sich die Benutzer bereits direkt mit dem Azure AD-Service authentifizieren.

Ein weiterer Vorteil der Passwort-Hash-Synchronisierung besteht darin, dass sie – im Gegensatz zur Föderation – nicht auf einen externen Föderationsdienst angewiesen ist, um Authentifizierungen durchzuführen. Tatsächlich bietet Microsoft die Passwort-Hash-Synchronisierung zusätzlich zur Föderation an, sodass sie als Ausweichlösung dienen kann, falls Ihr Föderationsdienst ausfällt.

Wie sicher ist die Kennwort-Hash-Synchronisierung?

Bitte beachten Sie, dass ich diese Funktion als „Passwort -Hash -Synchronisierung“ bezeichne – nicht als „Passwort-Synchronisierung“. Dies ist ein wichtiger Unterschied. Passwörter im Klartext werden nicht zwischen AD DS und Azure AD synchronisiert. Dies ist nicht nur keine gute Idee, sondern technisch gar nicht möglich, da Active Directory die Passwörter nicht im Klartext speichert. Wenn ein Benutzer sein Passwort in AD erstellt oder aktualisiert, wird es als einseitiger MD5-Hash auf den Domänencontrollern der Domäne gespeichert. Dieser Hash wird mit Azure AD synchronisiert und im Anmeldedaten-Speicher des Dienstes abgelegt.

Wie funktioniert das genau? Ich habe die folgenden Schritte aus dem Blogbeitrag „AAD Password Sync, Encryption, and FIPS Compliance“ von Alex Simon sowie aus einigen anderen Quellen zusammengestellt:

  1. Benutzerpasswörter werden als nicht umkehrbarer Hash in Windows Server Active Directory Domain Controllern (DCs) gespeichert. Wenn der Kennwort-Synchronisierungsagent auf AD Connect versucht, den Kennwort-Hash zu synchronisieren, verschlüsselt der DC den Hash. Die Verschlüsselung erfolgt mit einem Schlüssel, der aus dem RPC-Sitzungsschlüssel abgeleitet wird, indem dieser gesalzen wird. Die Ableitung des Schlüssels erfolgt wie folgt [wobei SaltedEncryptionKey = MD5 (RPC-Sitzungsschlüssel, 128-Bit-Zufallssalz)]. Der DC gibt das Salt auch über das Replikationsprotokoll an den Sync Agent weiter.
  2. Der ursprüngliche Passwort-Hash wird (mit Hilfe des DC-Replikationsprotokolls) vom DC zum Password Sync Agent repliziert.
  3. Der Password Sync Agent entschlüsselt den verschlüsselten Hash, indem er den Schlüssel wie oben beschrieben ableitet. Der Kennwort-Synchronisierungsagent verwendet MD5 zur Ableitung des Schlüssels, da die Ableitung mit der Ableitung identisch sein muss, die der DC durchgeführt hat (als er die Daten verschlüsselt hat). Und MD5 ist die höchste Stufe, die für diese Aktion im DC-Replikationsprotokoll bestehender Windows Server Active Directory-Implementierungen verfügbar ist.
  4. Nach der Entschlüsselung nimmt der Sync Agent den resultierenden ursprünglichen Passwort-Hash und wandelt ihn mit dem PKDF2-Schlüsselableitungsalgorithmus gemäß RFC 2898 in einen SHA256-Hash um.
  5. Der Password Sync Agent synchronisiert dann diesen SHA256-gehashten Passwort-Hash über die Leitung (ein verschlüsseltes Service Bus-Relay, das für den Azure AD-Mandanten bestimmt ist) mit Azure AD.
  6. Sobald die SHA256-gehashte Kopie des ursprünglichen Passwort-Hashes Azure AD erreicht, verschlüsselt Azure AD den Hash mit dem AES-Algorithmus, bevor er in der Cloud-Datenbank gespeichert wird.

Das Einzige, was auf dem Weg zu Azure AD die Leitung überquert, ist eine SHA256 gehashte Kopie des ursprünglichen Passwort-Hashes. Die Verwendung von MD5 durch den Passwort-Synchronisierungsagenten dient ausschließlich der Kompatibilität des Replikationsprotokolls mit dem DC und wird nur vor Ort zwischen dem DC und dem Passwort-Synchronisierungsagenten verwendet.

Nachteile der Passwort-Hash-Synchronisierung

Aus Sicht des Benutzers besteht der offensichtlichste Nachteil darin, dass er seine Unternehmensanmeldedaten ein zweites Mal eingeben muss, unabhängig davon, ob er im Unternehmensnetzwerk oder außerhalb in einem öffentlichen Netzwerk angemeldet ist. Diese Anmeldungen lassen sich jedoch reduzieren, indem das Kontrollkästchen „Angemeldet bleiben“ (KMSI) aktiviert wird. Durch das Aktivieren dieses Kontrollkästchens wird ein Sitzungscookie gesetzt, das die Authentifizierung für einen kurzen Zeitraum umgeht. Ihr Sicherheitsteam sollte hierzu Stellung nehmen, und das KMSI-Verhalten kann vom Azure AD-Administrator aktiviert oder deaktiviert werden.

Aus Sicht eines Identitätsspezialisten besteht das Problem bei der Synchronisierung von Passwort-Hashes darin, dass das Passwort zur Authentifizierung an mehr als einen Ort weitergegeben wird. Im Gegensatz dazu leitet die Föderation alle Authentifizierungsanfragen zurück an den Identitätsanbieter. Microsoft hat große Anstrengungen unternommen, um die Sicherheit dieses Prozesses zu gewährleisten, doch es ist durchaus berechtigt, Fragen zum Lebenszyklus des Passworts zu stellen.

Wann müssen Sie Password hash sync verwenden?

Es gibt einen Anwendungsfall, in dem Sie die Passwort-Hash-Synchronisierung verwenden müssen : wenn Sie sich für die Implementierung von Azure AD Domain Services entscheiden. Diese Funktion erstellt einen domain controller Dienst, den Azure-Anwendungen (wie z. B. VMs, auf denen AD-abhängige Anwendungen ausgeführt werden) nutzen können. Damit diese Domänencontroller jedoch funktional mit lokalen Domänencontrollern gleichwertig sind, müssen sie über Benutzer-Passwort-Hashes verfügen und erfordern daher die Passwort-Hash-Synchronisierung, um sie in Azure zu integrieren.

Die Passwort-Hash-Synchronisierung ist eine beliebte Lösung für die Integration Ihrer lokalen Identitäten in Azure AD. Sie ist zwar nicht so elegant wie die Identitätsföderation, dafür aber einfacher. Wie bei jeder Entwurfsentscheidung sollten Sie sicherstellen, dass Sie die Stärken und Schwächen dieser Lösung sowie deren Auswirkungen auf Ihre Situation gründlich abgewogen haben.