Passer au contenu principal

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 terminaisonMéthodeDescription
/scim/ServiceProviderConfigGETFournissez 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/SchemasGETFournissez des détails sur les schémas du fournisseur de services.
/scim/ResourceTypesGETSpécifiez les métadonnées concernant chaque ressource.
/scim/Users/:idGETRécupérez un utilisateur avec l'identifiant de ressource id.
/scim/UsersGETInterrogez les utilisateurs avec des paramètres de requête (actuellement ne prend en charge que startIndex et count).
/scim/UsersPOSTCréez un utilisateur.
/scim/Users/:idPUTMettez à jour un utilisateur avec l'identifiant de ressource id.
/scim/Users/:idPATCHModifiez un utilisateur avec l'identifiant de ressource id par une opération PATCH.
/scim/Users/:idDELSupprimez 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)
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

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"
}