Unternehmen suchen nach Wegen, Authentifizierung sicherer und gleichzeitig nutzerfreundlicher zu gestalten. Dabei brauchen sie eine zentrale Authentifizierung und Autorisierung, ohne Zugangsdaten und Berechtigungen in einen weiteren Identity Provider (IDP) replizieren zu müssen.
Dieser Beitrag zeigt, wie Sie Auth0 als SAML 2.0-Provider einrichten – föderiert mit einem bestehenden Active Directory – um per Single Sign-On auf Amazon WorkSpaces zuzugreifen.
Die Identity- und Management-Plattform Auth0 bietet mehr Kontrolle, ein hohes Sicherheitsniveau und eine einfache Bedienung. Single Sign-On (SSO) lässt sich über verschiedene Wege realisieren – etwa Enterprise-Föderation, Social Sign-In oder klassische Anmeldung mit Benutzername und Passwort. Ihre Nutzer melden sich also nur einmal an und haben anschließend Zugriff auf alle für sie freigegebenen Anwendungen.
Architektur im Überblick
Der folgende Überblick zeigt das Setup in der Umgebung. Zur Vereinfachung haben wir alles in einer einzigen VPC eingerichtet:
- Domain Controller in einem Private Subnet.
- AWS Directory Service mit AD Connector.
- NAT Gateways in einem Public Subnet, damit die Domain Controller mit Auth0 kommunizieren können.
- Amazon WorkSpaces in einem Private Subnet.
Walkthrough
Die Konfiguration umfasst sechs Schritte:
- App in Auth0 anlegen und Metadaten-Manifest erzeugen.
- SAML Identity Provider in AWS Identity and Access Management (IAM) anlegen.
- SAML-2.0-Federation-IAM-Role und IAM Policy erstellen.
- Auth0 und SAML-Assertions konfigurieren.
- SAML-2.0-Integration im WorkSpaces-Directory aktivieren.
- Konfiguration testen.
Voraussetzungen
- Auth0-Konto mit konfiguriertem Active-Directory-Connector.
- Active Directory Connector für AWS Directory Service eingerichtet.
- Bereitgestellter Amazon WorkSpace im selben Directory.
Schritt 1: App in Auth0 anlegen und Metadaten-Manifest erzeugen
- Melden Sie sich am Auth0 Management Dashboard an und legen Sie eine neue Application an.
- Aktivieren Sie im Tab Addons das SAML2 Web App Addon.
- Konfigurieren Sie das Addon im Pop-up, das nach der Aktivierung erscheint. Tragen Sie im Tab Settings unter Application Callback URL https://signin.aws.amazon.com/saml ein und fügen Sie folgenden SAML-Konfigurationscode im JSON-Format unter Settings ein:
{
"audience": "https://signin.aws.amazon.com/saml",
"mappings": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sAMAccountName",
"name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
},
"createUpnClaim": false,
"passthroughClaimsWithNoMapping": false,
"mapUnknownClaimsAsIs": false,
"mapIdentities": false,
"nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
"nameIdentifierProbes": [\
"http://schemas.auth0.com/sAMAccountName"\
]
}

- Scrollen Sie nach unten und klicken Sie auf Enable.
- Öffnen Sie den Tab Usage und laden Sie die Metadaten-Manifest-Datei herunter. Sie wird im nächsten Schritt benötigt.

