نظرة عامة
بروتوكول 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"
}