Aperçu
Le protocole SCIM est un protocole basé sur HTTP pour la provision et la gestion des données d'identité spécifiées à travers les schémas SCIM. Vous pouvez utiliser Casdoor comme un fournisseur de services SCIM.
Utilisez Casdoor comme fournisseur de services SCIM
Actuellement, Casdoor ne prend en charge que le User Resource Schema
, vous pouvez gérer les utilisateurs à travers les opérations SCIM User. Vous pouvez interagir avec Casdoor à travers les points de terminaison suivants :
Point de terminaison | Méthode | Description |
---|---|---|
/scim/ServiceProviderConfig | GET | Fournissez des détails sur les fonctionnalités de la norme SCIM qui sont prises en charge, par exemple, les ressources qui sont prises en charge. |
/scim/Schemas | GET | Fournissez des détails sur les schémas du fournisseur de services. |
/scim/ResourceTypes | GET | Spécifiez les métadonnées concernant chaque ressource. |
/scim/Users/:id | GET | Récupérez un utilisateur avec l'identifiant de ressource id . |
/scim/Users | GET | Interrogez les utilisateurs avec des paramètres de requête (actuellement ne prend en charge que startIndex et count ). |
/scim/Users | POST | Créez un utilisateur. |
/scim/Users/:id | PUT | Mettez à jour un utilisateur avec l'identifiant de ressource id . |
/scim/Users/:id | PATCH | Modifiez un utilisateur avec l'identifiant de ressource id par une opération PATCH. |
/scim/Users/:id | DEL | Supprimez un utilisateur avec l'identifiant de ressource id . |
Pour plus de détails, veuillez vous référer à rfc7644.
Ressource Utilisateur
Casdoor implémente la correspondance entre User Resource Schema
(SCIM) et User
(Casdoor). La relation de correspondance entre les attributs est la suivante :
User Resource Schema (SCIM) | User (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 |
Puisque Casdoor utilise l'Organisation pour gérer l'Utilisateur, où chaque Utilisateur appartient à une Organisation spécifique, l'attribut organization
doit être transmis dans Enterprise User Schema Extension
(identifié par l'URI de schéma urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
). Voici une représentation SCIM du User Resource Schema au format 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"
}