SCIM 2.0-Provisionierung
SCIM (System for Cross-domain Identity Management) ist ein standardisiertes Protokoll (RFC 7643/7644), das es einem externen Identity Provider (IdP) ermöglicht, Benutzer-Lebenszyklus-Ereignisse — Erstellen, Aktualisieren, Deaktivieren, Löschen — automatisch an Auris zu übertragen. Anstatt dass Administratoren Benutzer in zwei Systemen manuell verwalten, wird der IdP zur Quelle der Wahrheit und Auris spiegelt seinen Zustand nahezu in Echtzeit wider.
Auris implementiert SCIM 2.0 und ist mit jedem IdP kompatibel, der den Standard unterstützt, einschließlich Okta, Microsoft Azure AD (Entra ID), OneLogin, JumpCloud, Google Workspace (über SCIM-Bridge von Drittanbietern) und Ping Identity.
Wie SCIM funktioniert
Wenn SCIM konfiguriert ist, fungiert der IdP als SCIM-Client und Auris als SCIM-Server (Service Provider).
Der typische Lebenszyklus:
- Ein neuer Mitarbeiter wird in Okta (oder einem anderen IdP) hinzugefügt.
- Okta sendet eine
POST /scim/v2/Users-Anfrage an Auris mit den Attributen des Mitarbeiters. - Auris erstellt den Benutzer sowohl in seiner Datenbank als auch im zugrundeliegenden Keycloak-Realm.
- Wenn der Mitarbeiter in Okta deaktiviert wird (z.B. nach Kündigung), sendet Okta einen
PATCH /scim/v2/Users/[id]mit"active": false. - Auris deaktiviert den Benutzer und macht alle aktiven Sitzungen ungültig.
- Wenn der Mitarbeiterdatensatz in Okta gelöscht wird, sendet Okta
DELETE /scim/v2/Users/[id]. - Auris löscht den Benutzer weich.
Dies hält Auris synchron, ohne manuelle Administrator-Eingriffe.
SCIM-Verbindung einrichten
SCIM-Verbindung in Auris erstellen
In der Admin Console zu Einstellungen → SCIM-Verbindungen navigieren und auf “Neue Verbindung” klicken.
Jede Verbindung generiert:
- SCIM-Basis-URL — Der Endpunkt, den dein IdP aufruft. Format:
https://auth.yourdomain.com/scim/v2 - Bearer-Token — Ein mit
scim_vorangestelltes Secret zur Authentifizierung der IdP-Anfragen. Dieses Token sofort kopieren — es wird nur einmal angezeigt.
Du kannst auch eine Verbindung über die API erstellen:
/api/scim/connectionsRequires: manage:scim_connectionsErstellt eine neue SCIM-Verbindung und gibt das Bearer-Token zurück. Das Token wird nicht im Klartext gespeichert und kann nach der Erstellung nicht erneut abgerufen werden.
{
"name": "Okta Produktion",
"keycloakRealm": "your-realm"
}Deinen IdP konfigurieren
In der SCIM-Konfiguration deines Identity Providers eingeben:
- SCIM-Connector-Basis-URL:
https://auth.yourdomain.com/scim/v2 - Eindeutiges Bezeichnerfeld für Benutzer:
userName - Authentifizierungsmodus: HTTP-Header
- Autorisierung:
Bearer scim_...
Die genauen Schritte unterscheiden sich je nach IdP. Konsultiere die SCIM-Einrichtungsdokumentation deines IdPs für anbieterspezifische Feldnamen.
Okta
In Okta zu Applications → [deine App] → Provisioning → Integration navigieren. “Enable API integration” aktivieren und Basis-URL sowie Token eingeben. Unter “To App” Create, Update und Deactivate aktivieren.
Verbindung verifizieren
In der Auris Console die Schaltfläche “Verbindung testen” auf der SCIM-Verbindungskarte verwenden. Dies sendet eine Testanfrage, um zu verifizieren, dass Auris authentifizierte SCIM-Anfragen empfangen kann.
Du kannst die Konnektivität auch von deinem IdP aus testen — die meisten IdPs haben eine eingebaute “Verbindung testen”- oder “Verifizieren”-Schaltfläche in ihrer SCIM-Konfiguration.
SCIM-Endpunkte
Alle SCIM-Endpunkte sind unter /scim/v2 gemountet. Sie erfordern ein Bearer-Token, das einer aktiven SCIM-Verbindung entspricht. Standard-SCIM Content-Type: application/scim+json wird unterstützt.
/scim/v2/UsersBenutzer auflisten. Unterstützt SCIM-Filterung, Paginierung (startIndex, count) und Attributauswahl (attributes, excludedAttributes).
/scim/v2/UsersEinen Benutzer erstellen. Auris ordnet SCIM-Attribute Auris-Benutzerfeldern zu und erstellt den Datensatz sowohl in Auris als auch in Keycloak.
/scim/v2/Users/[id]Einen einzelnen Benutzer nach SCIM-External-ID abrufen.
/scim/v2/Users/[id]Alle Attribute eines Benutzers ersetzen. Felder, die nicht im Request-Body enthalten sind, werden gelöscht.
/scim/v2/Users/[id]Einen Benutzer teilweise mit SCIM-Patch-Operationen aktualisieren. Unterstützt add-, remove- und replace-Operationen. Wird von IdPs verwendet, um einzelne Attribute zu aktualisieren oder active: false zu setzen, um einen Benutzer zu deaktivieren.
/scim/v2/Users/[id]Einen Benutzer deaktivieren und weich löschen. Sitzungen werden sofort widerrufen.
/scim/v2/BulkBis zu 100 SCIM-Operationen in einer einzigen Anfrage verarbeiten. Jede Operation wird unabhängig verarbeitet — ein Fehlschlag bei einer Operation beeinflusst die anderen nicht.
SCIM-Endpunkte authentifizieren sich über das Verbindungs-Bearer-Token, nicht über einen Benutzer-JWT. Die Berechtigung manage:scim_connections steuert den Zugriff auf die Auris-Management-API für SCIM-Verbindungen — die SCIM-Protokoll-Endpunkte selbst authentifizieren sich nur über das Bearer-Token.
Attribut-Zuordnung
Standardmäßig wendet Auris Standard-SCIM-zu-Auris-Attribut-Zuordnungen an. Diese Zuordnungen können pro Verbindung im Console-Tab “Zuordnungen” angepasst werden.
Standard-Zuordnungen
| SCIM-Attribut | Auris-Feld | Hinweise |
|---|---|---|
userName | username | Auch als scimUserName für Deduplizierung gespeichert |
emails[0].value (primär) | email | |
name.givenName | firstName | |
name.familyName | lastName | |
active | enabled | false löst sofortigen Sitzungswiderruf aus |
externalId | scimExternalId | Zur stabilen systemübergreifenden Verknüpfung gespeichert |
Benutzerdefinierte Zuordnungen
Benutzerdefinierte Attribut-Zuordnungen ermöglichen es, nicht-standardmäßige SCIM-Attribute Auris-Benutzerfeldern zuzuordnen. Zum Beispiel, wenn dein IdP urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department sendet und du es in metadata.department speichern möchtest.
/api/scim/connections/[id]/mappingsRequires: manage:scim_connectionsAlle Attribut-Zuordnungen für eine Verbindung auflisten.
/api/scim/connections/[id]/mappingsRequires: manage:scim_connectionsEine benutzerdefinierte Attribut-Zuordnung erstellen.
{
"scimAttribute": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department",
"aurisAttribute": "metadata.department",
"direction": "INBOUND",
"isActive": true
}Zuordnungsrichtungen:
| Richtung | Bedeutung |
|---|---|
INBOUND | SCIM-Attribut → Auris-Feld (verwendet bei der Provisionierung) |
OUTBOUND | Auris-Feld → SCIM-Attribut (verwendet, wenn Auris vom IdP abgefragt wird) |
BIDIRECTIONAL | Beide Richtungen |
Filter-Unterstützung
Auris implementiert RFC 7644 §3.4.2.2 SCIM-Filterung. Die meisten IdPs verwenden Filter, um Benutzer vor dem Erstellen oder Aktualisieren nachzuschlagen.
Unterstützte Operatoren:
| Operator | Bedeutung |
|---|---|
eq | Gleich |
ne | Ungleich |
co | Enthält |
sw | Beginnt mit |
ew | Endet mit |
gt | Größer als |
lt | Kleiner als |
ge | Größer als oder gleich |
le | Kleiner als oder gleich |
pr | Attribut ist vorhanden (nicht null) |
Beispielfilter:
# Benutzer nach E-Mail finden
/scim/v2/Users?filter=emails eq "[email protected]"
# Nach userName finden
/scim/v2/Users?filter=userName eq "alice"
# Aktive Benutzer in einer Abteilung finden (mit Enterprise-Schema-Erweiterung)
/scim/v2/Users?filter=active eq true and urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department eq "engineering"Filter unterstützen and/or-Kombinatoren und Klammern zur Gruppierung. Punkt-Notation-Attributpfade (z.B. name.givenName) werden korrekt aufgelöst.
Synchronisations-Statistiken
Die Console bietet eine Aufschlüsselung der SCIM-Synchronisationsaktivität pro Verbindung, sichtbar im Tab “Statistiken” jeder Verbindungs-Detailseite.
/api/scim/connections/[id]/statsRequires: manage:scim_connectionsGibt Synchronisationszählungen aufgeteilt nach Zeitraum (24h, 7d, 30d) und Operationstyp (Erstellungen, Aktualisierungen, Löschungen, Fehler) zurück.
Antwort:
{
"periods": {
"24h": { "created": 12, "updated": 8, "deleted": 1, "errors": 0 },
"7d": { "created": 45, "updated": 33, "deleted": 4, "errors": 2 },
"30d": { "created": 180, "updated": 112, "deleted": 9, "errors": 5 }
}
}Massen-Operationen
Der SCIM-Bulk-Endpunkt ermöglicht es einem IdP, bis zu 100 Operationen in einer einzigen HTTP-Anfrage zu senden. Dies reduziert den Netzwerkaufwand bei großen Provisionierungsereignissen (z.B. eine organisationsweite Verzeichnissynchronisation).
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
"Operations": [
{
"method": "POST",
"path": "/Users",
"bulkId": "bulk-1",
"data": {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "[email protected]",
"name": { "givenName": "Neuer", "familyName": "Benutzer" },
"emails": [{ "value": "[email protected]", "primary": true }]
}
},
{
"method": "PATCH",
"path": "/Users/scim-ext-id-123",
"data": {
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [{ "op": "replace", "path": "active", "value": false }]
}
}
]
}Bulk-Antwort:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkResponse"],
"Operations": [
{ "method": "POST", "bulkId": "bulk-1", "status": { "code": 201 } },
{ "method": "PATCH", "location": "/scim/v2/Users/scim-ext-id-123", "status": { "code": 200 } }
]
}Erforderliche Berechtigungen
| Operation | Berechtigung |
|---|---|
| SCIM-Verbindungen erstellen/aktualisieren/löschen | manage:scim_connections |
| SCIM-Verbindungen und Statistiken anzeigen | view:scim_connections |
| SCIM-Aktivitätslogs anzeigen | view:scim_logs |
| SCIM-Protokoll-Endpunkte | Bearer-Token (keine Auris-Berechtigung erforderlich) |
Verwandte Seiten
- Benutzer verwalten — Manuelle Benutzerverwaltung über API und Console
- Benutzer Import & Export — Einmaliger Massen-Import aus CSV oder JSON
- Organisationen: Enterprise SSO — Organisations-spezifisches SSO für B2B-Kunden
- Console: SCIM-Verbindungen — Vollständige Console-Anleitung