跳到主内容

概述

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使用查询参数查询用户(目前只支持startIndexcount)。
/scim/UsersPOST创建用户。
/scim/Users/:idPUT使用资源标识符id更新用户。
/scim/Users/:idPATCH通过PATCH操作使用资源标识符id修改用户。
/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使用组织来管理用户,每个用户都属于特定的组织,所以应该在Enterprise User Schema Extension(由模式URI urn:ietf:params:scim:schemas:extension:enterprise:2.0:User标识)中传递organization属性。 以下是用户资源模式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"
}