SCIM
Überblick
In primedocs steht eine SCIM-Schnittstelle (System for Cross-domain Identity Management) zur Verfügung.
SCIM ist ein offener Standard, um Benutzer- und Gruppendaten zwischen Identitätsprovidern (z. B. Microsoft Entra ID) und Anwendungen konsistent zu synchronisieren. Ziel ist es, Identitätsinformationen standardisiert bereitzustellen und den Verwaltungsaufwand zu reduzieren.
Wir nutzen SCIM als Alternative zum Entra ID Application Permission Zugriff, um Benutzer und Gruppen zu synchronisieren. Dadurch lässt sich feingranular einstellen, welche Benutzer im Produkt sichtbar sind und welche nicht.
Einsatzszenario
Diese Konfiguration ist insbesondere dann sinnvoll, wenn keine Entra ID Application Permission erteilt werden kann oder darf.
Die Provisionierung von Benutzern und Gruppen wird dann vollständig über die neue Entra ID App mit SCIM-Provisionierung gesteuert.
Konfiguration
Voraussetzungen
- Die
primedocs.configmuss angepasst werden:
- Ein Eintrag für den gewünschten SCIM Tenant (
scimTenants) muss konfiguriert werden. - Die entsprechende DataSource muss mit diesem SCIM Tenant ausgestattet sein.
- Eine Beschreibung finden Sie hier: primedocs.config
- In Entra ID wird dafür eine neue zusätzliche App angelegt, die die SCIM-Provisionierung übernimmt. Die "App Registration"/"Enterprise Application" für die Authentifizierung kann Seitens Entra ID nicht für die Provisionierung genutzt werden.
SCIM Endpunkt
Der SCIM-Endpunkt ist Teil der WebApi und hat folgendes Schema:
https://[primedocs-instance]/webapi/scim-api/v1/[TENANT]/scim
Hat man in der primedocs.config den SCIM Tenant (...name="demo"...) samt Token (... token="TEST123456TEST!"...) konfiguriert ergibt sich der Endpunkt nach diesem Schema:
https://customer123.primedocs.io/webapi/scim-api/v1/demo/scim
Token: TEST123456TEST!
Unterstützte Eigenschaften
Die verfügbaren Eigenschaften können auch über den Schema-Endpunkt abgefragt werden.
Benutzer
In der Minimal-Konfiguration werden folgende Standardattribute unterstützt:
externalIduserNameactivedisplayName
Darüber hinaus können bis zu 16 zusätzliche optionale Felder synchronisiert werden:
urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute01urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute02urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute03urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute04urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute05urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute06urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute07urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute08urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute09urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute10urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute11urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute12urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute13urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute14urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute15urn:ietf:params:scim:schemas:extension:primedocs:2.0:User:customAttribute16
Die Form der customAttribute wurde so gewählt um bei der Synchronisierung die nötige Flexibilität zu bieten. Die eigentliche Benutzersynchronisierung im primedocs System geschiet über die Benutzersynchronisation.
Im Entra ID sieht die Konfiguration u.A. so aus:

Wichtig:
- Passwörter werden nicht synchronisiert.
- Die eigentliche Authentifizierung der Benutzer erfolgt ausschliesslich über die hinterlegte Entra ID App zur Authentifizierung: Entra ID Apps
Gruppen
Für Gruppen werden folgende Attribute unterstützt:
externalIddisplayNamemembers(Liste der Benutzer-IDs, die zur Gruppe gehören)
Im Entra ID sieht dies so aus:

Datenbereinigung
Der Prozess zur endgültigen Löschung von Benutzern mit dem Status active=false aus der Datenbank wird standardmässig 48 Stunden nach der Deaktivierung durch den JobHost gestartet.
Dieser Zeitraum kann über die Konfigurationsdatei primedocs.config mithilfe des Attributs deactivedUserRetentionHours angepasst werden.
Erst durch die Löschung aus der SCIM-Datenbank, kann das reguläre Benutzer-Offboarding starten.
Technische Details
- Alle SCIM-Daten werden in der Operations-Datenbank gespeichert.
- Pro Instanz können mehrere SCIM Tenants hinterlegt werden.
- Die DataSource wird mit einem SCIM Tenant verbunden. In diesem Fall arbeitet der PrincipalConnector im SCIM-Modus.
- Benutzer und Gruppen in der Operations-Datenbank bilden dabei eine Art "Schatten-Entra ID".
- Für die Benutzersynchronisierung steht eine SyncSource zur Verfügung:
- SCIM (Benutzersynchronisation)
- Diese sorgt dafür, dass die SCIM-Attribute (inkl. der bis zu 16 Zusatzfelder) auf die entsprechenden Benutzerfelder in der primedocs-Datenbank gemappt werden können.