Ü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:
Endpunkt | Methode | Beschreibung |
---|---|---|
/scim/ServiceProviderConfig | GET | Geben Sie Details zu den Funktionen des SCIM-Standards an, die unterstützt werden, zum Beispiel die unterstützten Ressourcen. |
/scim/Schemas | GET | Geben Sie Details zu den Dienstanbieter-Schemata an. |
/scim/ResourceTypes | GET | Spezifizieren Sie Metadaten über jede Ressource. |
/scim/Users/:id | GET | Rufen Sie einen Benutzer mit der Ressourcenkennung id ab. |
/scim/Users | GET | Abfragen von Benutzern mit Abfrageparametern (derzeit nur Unterstützung für startIndex und count ). |
/scim/Users | POST | Erstellen Sie einen Benutzer. |
/scim/Users/:id | PUT | Aktualisieren Sie einen Benutzer mit der Ressourcenkennung id . |
/scim/Users/:id | PATCH | Ändern Sie einen Benutzer mit der Ressourcenkennung id durch eine PATCH-Operation. |
/scim/Users/:id | DEL | Lö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) |
---|---|
id | Id |
meta.created | CreatedTime |
meta.lastModified | UpdatedTime |
meta.version | UpdatedTime |
externalId | ExternalId |
userName | Name |
password | Password |
displayName | DisplayName |
profileUrl | Homepage |
userType | Type |
name.givenName | FirstName |
name.familyName | LastName |
emails[0].value | |
phoneNumbers[0].value | Phone |
photos[0].value | Avatar |
addresses[0].locality | Location |
addresses[0].region | Region |
addresses[0].country | CountryCode |
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"
}