Огляд
Протокол SCIM - це HTTP-базований протокол для розгортання та управління даними ідентичності, який визначається за допомогою схем SCIM. Ви можете використовувати Casdoor як провайдера послуг SCIM.
Використовуйте Casdoor як провайдера послуг SCIM
Наразі Casdoor підтримує лише User Resource Schema
, ви можете управляти користувачами через операції користувача SCIM. Ви можете взаємодіяти з Casdoor через наступні кінцеві точки:
Кінцева точка | Метод | Опис |
---|---|---|
/scim/ServiceProviderConfig | GET | Надайте деталі про функції стандарту SCIM, які підтримуються, наприклад, підтримувані ресурси. |
/scim/Schemas | GET | Надайте деталі про схеми провайдера послуг. |
/scim/ResourceTypes | GET | Вкажіть метадані про кожен ресурс. |
/scim/Users/:id | GET | Отримати користувача з ідентифікатором ресурсу id . |
/scim/Users | GET | Запит користувачів з параметрами запиту (наразі підтримуються лише startIndex та count ). |
/scim/Users | POST | Створити користувача. |
/scim/Users/:id | PUT | Оновити користувача з ідентифікатором ресурсу id . |
/scim/Users/:id | PATCH | Змінити користувача з ідентифікатором ресурсу id за допомогою операції PATCH. |
/scim/Users/:id | DEL | Видалити користувача з ідентифікатором ресурсу id . |
Для отримання додаткової інформації, будь ласка, зверніться до rfc7644.
Ресурс користувача
Casdoor реалізує відображення між User Resource Schema
(SCIM) та User
(Casdoor). Відношення відображення між атрибутами наступне:
Схема ресурсу користувача (SCIM) | Користувач (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 |
Оскільки 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"
}