- Schließen Sie das SAML2-Web-App-Fenster und klicken Sie auf Connections. Wählen Sie unter Enterprise den passenden Active Directory/LDAP Connector aus.
Schritt 2: SAML Identity Provider in AWS Identity and Access Management (IAM) anlegen
- Melden Sie sich in Ihrem AWS-Konto an und öffnen Sie die IAM-Konsole.
- Klicken Sie im Navigationsbereich auf Identity Providers und anschließend auf Add Provider.
- Wählen Sie als Provider Type SAML, vergeben Sie einen aussagekräftigen Namen und ergänzen Sie bei Bedarf Tags. Klicken Sie unter Metadata Document auf Choose File, wählen Sie das im vorherigen Schritt heruntergeladene SAML-Metadatendokument aus und klicken Sie auf Open. Klicken Sie anschließend unten auf Add Provider.
- Prüfen Sie Ihre Eingaben und klicken Sie auf Create.
- Notieren Sie sich den ARN dieses Providers – Sie benötigen ihn in Schritt 4.
Schritt 3: IAM Role und IAM Policy für SAML-2.0-Föderation erstellen
- Klicken Sie im Navigationsbereich auf Roles und anschließend auf Create Role.
- Wählen Sie als Role Type SAML 2.0 federation.
- Wählen Sie den im vorherigen Schritt erstellten SAML Provider aus.
- Wählen Sie unter Attribute den Eintrag SAML:sub_type. Geben Sie als Value persistent ein. Damit wird der Rollenzugriff auf SAML-User-Streaming-Anfragen beschränkt, deren SAML-Subject-Type-Assertion den Wert persistent enthält.
- Prüfen Sie die SAML-2.0-Trust-Informationen, bestätigen Sie die korrekte Trusted Entity sowie Condition und wählen Sie dann Next: Permissions.
- Wählen Sie auf der Seite Attach permissions policies Next: Tags.
- Wählen Sie anschließend Next: Review. Die Inline Policy für diese Rolle hinterlegen Sie später.
- Vergeben Sie unter Role name einen Namen, der den Zweck der Rolle klar erkennen lässt. Da verschiedene Entitäten auf die Rolle verweisen können, lässt sich der Name nach dem Anlegen nicht mehr ändern.
- (Optional) Tragen Sie unter Role description eine Beschreibung für die neue Rolle ein.
- Prüfen Sie die Rollendetails und wählen Sie Create role.
- Wählen Sie die soeben erstellte Rolle aus, öffnen Sie Trust relationships und klicken Sie auf Edit trust relationship.
- Erweitern Sie die Action um sts:TagSession.
Die Policy sollte wie folgt aussehen:
{
"Version": "2012-10-17",
"Statement": [\
{\
"Effect": "Allow",\
"Principal": {\
"Federated": "arn:aws:iam:::saml-provider/name"\
},\
"Action": [\
"sts:AssumeRoleWithSAML",\
"sts:TagSession"\
],\
"Condition": {\
"StringEquals": {\
"SAML:sub_type": "persistent"\
}\
}\
}\
]
}
Im nächsten Schritt hinterlegen Sie eine Inline Policy für die soeben erstellte Rolle.
- Wählen Sie die erstellte IAM Role aus und wechseln Sie in den Tab Permissions. Klicken Sie auf Add Permissions->Create Inline Policy.
- Öffnen Sie den Tab JSON und fügen Sie die folgende Policy ein. Passen Sie region, Account ID und directory ID an Ihre Konfiguration an.
{
"Version": "2012-10-17",
"Statement": [\
{\
"Effect": "Allow",\
"Action": "workspaces:Stream",\
"Resource": "arn:aws:workspaces:<region>:<account-id>:directory/<directory-id>",\
"Condition": {\
"StringEquals": {\
"workspaces:userId": "${saml:sub}"\
}\
}\
}\
]
}
Achten Sie darauf, region, Account ID und directory ID anzupassen.
- Klicken Sie anschließend auf Next, vergeben Sie einen Namen für die Policy und klicken Sie auf Create Policy.
Schritt 4: Auth0 und SAML-Assertions konfigurieren
- Melden Sie sich am Auth0 Management Dashboard an und gehen Sie zu Actions->Library-> Build Custom.
- Vergeben Sie einen Namen, belassen Sie als Trigger Login/Post Login und als Runtime Node 18 und klicken Sie auf Create.

- Fügen Sie auf dem nächsten Bildschirm den folgenden Code ein und klicken Sie auf Deploy.
exports.onExecutePostLogin = async (event, api) => {
if (event.client.name === "APP_NAME") {
const awsRole = 'IAM_arn,saml_provider_arn';
const awsRoleSession = event.user.sAMAccountName;
const email = event.user.emails[0];
api.samlResponse.setDestination('https://signin.aws.amazon.com/saml');
api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/Role', awsRole)
api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/RoleSessionName', awsRoleSession)
api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email', email)
}
return;
};
Ersetzen Sie App_Name durch den Namen der in Schritt 1 erstellten Auth0-App. Ersetzen Sie anschließend IAM_arn durch den ARN der in Schritt 3 erstellten IAM Role und saml_provider_arn durch den ARN des in Schritt 2 erstellten SAML Providers.
- Gehen Sie danach zu Actions->Library-> Flows und klicken Sie auf Login.
- Klicken Sie im rechten Bereich unter Add Action auf Custom und ziehen Sie die erstellte Action zwischen Start und Complete.

- Klicken Sie auf Apply.
Schritt 5: SAML-2.0-Integration im WorkSpaces-Directory aktivieren
Mit diesem letzten Schritt schließen Sie die Konfiguration ab.
- Melden Sie sich in der AWS Management Console an und gehen Sie zu WorkSpaces-> Directories.
- Klicken Sie auf das Directory, das Ihre WorkSpaces nutzen.
- Klicken Sie auf Edit Authentication.
- Klicken Sie im Bildschirm Edit Authentication auf Edit SAML 2.0 Identity Provider.
- Aktivieren Sie Enable SAML 2.0 Authentication und tragen Sie unter User Access URL die Login-URL Ihres Identity Providers ein. Den IdP-Deep-Link-Parameter-Namen können Sie auf "RelayState" belassen.
Schritt 6: Konfiguration testen
- Öffnen Sie Ihren Amazon WorkSpaces Client, um die Konfiguration zu testen, und geben Sie Ihren Registrierungscode ein. Sie sollten eine Anzeige ähnlich der folgenden sehen.
- Klicken Sie auf Continue, um sich bei WorkSpaces anzumelden. Sie werden auf die Login-Seite Ihres IDP weitergeleitet, die wie folgt aussieht.
- Melden Sie sich mit Ihrem AD-Benutzernamen und Passwort an. Nach erfolgreicher Authentifizierung sehen Sie eine Anzeige wie die folgende.
- Klicken Sie auf Open Workspaces. Anschließend erscheint der Login-Bildschirm – Ihr Benutzername ist bereits ausgefüllt.
- Geben Sie Ihr Passwort ein – der WorkSpace wird gestartet.
- Sobald der WorkSpace gestartet ist, wird der Desktop geladen.
