Enterprise SSO pro Organisation
Enterprise Single Sign-On (SSO) ermöglicht es jeder Organisation in Auris, die Authentifizierung an ihren eigenen Corporate-Identity-Provider zu delegieren. Wenn sich ein Benutzer mit einer E-Mail-Adresse einer verifizierten Domain anmeldet, leitet Auris ihn automatisch zum IdP seiner Organisation um, anstatt das Standard-Benutzername/Passwort-Formular anzuzeigen. Nach erfolgreicher Authentifizierung beim IdP wird der Benutzer zu Auris zurückgeleitet und entweder einem bestehenden Konto zugeordnet oder automatisch über Just-in-Time (JIT)-Benutzererstellung bereitgestellt.
Diese Funktion ist für B2B-SaaS-Produkte konzipiert, bei denen Enterprise-Kunden verlangen, dass ihre Mitarbeiter sich ausschließlich über unternehmensverwaltete Zugangsdaten authentifizieren.
Unterstützte Protokolle
Auris unterstützt zwei SSO-Protokolle, beide über Keycloaks Identity-Broker-Funktionalität:
SAML 2.0 — Security Assertion Markup Language. Wird von Enterprise-IdPs verwendet, darunter Microsoft Azure AD (Entra ID), Okta, ADFS, Ping Identity und Shibboleth. SAML verwendet XML-basierte Assertions, die mit X.509-Zertifikaten signiert sind.
OIDC (OpenID Connect) — Eine moderne Identitätsschicht über OAuth 2.0. Wird von Google Workspace, Okta (als OIDC-Provider), Microsoft Azure AD (unterstützt auch OIDC) und jedem OAuth 2.0 Authorization Server mit einem OIDC-Discovery-Endpunkt verwendet.
Domain-Verifizierung
Bevor eine SSO-Verbindung aktiviert werden kann, muss die Organisation den Besitz der E-Mail-Domain nachweisen. Dies verhindert, dass eine Organisation Logins für eine Domain abfängt, die ihr nicht gehört.
Die Verifizierung verwendet einen DNS-TXT-Eintrag:
- Auris generiert ein eindeutiges Verifizierungs-Token für die Domain.
- Der DNS-Administrator der Organisation erstellt einen TXT-Eintrag:
_auris-verify.domain.commit dem Token als Wert. - Ein Admin klickt in der Console auf “Verifizieren” (oder ruft die Verify-API auf).
- Auris führt eine DNS-Abfrage für den TXT-Eintrag durch und bestätigt, dass das Token übereinstimmt.
/api/organizations/[orgId]/sso/domainsRequires: manage:sso_connectionsFügt eine Domain zur SSO-Verifizierung hinzu. Gibt das Verifizierungs-Token zurück, das dem DNS hinzugefügt werden muss.
{
"domain": "acme.de"
}Antwort:
{
"id": "dom_01HX...",
"domain": "acme.de",
"verificationToken": "auris-verify=a1b2c3d4e5f6...",
"verificationMethod": "TXT",
"status": "PENDING"
}Zu erstellender DNS-Eintrag:
_auris-verify.acme.de TXT "auris-verify=a1b2c3d4e5f6..."/api/organizations/[orgId]/sso/domains/[domainId]/checkRequires: manage:sso_connectionsLöst eine DNS-Verifizierungsprüfung aus. Gibt den aktualisierten Domain-Status zurück: PENDING, ACTIVE oder FAILED.
DNS-Propagierung kann bis zu 48 Stunden dauern, obwohl die meisten Änderungen innerhalb weniger Minuten propagiert werden. Wenn die Verifizierung unmittelbar nach dem Hinzufügen des Eintrags fehlschlägt, warte einige Minuten und versuche es erneut.
SAML 2.0-Einrichtung
IdP-Metadaten abrufen
Rufe vom IdP deines Kunden entweder Folgendes ab:
- Eine Metadaten-URL — eine URL, die die SAML-Metadaten-XML des IdP bereitstellt (bevorzugt, da Zertifikate automatisch aktualisiert werden)
- Eine Metadaten-XML-Datei — eine heruntergeladene Kopie der Metadaten
Die Metadaten enthalten die Entity ID, SSO-URL und das Signatur-Zertifikat.
SSO-Verbindung erstellen
/api/organizations/[orgId]/sso/connectionsRequires: manage:sso_connectionsErstellt eine neue SSO-Verbindung für die Organisation.
{
"type": "SAML",
"name": "Acme Azure AD",
"config": {
"entityId": "https://sts.windows.net/tenant-id-hier/",
"ssoUrl": "https://login.microsoftonline.com/tenant-id/saml2",
"certificate": "MIICIjANBgkq...",
"signRequests": true,
"nameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
}
}SAML-Konfigurationsfelder:
| Feld | Pflicht | Hinweise |
|---|---|---|
entityId | Ja | Die Entity ID des IdP aus dessen Metadaten |
ssoUrl | Ja | Der SAML-SSO-Endpunkt des IdP |
certificate | Ja | Das X.509-Signatur-Zertifikat des IdP (PEM-kodiert, ohne Header) |
signRequests | Nein | Ob ausgehende SAML-Anfragen signiert werden sollen (Standard: true) |
nameIdFormat | Nein | Bevorzugtes NameID-Format. Standard: emailAddress |
Attribut-Zuordnung konfigurieren
SAML-Assertion-Attribute den Auris-Benutzerfeldern zuordnen:
{
"attributeMapping": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"firstName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"lastName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"
}
}Auris SP-Metadaten dem IdP bereitstellen
Nach dem Erstellen der Verbindung generiert Auris Service-Provider (SP)-Metadaten, die dein Kunde in seinem IdP registrieren muss:
- SP Entity ID:
https://auth.yourdomain.com/saml/org-slug - ACS URL (Assertion Consumer Service):
https://auth.yourdomain.com/saml/org-slug/callback - SP Metadata URL:
https://auth.yourdomain.com/saml/org-slug/metadata
Teile die SP-Metadaten-URL mit dem IT-Administrator deines Kunden. Die meisten Enterprise-IdPs akzeptieren eine Metadaten-URL direkt.
Verbindung aktivieren
/api/organizations/[orgId]/sso/connections/[id]/activateRequires: manage:sso_connectionsAktiviert die SSO-Verbindung. Die Domain-Verifizierung muss abgeschlossen sein, bevor die Aktivierung erfolgt.
OIDC-Einrichtung
OIDC-Konfiguration abrufen
Vom OIDC-Provider des Kunden benötigst du:
- Discovery-URL (bevorzugt):
https://provider.example.com/.well-known/openid-configuration - Oder manuell: Autorisierungsendpunkt, Token-Endpunkt, JWKS-URI, Client-ID, Client-Secret
SSO-Verbindung erstellen
{
"type": "OIDC",
"name": "Acme Google Workspace",
"config": {
"discoveryUrl": "https://accounts.google.com/.well-known/openid-configuration",
"clientId": "123456789-abc.apps.googleusercontent.com",
"clientSecret": "GOCSPX-...",
"scopes": ["openid", "profile", "email"],
"pkce": true
}
}OIDC-Konfigurationsfelder:
| Feld | Pflicht | Hinweise |
|---|---|---|
discoveryUrl | Empfohlen | OIDC-Discovery-Endpunkt. Wenn angegeben, werden andere Endpunkte automatisch abgeleitet |
authorizationUrl | Wenn kein discoveryUrl | OAuth2-Autorisierungsendpunkt |
tokenUrl | Wenn kein discoveryUrl | OAuth2-Token-Endpunkt |
jwksUrl | Wenn kein discoveryUrl | JWKS-Endpunkt zur Token-Verifizierung |
clientId | Ja | Die beim IdP registrierte OAuth2-Client-ID |
clientSecret | Ja | Das OAuth2-Client-Secret |
scopes | Nein | Standard: ["openid", "profile", "email"] |
pkce | Nein | PKCE für den OIDC-Flow aktivieren (empfohlen, Standard: true) |
Auris-Redirect-URI beim IdP registrieren
Gib diese Redirect-URI an, wenn du die Auris-Anwendung im IdP des Kunden registrierst:
https://auth.yourdomain.com/oidc/org-slug/callbackVerbindung aktivieren
Gleicher Ablauf wie bei SAML — die Domain-Verifizierung muss vor der Aktivierung abgeschlossen sein.
SSO-Login-Ablauf
Sobald eine SSO-Verbindung aktiv ist und eine Domain verifiziert ist, ändert sich der Login-Ablauf für Benutzer mit übereinstimmenden E-Mail-Adressen:
- Der Benutzer gibt seine E-Mail auf der Auris Hosted-Login-Seite ein.
- Auris ruft den SSO-Erkennungsendpunkt auf:
/api/auth/sso/detectAkzeptiert eine E-Mail-Adresse und gibt die SSO-Verbindungsdetails zurück, wenn eine aktive Verbindung für die E-Mail-Domain existiert.
{ "email": "[email protected]" }Antwort bei konfiguriertem SSO:
{
"ssoRequired": true,
"connectionType": "SAML",
"organizationName": "Acme Corporation",
"loginUrl": "/api/auth/sso/login/acme-azure-ad"
}- Auris leitet den Benutzer über folgenden Endpunkt zum IdP weiter:
/api/auth/sso/login/[alias]Initiiert den SSO-Flow, indem der Benutzer zum konfigurierten IdP weitergeleitet wird.
-
Der Benutzer authentifiziert sich bei seinem Corporate-IdP.
-
Der IdP leitet zurück zu Auris:
/api/auth/sso/callbackEmpfängt die SAML-Assertion oder den OIDC-Autorisierungscode. Validiert die Antwort, löst den Auris-Benutzer auf oder erstellt ihn und stellt Auris-Token aus.
- Auris stellt seinen eigenen Access Token und Refresh Token aus. Ab diesem Punkt ist die SSO-Sitzung unabhängig — die Auris-Token-Lebensdauern werden durch Auris-Einstellungen bestimmt, nicht durch die IdP-Sitzung.
Just-in-Time (JIT)-Benutzerbereitstellung
Wenn sich ein Benutzer erfolgreich beim IdP authentifiziert, aber kein bestehendes Auris-Konto hat, erstellt Auris während des SSO-Callbacks automatisch eines. Dies wird als Just-in-Time-Bereitstellung bezeichnet.
JIT-Bereitstellung erstellt den Benutzer mit:
- E-Mail, firstName und lastName aus der IdP-Antwort oder SAML-Assertion
- Mitgliedschaft in der mit der SSO-Verbindung verknüpften Organisation
- Der für JIT-bereitgestellte Benutzer konfigurierten Standardrolle (pro Verbindung konfigurierbar, Standard: MEMBER)
Das Benutzerkonto bleibt nach dem ersten Login bestehen — nachfolgende Logins werden demselben Konto zugeordnet.
JIT-Bereitstellung erstellt Benutzer standardmäßig in der MEMBER-Rolle. Wenn deine Anwendung erhöhte Rollen für einige Benutzer erfordert, verwende zusätzlich zur SSO-Bereitstellung SCIM-Provisioning, um Benutzer mit den richtigen Rollen vorab bereitzustellen, bevor sie sich zum ersten Mal anmelden.
Mehrere SSO-Verbindungen pro Organisation
Eine Organisation kann mehrere aktive SSO-Verbindungen haben — zum Beispiel SAML für eine Azure-AD-Bereitstellung und OIDC für eine Teilmenge von Benutzern in Google Workspace.
Der SSO-Erkennungsendpunkt stimmt basierend auf der verifizierten E-Mail-Domain überein. Wenn mehrere Verbindungen dieselbe Domain teilen, hat die zuletzt aktivierte Verbindung Vorrang. In der Praxis sollte jede SSO-Verbindung mit verschiedenen verifizierten Domains verknüpft sein, um Mehrdeutigkeiten zu vermeiden.
SSO-Verbindungen verwalten
/api/organizations/[orgId]/sso/connectionsRequires: view:sso_connectionsAlle SSO-Verbindungen einer Organisation auflisten.
/api/organizations/[orgId]/sso/connections/[id]Requires: view:sso_connectionsEine bestimmte SSO-Verbindung mit ihrem aktuellen Status und ihrer Konfiguration abrufen.
/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connectionsEine SSO-Verbindung aktualisieren. Konfigurationsfelder, Name oder Attribut-Zuordnungen können ohne Deaktivierung der Verbindung aktualisiert werden.
/api/organizations/[orgId]/sso/connections/[id]/deactivateRequires: manage:sso_connectionsDeaktiviert die SSO-Verbindung. Benutzer mit übereinstimmenden E-Mail-Domains werden nicht mehr zum IdP weitergeleitet. Sie fallen auf die Standard-Auris-Authentifizierung zurück.
/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connectionsLöscht die SSO-Verbindung dauerhaft. Bestehende über JIT-Bereitstellung erstellte Benutzerkonten werden nicht gelöscht.
Console-Anleitung
Die SSO-Verwaltung ist auf der Organisations-Detailseite in der Admin Console unter dem Tab “Enterprise SSO” verfügbar.
SAML-Verbindung hinzufügen:
- Navigiere zu Admin Console → Organisationen → [Org-Name] → Enterprise SSO.
- Klicke auf “SSO-Verbindung hinzufügen”. Wähle SAML 2.0 aus.
- Gib die IdP-Metadaten-URL ein oder füge das XML ein.
- Überprüfe die geparste Konfiguration (Entity ID, SSO-URL, Zertifikat).
- Speichern. Die Verbindung wird in einem inaktiven Zustand erstellt.
- Navigiere zum Tab “Domains” und füge die E-Mail-Domain der Organisation hinzu.
- Füge den DNS-TXT-Eintrag hinzu und klicke auf “Domain verifizieren”.
- Sobald die Domain verifiziert ist, kehre zum SSO-Tab zurück und klicke auf “Aktivieren”.
OIDC-Verbindung hinzufügen:
Gleicher Ablauf, aber das Formular fordert Discovery-URL, Client-ID und Client-Secret an. Auris ruft das Discovery-Dokument automatisch ab und füllt die verbleibenden Felder aus.
Erforderliche Berechtigungen
| Operation | Berechtigung |
|---|---|
| SSO-Verbindungen anzeigen | view:sso_connections |
| SSO-Verbindungen erstellen / aktualisieren / löschen | manage:sso_connections |
| Domain-Verifizierung verwalten | manage:sso_connections |
Verwandte Seiten
- B2B Multi-Tenant-Organisationen — Organisations-Setup, Mitgliederrollen und Einladungen
- SCIM 2.0-Provisionierung — Automatisierte Benutzerbereitstellung als Ergänzung zu SSO
- Hosted Login — Integration der Hosted-Login-Seite mit SSO-Erkennung
- Console: Organisationen — Vollständige Console-Anleitung