Перейти до основного вмісту

Огляд

Протокол SCIM - це HTTP-базований протокол для розгортання та управління даними ідентичності, який визначається за допомогою схем SCIM. Ви можете використовувати Casdoor як провайдера послуг SCIM.

Використовуйте Casdoor як провайдера послуг SCIM

Наразі Casdoor підтримує лише User Resource Schema, ви можете управляти користувачами через операції користувача SCIM. Ви можете взаємодіяти з Casdoor через наступні кінцеві точки:

Кінцева точкаМетодОпис
/scim/ServiceProviderConfigGETНадайте деталі про функції стандарту SCIM, які підтримуються, наприклад, підтримувані ресурси.
/scim/SchemasGETНадайте деталі про схеми провайдера послуг.
/scim/ResourceTypesGETВкажіть метадані про кожен ресурс.
/scim/Users/:idGETОтримати користувача з ідентифікатором ресурсу id.
/scim/UsersGETЗапит користувачів з параметрами запиту (наразі підтримуються лише startIndex та count).
/scim/UsersPOSTСтворити користувача.
/scim/Users/:idPUTОновити користувача з ідентифікатором ресурсу id.
/scim/Users/:idPATCHЗмінити користувача з ідентифікатором ресурсу id за допомогою операції PATCH.
/scim/Users/:idDELВидалити користувача з ідентифікатором ресурсу id.

Для отримання додаткової інформації, будь ласка, зверніться до rfc7644.

Ресурс користувача

Casdoor реалізує відображення між User Resource Schema (SCIM) та User (Casdoor). Відношення відображення між атрибутами наступне:

Схема ресурсу користувача (SCIM)Користувач (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

Оскільки Casdoor використовує Організацію для управління Користувачем, де кожен Користувач належить до певної Організації, атрибут organization слід передавати в Enterprise User Schema Extension (ідентифіковано за URI схеми urn:ietf:params:scim:schemas:extension:enterprise:2.0:User). Ось представлення схеми ресурсу користувача SCIM у форматі JSON:

{
"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"
}