Skip to Content

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:

  1. Ein neuer Mitarbeiter wird in Okta (oder einem anderen IdP) hinzugefügt.
  2. Okta sendet eine POST /scim/v2/Users-Anfrage an Auris mit den Attributen des Mitarbeiters.
  3. Auris erstellt den Benutzer sowohl in seiner Datenbank als auch im zugrundeliegenden Keycloak-Realm.
  4. Wenn der Mitarbeiter in Okta deaktiviert wird (z.B. nach Kündigung), sendet Okta einen PATCH /scim/v2/Users/[id] mit "active": false.
  5. Auris deaktiviert den Benutzer und macht alle aktiven Sitzungen ungültig.
  6. Wenn der Mitarbeiterdatensatz in Okta gelöscht wird, sendet Okta DELETE /scim/v2/Users/[id].
  7. 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:

POST/api/scim/connectionsRequires: manage:scim_connections

Erstellt 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.

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.

GET/scim/v2/Users

Benutzer auflisten. Unterstützt SCIM-Filterung, Paginierung (startIndex, count) und Attributauswahl (attributes, excludedAttributes).

POST/scim/v2/Users

Einen Benutzer erstellen. Auris ordnet SCIM-Attribute Auris-Benutzerfeldern zu und erstellt den Datensatz sowohl in Auris als auch in Keycloak.

GET/scim/v2/Users/[id]

Einen einzelnen Benutzer nach SCIM-External-ID abrufen.

PUT/scim/v2/Users/[id]

Alle Attribute eines Benutzers ersetzen. Felder, die nicht im Request-Body enthalten sind, werden gelöscht.

PATCH/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.

DELETE/scim/v2/Users/[id]

Einen Benutzer deaktivieren und weich löschen. Sitzungen werden sofort widerrufen.

POST/scim/v2/Bulk

Bis 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-AttributAuris-FeldHinweise
userNameusernameAuch als scimUserName für Deduplizierung gespeichert
emails[0].value (primär)email
name.givenNamefirstName
name.familyNamelastName
activeenabledfalse löst sofortigen Sitzungswiderruf aus
externalIdscimExternalIdZur 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.

GET/api/scim/connections/[id]/mappingsRequires: manage:scim_connections

Alle Attribut-Zuordnungen für eine Verbindung auflisten.

POST/api/scim/connections/[id]/mappingsRequires: manage:scim_connections

Eine benutzerdefinierte Attribut-Zuordnung erstellen.

{ "scimAttribute": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department", "aurisAttribute": "metadata.department", "direction": "INBOUND", "isActive": true }

Zuordnungsrichtungen:

RichtungBedeutung
INBOUNDSCIM-Attribut → Auris-Feld (verwendet bei der Provisionierung)
OUTBOUNDAuris-Feld → SCIM-Attribut (verwendet, wenn Auris vom IdP abgefragt wird)
BIDIRECTIONALBeide 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:

OperatorBedeutung
eqGleich
neUngleich
coEnthält
swBeginnt mit
ewEndet mit
gtGrößer als
ltKleiner als
geGrößer als oder gleich
leKleiner als oder gleich
prAttribut 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.

GET/api/scim/connections/[id]/statsRequires: manage:scim_connections

Gibt 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

OperationBerechtigung
SCIM-Verbindungen erstellen/aktualisieren/löschenmanage:scim_connections
SCIM-Verbindungen und Statistiken anzeigenview:scim_connections
SCIM-Aktivitätslogs anzeigenview:scim_logs
SCIM-Protokoll-EndpunkteBearer-Token (keine Auris-Berechtigung erforderlich)

Verwandte Seiten