Sean Deuby

Jetzt, da Unternehmen Cloud Computing als Teil ihres Geschäftsmodells annehmen, entscheiden sich viele dafür, ihre lokale Active Directory-Umgebung mit ihrem Gegenstück 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 Cloud-Service authentifizieren können: Identitätsverbund und direkte Authentifizierung mit Azure AD. Die direkte Authentifizierung ist zwar technisch gesehen die einfachste der beiden Methoden, erfordert aber die Aktivierung einer Funktion, die als Kennwortsynchronisierung bekannt ist. Und ich denke, dass die Kennwortsynchronisierung eine ziemlich schlecht verstandene Funktion ist, die eine genauere Erklärung verdient.

Microsoft bietet zwei Möglichkeiten für die Authentifizierung bei Azure AD: Identitätsverbund oder direkte Authentifizierung mit Azure AD selbst. Der Identitätsverbund mit einem Verbunddienst wie AD FS oder PingFederate ermöglicht eine einmalige Anmeldung bei Azure AD, indem Benutzer vom Cloud-Dienst zurück zu ihrem lokalen AD zur Authentifizierung umgeleitet werden. Die andere Option, die direkte Authentifizierung in Azure AD, erfordert, dass die Benutzerkennung und das Kennwort des Benutzers lokal im Cloud-Service gespeichert werden. Für Unternehmen muss dies mit der Kennwortsynchronisierungsfunktion des AD Connect-Dienstes von Microsoft erfolgen; kein Drittanbieter bietet eine vergleichbare Funktion.

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

Auf der einfachsten Ebene, der Cocktail-Party-Skizze, kopiert die Kennwort-Hash-Synchronisierung (eine genauere Beschreibung, die ich weiter unten erläutern werde) alle zwei Minuten das Kennwort des Benutzers von AD zu Azure AD. Dadurch können sich Benutzer mit derselben Benutzerkennung und demselben Kennwort, das sie für ihre AD-Anmeldung verwenden, bei Azure AD anmelden. Microsoft nennt dieses Muster " same sign on". Es unterscheidet sich von Single Sign On, denn bei der Kennwort-Hash-Synchronisierung werden die Benutzer aufgefordert, sich zusätzlich zu ihrer Unternehmensanmeldung bei Azure AD anzumelden.

Warum sollten Sie die Kennwort-Hash-Synchronisierung verwenden? Hauptsächlich, weil es einfacher zu implementieren ist als ein Federation Service. Microsoft musste einen einfachen Weg finden, um lokale AD-Benutzer in Azure AD zu integrieren, und mit Password Hash Sync ist dies möglich, 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 Kennwort-Hash-Synchronisierung besteht darin, dass sie im Gegensatz zur Föderation nicht von einem externen Föderationsdienst abhängig ist, um Authentifizierungen zu verarbeiten. Microsoft bietet die Kennwort-Hash-Synchronisierung sogar zusätzlich zur Föderation an, so dass sie als Ausweichlösung verwendet werden kann, wenn Ihr Föderationsdienst ausfällt.

Wie sicher ist die Kennwort-Hash-Synchronisierung?

Beachten Sie, dass ich diese Funktion als Kennwort-Hash-Synchronisierung bezeichne - nicht als Kennwort-Synchronisierung. Das ist ein wichtiger Unterschied. Klartext-Passwörter werden nicht zwischen AD DS und Azure AD synchronisiert. Das ist nicht nur keine gute Idee, sondern auch technisch nicht möglich, da Active Directory nicht über die Klartext-Passwörter verfügt. Wenn ein Benutzer sein Passwort in AD erstellt oder aktualisiert, wird es als einseitiger MD5-Hash auf den DCs der Domäne gespeichert. Dieser Hash wird mit Azure AD synchronisiert und im Anmeldeinformationsspeicher des Dienstes gespeichert.

Wie funktioniert das genau? Ich habe die folgenden Schritte aus Alex Simons Blogbeitrag AAD Password Sync, Encryption, and FIPS Compliance und 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 in seinem Unternehmensnetzwerk oder in einem öffentlichen Netzwerk angemeldet ist. Diese Anmeldungen können jedoch reduziert werden, indem Sie das Kontrollkästchen "Angemeldet bleiben" (KMSI) aktivieren. Wenn Sie diese Option aktivieren, wird ein Sitzungs-Cookie gesetzt, das die Authentifizierung für einen kurzen Zeitraum umgeht. Ihr Sicherheitsteam wird sich dazu äußern wollen, und das KMSI-Verhalten kann vom Azure AD-Administrator aktiviert oder deaktiviert werden.

Aus Sicht des Identitätsprofis besteht das Problem bei der Synchronisierung von Kennwort-Hashes darin, dass Sie das Kennwort zur Authentifizierung an mehr als eine Stelle weitergeben. Im Gegensatz dazu werden bei Federation alle Authentifizierungsanfragen an den Identitätsanbieter zurückgeleitet. Microsoft hat große Anstrengungen unternommen, um die Sicherheit des Prozesses zu gewährleisten, aber es ist berechtigt, Fragen über den Lebenszyklus des Kennworts zu stellen.

Wann müssen Sie Password hash sync verwenden?

Es gibt einen Anwendungsfall, in dem Sie die Kennwort-Hash-Synchronisierung verwenden müssen : wenn Sie sich für die Implementierung von Azure AD Domain Services entscheiden. Diese Funktion erstellt einen Domänencontroller als Dienst, den Azure-Anwendungen (z.B. VMs, auf denen AD-abhängige Anwendungen laufen) nutzen können. Damit diese Domänencontroller funktional den lokalen Domänencontrollern entsprechen, müssen sie jedoch über Hashes von Benutzerkennwörtern verfügen und benötigen daher eine Kennwort-Hash-Synchronisierung, um sie in Azure zu erhalten.

Die Kennwort-Hash-Synchronisierung ist eine beliebte Lösung für die Integration Ihrer lokalen Identitäten mit Azure AD. Sie ist nicht so elegant wie die Identitätsföderation, aber einfacher. Wie bei jeder Design-Entscheidung sollten Sie die Stärken und Schwächen dieser Lösung durchdenken und prüfen, wie sie sich auf Ihre Situation auswirken.