التخطي إلى المحتوى الرئيسي

نظرة عامة

بروتوكول 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"
}