Table of Contents
Seit geraumer Zeit (Anfang 2017) ist es nun möglich SSO Szenarien mit Azure auch ohne ADFS Infrastruktur zu lösen. Dennoch setzt es sich erst die letzte Zeit durch, das Unternehmen nicht mehr auf ADFS pochen. Nun darf man endlich auch die alternativen Lösungen von Microsoft aufzeigen.
Die möglichen Szenarien für Seamless SSO sind:
- Pass-through authentication (PTA)
- Password Hash Sync (PHS)
Pass-through authentication (PTA)
Nachteile
- Keine automatische Erkennung von gestohlenen Zugangsdaten
- Azure AD DS benötigt aktiviertes Password Hash Sync Feature im Tenant um zu funktionieren (Nachteil bei reinen PTA ohne PHS)
- Ist nicht Bestandteil der Azure AD Connect Health
Password Hash Sync (PHS)
„Nachteil„
- Passwort wird in die Cloud synchronisiert (Als Hash Wert)
Seamless Single Sign-On
Seamless Single Sign-On meldet Benutzer automatisch auf bestimmte Webseiten (z.B. myapps.microsoft.com) und Nativen Applikationen (z.B. Office365 Outlook) an, wenn man sich mit seinem Unternehmensgerät im Unternehmensnetzwerk (Lokal,VPN oder Direct Access) befindet.
Die Benutzer müssen zur Anmeldung bei Azure AD nicht ihr Kennwort und in der Regel nicht einmal ihren Benutzernamen (bei Domain Hint Adressen) eingeben.
Wichtig hierbei ist das es einen einfachen Zugriff ermöglicht, ohne dass zusätzliche lokale Komponenten, wie bei ADFS, erforderlich sind.
Vorteile
- Benutzer müssen nicht ständig ihr Kennwort eingeben
- Keine zusätzlichen lokalen Komponenten erforderlich
- Kann mithilfe einer Gruppenrichtlinie für einige oder alle Benutzer eingeführt werden
- Keine weiteren Lizenzkosten
- Ist einfach aktivierbar per AD Connect
- Benutzername kann der lokale Standard-Benutzername (UPN) oder ein anderes LDAP Attribut sein, das in Azure AD Connect konfiguriert ist
- Tritt aus irgendeinem Grund ein Fehler auf, wird die reguläre Benutzeranmeldung durchgeführt, d.h. Benutzer müssen ihr Kennwort auf der Anmeldeseite eingeben
- Leitet eine Anwendung die Parameter domain_hint oder den Parameter login_hint in der Azure AD-Anmeldeanforderung weiter, werden Benutzer automatisch ohne Eingabe von Benutzername oder Kennwort angemeldet
Ablauf einer Authentifizierung mit einer Web Anwendung
- Der Benutzer versucht, über einen Domänen Computer im Firmennetzwerk (Lokal, VPN oder Direct Access), auf eine Webanwendung zuzugreifen (z.B. https://myapps.microsoft.com/)
- Wenn der Benutzer nicht bereits angemeldet ist, wird der Benutzer zur Azure AD-Anmeldeseite umgeleitet
- Der Benutzer gibt auf der Azure AD-Anmeldeseite seinen Benutzernamen ein
- Wenn JavaScript im Hintergrund verwendet wird, fordert Azure AD den Browser über eine 401 – Nicht autorisiert -Antwort auf, ein Kerberos-Ticket bereitzustellen
- Der Browser fordert wiederum ein Ticket von Active Directory für das AZUREADSSOACC-Computerkonto an (das Azure AD bei der Aktivierung von Seamless SSO in der lokalen AD erstellt)
- Active Directory sucht das Computerkonto und gibt ein Kerberos-Ticket an den Browser zurück, das mit dem Azure AD Decryption Key des Computerkontos verschlüsselt ist
- Der Browser leitet das von Active Directory abgerufene Kerberos-Ticket an Azure AD weiter
- Azure AD entschlüsselt das Kerberos-Ticket, das die Identität des angemeldeten Benutzers enthält, mithilfe des ausgetauschten Decryption Key des AZUREADSSOACC-Computerkontos
- Nach der Auswertung gibt Azure AD entweder ein Token an die Anwendung zurück oder fordert den Benutzer auf, zusätzliche Nachweise z.B. per Multi-Factor Authentication bereitzustellen
- Wenn die Anmeldung erfolgreich ist, kann der Benutzer auf die Anwendung zugreifen
Hinweis: Wenn unter Punkt 1 eine Adresse genutzt wird, die eine domain_hint oder login_hint Parameterfunktion beinhaltet. Werden die Punkte 2 & 3 übersprungen.
Beispiel Adressen für domain_hint & login_hint
Microsoft Access Panel
https://myapps.microsoft.com/<Azure AD Domain> | https://myapps.microsoft.com/deyda.net |
Web Outlook
https://outlook.office365.com/<Azure AD Domain> | https://outlook.office365.com/deyda.net |
Office365 Portal
https://portal.office.com?domain_hint=<Azure AD Domain> | https://www.office.com?domain_hint=deyda.net |
https://www.office.com?domain_hint=<Azure AD Domain> | https://portal.office.com?domain_hint=deyda.net |
Azure Portal
https://portal.azure.com/<Azure AD Domain> | https://portal.azure.com/deyda.net |
Ablauf einer Authentifizierung mit einer nativen App
- Der Benutzer startet, über einen Domänen Computer im Firmennetzwerk (Lokal, VPN oder Direct Access), eine native Anwendung (z.B. Office365 Word Client)
- Wenn der Benutzer noch nicht angemeldet ist, ruft Word den Benutzernamen des Benutzers aus der Windows-Sitzung des Geräts ab
- Die App sendet den Benutzernamen an Azure AD und erhält den WS-Trust-MEX-Endpunkt des Tenants zurück
- Word fragt den WS-Trust-MEX-Endpunkt ab, um festzustellen, ob der integrierte Authentifizierungsendpunkt (IWA) verfügbar ist
- Wenn Schritt 4 erfolgreich ist, wird eine Kerberos-Aufforderung an die lokale Active Directory ausgeführt
- Das erhaltene Kerberos-Ticket, wird zum IWA von Azure AD weitergeleitet
- Azure AD entschlüsselt und überprüft das Kerberos-Ticket
- Azure AD meldet den Benutzer an und gibt ein SAML-Token für die App aus
- Word übermittelt das SAML-Token dann an den OAuth2-Tokenendpunkt von Azure AD
- Azure AD überprüft das SAML-Token und gibt ein Zugriffstoken an die App, sowie ein Aktualisierungstoken & ein ID-Token für die angegebene Ressource aus
- Der Benutzer erhält Zugriff auf die Ressource der App
Aktivierung Seamless SSO – AD Connect
Ich zeige nun auf wie man Pass-through authentication und Password Hash Synchronization aktiviert. Es wird nur ein Feature benötigt, damit man Seamless SSO nutzen kann.
Voraussetzungen
- Installiertes und Konfiguriertes AD Connect Version > 1.1.644.0
- Firewallfreigabe für die *.msappproxy.net auf Port 443
- Domänen Administrator Zugangsdaten der Domänen, die via AD Connect mit Azure AD verbunden werden sollen
- Office Version > 16.0.8730
- Benutzer müssen auf einem Computer arbeiten der Domänenmitglied ist
- Computer muss eine Verbindung zur Domäne haben (Lokal, VPN oder Direct Access)
- Internet Explorer darf nicht im Enhanced Protected Mode sein
Aktivierung von Pass-through authentication
Um Pass-through authentication zu aktivieren verbindet euch mit dem AD Mitglied auf dem AD Connect installiert ist.
- Startet Azure AD Connect
- Klickt im Welcome Screen auf Configure
- Klickt nun auf Change user sign-in und bestätigt dies mit Next
- Gebt die Zugangsdaten des Global Administrator ein und bestätigt die Eingabe mit Next
- Eventuell kommt noch eine weitere Login Maske wegen einer MFA Abfrage
- Pass-through authentication auswählen und danach Enable single sign-on aktivieren. Bestätigt dies mit Next
- Unter Single single-on klickt auf Enter credentials
- Gebt im folgenden Fenster die Zugangsdaten eines lokalen Domänen Administrator ein und klickt auf OK
- Klickt auf Configure, damit die beschriebenen Aktionen durchgeführt werden
- Bestätigt die Erfolgreiche Abarbeitung im Configuration complete Fenster mit Exit
Aktivierung von Password Hash Synchronization
Um Password Hash Synchronization zu aktivieren verbindet euch mit dem AD Mitglied auf dem AD Connect installiert ist.
- Startet Azure AD Connect
- Klickt im Welcome Screen auf Configure
- Klickt nun auf Change user sign-in und bestätigt dies mit Next
- Gebt die Zugangsdaten des Global Administrator ein und bestätigt die Eingabe mit Next
- Eventuell kommt noch eine weitere Login Maske wegen MFA abfrage
- Password Hash Synchronization auswählen und danach Enable single sign-on aktivieren. Bestätigt dies mit Next
- Unter Single single-on klickt auf Enter credentials
- Gebt im folgenden Fenster die Zugangsdaten eines lokalen Domänen Administrator ein und klickt auf OK
- Klickt auf Configure, damit die beschriebenen Aktionen durchgeführt werden
- Bestätigt die Erfolgreiche Abarbeitung im Configuration complete Fenster mit Exit
Lokale Active Directory
In der lokalen Active Directory findet man nun ein neues Computer Objekt mit dem Namen AZUREADSSOACC. Dieses Objekt sollte vor Löschung geschützt werden.
Azure Portal
Im Azure Portal sind die aktivierten Seamless SSO Methoden ebenfalls zu sehen.
- Klickt im Azure Portal auf Azure Active Directory > Azure AD Connect
- Klickt nun auf das über Azure AD Connect eingerichtete Verfahren
Unter Seamless single sign-on sieht man die über Password Hash Synchronization eingerichteten Domänen.
Bei Pass-through authentication wird ein Warndreieck angezeigt, da der Agent nur auf einem Server hinterlegt ist.
Dieser sollte laut Microsoft auf 3 interne Server verteilt werden.
Group Policy Object
Damit nun Seamless SSO auch auf den Endgeräten funktioniert, müssen noch einige Einstellungen über GPOs verteilt werden.
- Verbindet euch mit einem Computer auf dem die Group Policy Management Konsole installiert ist
- Fügt nun die folgenden Einstellungen zu einer bestehenden oder einer neuen GPO hinzu
- Geht in der GPO zum Pfad User / Computer Configuration > Adminstrative Templates > Windows Components > Internet Explorer > Internet Control Panel > Security Page und editiert den Site to Zone Assignment List Eintrag mit folgenden Werte
Value Name | Value |
---|---|
login.microsoftonline.com | 3 |
aadg.windows.net.nsatc.net | 1 |
autologon.microsoftazuread-sso.com | 1 |
secure.aadcdn.microsoftonline-p.com | 1 |
device.login.microsoftonline.com | 1 |
Hinweis: Wenn Seamless SSO für einzelne Gruppen oder Benutzer deaktiviert werden soll muss die GPO auf den Wert 4 gedreht werden für diese Personen.
- Geht dann zum Pfad User / Computer Configuration > Adminstrative Templates > Windows Components > Internet Explorer > Internet Control Panel > Security Page > Intranet Zone und setzt den Allow updates to status bar via script Eintrag auf Enabled
Austausch des Kerberos Decryption Key
Microsoft empfiehlt, den Kerberos Decyption Key mindestens alle 30 Tage neu auszurollen. Dies reduziert das Risiko, dass der Kerberos Decryption Key ausspioniert wird. Microsoft arbeitet an der Einführung einer automatisierten Funktion, die diese Aufgabe durchführt.
Um den Kerberos Decryption Key des AZUREADSSOACC-Computerkontos neu auszurollen, müssen Sie zunächst das Azure AD PowerShell-Modul aus der PowerShell Gallery herunterladen.
Starten Sie PowerShell als Administrator auf dem Computer auf dem AD Connect installiert ist und führt den folgenden Befehl aus:
1 |
Install-Module MSOnline |
Navigiert in den Pfad C:\Program Files\Microsoft Azure Active Directory Connect und importiert das Modul AzureADSSO.psd1
Führt den Befehl New-AzureADSSOAuthenticationContext aus
Gebt im folgenden Fenster die Zugangsdaten eines Azure Administrators ein.
Führe danach Get-AzureADSSOStatus aus. Hiermit wird geprüft, welche Domänen im Tenant für Seamless SSO hinterlegt und aktiviert sind.
Führt danach den Befehl $passwd = Get-Credential aus und gebt im folgenden Fenster die Zugangsdaten eines lokalen Domänen Administrator ein.
Führt als letztes den folgenden Befehl aus, um das Update des Decryption Key des AZUREADSSOACC Computer Kontos abzuschliessen.
1 |
Update-AzureADSSOForest -OnPremCredentials $passwd |
Dies muss für alle Domänen durchgeführt werden, die für Seamless SSO konfiguriert worden sind.
Ergebnis
Nachdem ein gpupdate /force auf den Endgeräten durchgeführt wurde, können wir mit dem Testen beginnen.
Szenario 1 – Firmennetzwerk mit Firmen Adresse
Szenario ist ein Computer (Domänenmitglied) im Firmennetzwerk der die folgende Seite über Internet Explorer öffnet:
https://myapps.microsoft.com/deyda.net
Man wird direkt, ohne Eingabe vom Benutzernamen oder Passwort, per Seamless SSO eingeloggt und kann seine Ressourcen (z.B. Citrix FAS) direkt nutzen.
Szenario 2 – Firmennetzwerk mit Allgemeiner Adresse
Szenario ist ein Computer (Domänenmitglied) im Firmennetzwerk der die folgende Seite über Internet Explorer öffnet:
https://myapps.microsoft.com/
Man wird aufgefordert einen Benutzernamen einzugeben.
Danach wird man, ohne Eingabe des Passworts, per Seamless SSO eingeloggt und kann seine Ressourcen (z.B. Citrix FAS) direkt nutzen.
Szenario 3 – Ausserhalb Firmennetzwerk mit Firmen Adresse
Szenario ist ein Computer (Domänenmitglied) ausserhalb des Firmennetzwerk der die folgende Seite über Internet Explorer öffnet:
https://myapps.microsoft.com/deyda.net
Man wird aufgefordert einen Benutzernamen einzugeben.
Danach wird man aufgefordert ein Passwort einzugeben.
Daraufhin wird man an die hinterlegten Ressourcen weitergeleitet.