ข้ามไปยังเนื้อหาหลัก

ภาพรวม

โปรโตคอล 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) ความสัมพันธ์การแมประหว่างแอตทริบิวต์มีดังนี้:

User Resource Schema (SCIM)User (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 เพื่อจัดการ User ที่แต่ละ User สังกัดองค์กรเฉพาะ แอตทริบิวต์ organization ควรถูกส่งใน Enterprise User Schema Extension (ระบุโดย URI สคีมา urn:ietf:params:scim:schemas:extension:enterprise:2.0:User) นี่คือการแสดง User Resource Schema 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"
}