Zum Hauptinhalt springen

Übersicht

Das SCIM-Protokoll ist ein HTTP-basiertes Protokoll zur Bereitstellung und Verwaltung von Identitätsdaten, die durch SCIM-Schemata spezifiziert sind. Sie können Casdoor als SCIM-Dienstanbieter verwenden.

Verwenden Sie Casdoor als SCIM-Dienstanbieter

Derzeit unterstützt Casdoor nur das User Resource Schema, Sie können Benutzer über SCIM-Benutzeroperationen verwalten. Sie können mit dem Casdoor über die folgenden Endpunkte interagieren:

EndpunktMethodeBeschreibung
/scim/ServiceProviderConfigGETGeben Sie Details zu den Funktionen des SCIM-Standards an, die unterstützt werden, zum Beispiel die unterstützten Ressourcen.
/scim/SchemasGETGeben Sie Details zu den Dienstanbieter-Schemata an.
/scim/ResourceTypesGETSpezifizieren Sie Metadaten über jede Ressource.
/scim/Users/:idGETRufen Sie einen Benutzer mit der Ressourcenkennung id ab.
/scim/UsersGETAbfragen von Benutzern mit Abfrageparametern (derzeit nur Unterstützung für startIndex und count).
/scim/UsersPOSTErstellen Sie einen Benutzer.
/scim/Users/:idPUTAktualisieren Sie einen Benutzer mit der Ressourcenkennung id.
/scim/Users/:idPATCHÄndern Sie einen Benutzer mit der Ressourcenkennung id durch eine PATCH-Operation.
/scim/Users/:idDELLöschen Sie einen Benutzer mit der Ressourcenkennung id.

Weitere Details finden Sie unter rfc7644.

Benutzerressource

Casdoor implementiert die Zuordnung zwischen User Resource Schema (SCIM) und User (Casdoor). Die Zuordnungsbeziehung zwischen Attributen ist wie folgt:

User Resource Schema (SCIM)User (Casdoor)
idId
meta.createdCreatedTime
meta.lastModifiedUpdatedTime
meta.versionUpdatedTime
externalIdExternalId
userNameName
passwordPassword
displayNameDisplayName
profileUrlHomepage
userTypeType
name.givenNameFirstName
name.familyNameLastName
emails[0].valueEmail
phoneNumbers[0].valuePhone
photos[0].valueAvatar
addresses[0].localityLocation
addresses[0].regionRegion
addresses[0].countryCountryCode

Da Casdoor Organisationen verwendet, um Benutzer zu verwalten, wobei jeder Benutzer einer bestimmten Organisation angehört, sollte das Attribut organization im Enterprise User Schema Extension übergeben werden (identifiziert durch den Schema-URI urn:ietf:params:scim:schemas:extension:enterprise:2.0:User). Hier ist eine Darstellung des User Resource Schema SCIM im JSON-Format:

{
"active": true,
"addresses": [
{
"country": "CN",
"locality": "Shanghai",
"region": "CN"
}
],
"displayName": "Bob~",
"emails": [
{
"value": "test1@casdoor.com"
}
],
"externalId": "1234123543234234",
"id": "ceacbcb6-40d0-48f1-af23-0990232d570a",
"meta": {
"resourceType": "User",
"created": "2023-10-08T23:51:55+08:00",
"lastModified": "2023-10-12T20:38:49+08:00",
"location": "Users/ceacbcb6-40d0-48f1-af23-0990232d570a",
"version": "2023-10-12T20:38:49+08:00"
},
"name": {
"familyName": "bob",
"formatted": "alice bob",
"givenName": "alice"
},
"nickName": "Bob~",
"phoneNumbers": [
{
"value": "18700006475"
}
],
"photos": [
{
"value": "https://cdn.casbin.org/img/casbin.svg"
}
],
"profileUrl": "https://test.com/profile/built-in/scim_test_user2",
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { // The enterprise User extension is identified using this schema URI
"organization": "built-in" // This attribute MUST be passed
},
"userName": "scim_test_user2",
"userType": "normal-user"
}