Résultats de recherche :

×

S'inscrire Contactez-Nous

Points de terminaison de l'API du serveur SCIM Drupal

Ce document décrit les points de terminaison SCIM nécessaires à l'activation du provisionnement et du déprovisionnement des utilisateurs SCIM. SCIM est un protocole standard du secteur qui permet d'automatiser les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) des utilisateurs. moduleLe site Drupal pourra ainsi faire office de serveur SCIM. Cela signifie que toute modification effectuée sur le fournisseur d'identité (c'est-à-dire le client SCIM) sera synchronisée avec le site Drupal.

  • Version du protocole : SCIM2.0
  • Chemin de base : base_url/scim
  • Ressources prises en charge : Utilisateurs, Groupes
  • Format de données: JSON
  • Autorisation: Jeton au porteur
  • Content-Type: application / json
  • Acceptez: application / json

Les opérations API suivantes sont prises en charge

Points de terminaison utilisateur

Points de terminaison du groupe

    Pour désactiver ou supprimer un utilisateur dans Drupal, vous devez activer les paramètres nécessaires dans le module. Ces options sont disponibles sur la page de configuration du module.

    PATCH /Utilisateurs/{user-id}
  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception RessourceIntrouvable L'utilisateur spécifié n'existe pas. 404
  • Exemple de demande :
  • PATCH /Users/{user-id} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "Opérations": [ { "op": "Remplacer", "chemin": "actif", "valeur": false } ] }
        
  • Exemple de réponse - 204 Aucun contenu.
  • { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "4", "userName": "username", "active": , "emails": [{ "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" }], "meta": { "resourceType": "User" } }
    
        

    Pour récupérer un utilisateur existant, effectuez une requête GET à /Utilisateurs en utilisant leur identifiant utilisateur.

    GET /Users/{user-id}
  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception RessourceIntrouvable L'utilisateur spécifié n'existe pas. 404
  • Exemple de demande :
  •     GET /Users/{user-id} HTTP/1.1 Authorization: Bearer
  • Exemple de réponse :
    • 404 Introuvable.
    •     { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Utilisateur introuvable", "status": 404 }
      
    • 200 OK trouvés.
    • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "4", "userName": "username", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
      

    Ce point de terminaison vous permet de filtrer et de récupérer des utilisateurs spécifiques à partir de la liste d'utilisateurs existante. En effectuant une requête GET à l'adresse suivante : /Utilisateurs En ajoutant des paramètres de filtrage à ce point de terminaison, vous pouvez affiner les résultats en fonction d'attributs tels que le nom d'utilisateur et l'adresse électronique. Ce point de terminaison prend en charge les recherches filtrées, mais ne peut renvoyer que 50 enregistrements d'utilisateurs par requête.

  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception RessourceIntrouvable L'utilisateur spécifié n'existe pas. 404
    OBTENIR /Utilisateurs
  • Paramètres de la requête :
  • 3.1 Index de départ et nombre

      Elle accepte les paramètres de requête startIndex et count. startIndex correspond à l'identifiant de départ et count au nombre maximal de résultats que la requête peut renvoyer.

    • Exemple de demande :
    • GET /Users?startIndex=1&count=50 Autorisation : Bearer 
      
    • Exemple de réponse :
    • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "startIndex": 1, "itemsPerPage": 2, "Resources": [ { "id": "1", "externalId": "1", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example1@example.com", "displayName": "example1@example.com", "emails": { "value": "example1@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, { "id": "13", "externalId": "13", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example2", "displayName": "example2", "emails": { "value": "example2@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, ] }
      

    3.2 Rechercher un utilisateur par son nom d'utilisateur

    • Exemple de demande :
    •  GET /Users?filter=userName eq "admin" 
    • Exemple de réponse :
      • Si l'utilisateur est introuvable avec le nom d'utilisateur spécifié, nous envoyons un schéma vide indiquant qu'aucun utilisateur n'a été trouvé.
      • Utilisateur introuvable - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        

        Utilisateur trouvé - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid de l'utilisateur", "username": "admin", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        

    3.3 Rechercher l'utilisateur par son adresse e-mail

    • Exemple de demande :
    • GET /Users?filter=emails[type eq "work"].value eq "email@gmail.com" Authorization: Bearer
      
    • Exemple de réponse :
      • Si l'utilisateur présente l'e-mail.
      • Utilisateur trouvé - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid de l'utilisateur", "username": "Nom d'utilisateur", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        
        
      • Si l'utilisateur est introuvable par e-mail, le module envoie un schéma vide indiquant que l'utilisateur n'a pas été trouvé.
      • Utilisateur introuvable - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        
        

Si l'utilisateur est trouvé lors de la requête GET, une requête PATCH ou PUT sera effectuée pour le mettre à jour ; sinon, une requête POST sera effectuée pour le créer. Vous pouvez mettre à jour des champs spécifiques d'un utilisateur à l'aide d'un PATCH demande à la /Utilisateurs Point de terminaison. Dans le corps de la requête, incluez l'attribut que vous souhaitez modifier et sa nouvelle valeur.

PATCH /Utilisateurs/{user-id}
  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception RessourceIntrouvable L'utilisateur spécifié n'existe pas. 404
  • Exemple de demande :
  • PATCH/Utilisateurs/{{user-id}} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "Replace", "path": "emails[type eq \"work\"].value", "value": "email@gmail.com" }, { "op": "Replace", "path": "name.familyName", "value": "familyname" } ] }
    
  • Exemple de réponse : 200 OK.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid de l'utilisateur", "userName": "Nom d'utilisateur", "active": 1, "emails": [ { "primary": true, "value": "email@gmail.com", "type": "work", "display": "email@gmail.com" } ], "meta": { "resourceType": "User" } }
    

Vous pouvez mettre à jour un utilisateur à l'aide d'une requête PUT vers le /Utilisateurs Point de terminaison. Cette requête remplace l'objet utilisateur complet ; par conséquent, tous les attributs utilisateur requis doivent être fournis dans le corps de la requête.

PUT /Users/{{user-id}}
  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception RessourceIntrouvable L'utilisateur spécifié n'existe pas. 404
  • Exemple de demande :
  • PUT/Users/{{user-id}} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "exmple", "active": 1, "emails": [ { "primary": true, "value": "exmple@example.com", "type": "work", "display": "exmple@example.com" } ], "meta": { "resourceType": "User" }, "name": { "givenName": "givenName", "familyName": "familyName", "middleName": "sdf", "honorificPrefix": "sdf" }, "displayName": "givenName familyName", "nickName": "df", "addresses": [ { "primary": true, "locality": "fdd" } ], "locale": "en-US", "externalId": "9rqltOOLI95d7", "groupes": [] }
    
  • Exemple de réponse : 200 ok.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "example", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
    

6. Créer un utilisateur (POST)

Utilisez une requête POST sur le /Utilisateurs Point de terminaison pour créer un nouvel utilisateur. Veillez à inclure tous les champs nécessaires dans le corps de la requête. Une requête réussie renvoie le code 201 (Créé) et les informations de l'utilisateur.

POST /Utilisateurs
  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    Exception de conflit Cet utilisateur existe déjà. 409
  • Exemple de demande :
  • POST /Users HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"], "externalId": "abc", "userName": "example", "active": true, "emails": [{ "primary": true, "type": "work", "value": "example@example.com" }], "meta": { "resourceType": "User" }, "name": { "formatted": "first name last name", "familyName": "last name", "givenName": "first name" } }
    
  • Exemple de réponse : 201 créé.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "externalId": "abc", "userName": "example", "active": true, "emails": [ { "primary": true, "type": "work", "value": "example@example.com" } ], "meta": { "resourceType": "User" }, "name": { "formatted": "first name last name", "familyName": "last name", "givenName": "first name" }, "id": "98" }
    

Le /Groupes Ce point de terminaison prend en charge les requêtes GET pour récupérer la liste des groupes disponibles sur le serveur SCIM. Cette opération ne renvoie que les informations de base du groupe, telles que son ID et son nom d'affichage. La liste des membres est toujours vide, car le point de terminaison n'inclut pas les détails d'appartenance au groupe dans la réponse.

  • Exemple de demande :
  • GET /Groups HTTP/1.1 Authorization: Bearer
  • Exemple de réponse : 200 ok
  • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 4, "Resources": [ { "id": "anonymous", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "anonymous" }, { "id": "authenticated", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "authenticated" }, { "id": "administrator", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "administrator" }, { "id": "editor_admin", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "editor_admin" } ], "startIndex": 1, "itemsPerPage": 4 }
    
    
  • Filtre pris en charge :
  • GET /Groups?filter=displayName eq "administrateur"
  • Exemple de demande :
  • GET /scim/Groups?filter=displayName eq "administrator" HTTP/1.1 Authorization: Bearer
    
  • Exemple de réponse : 200 ok.
  • Si un groupe est trouvé avec le nom d'affichage.

    { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "Resources": [], "startIndex": 1, "itemsPerPage": 20 }
    

/Groupes/{id} Récupère la ressource de groupe associée à l'identifiant de groupe fourni. Seules les métadonnées du groupe sont renvoyées dans la réponse. Les informations relatives aux membres ne sont pas incluses.

  • Exemple de demande :
  • GET /Groups/administrator HTTP/1.1 Authorization: Bearer
    
  • Exemple de réponse :
    • Trouvé - 200 OK.

      { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "administrator", "meta": { "resourceType": "Group" }, "displayName": "Administrator" }
      
      

      Introuvable - 404.

      { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Administrateur de groupe introuvable", "status": 404 }
      
      

Utiliser un POSTEZ demande à /Groupes Pour créer un nouveau groupe, vous devez lui fournir un nom (displayName). Bien que vous puissiez inclure des membres dans le corps de la requête, la réponse renverra toujours une liste vide de membres.

  • Les erreurs:
  • Erreur État Code d'état HTTP
    Exception de validation Soit le module n'est pas activé, soit la clé de licence utilisée est incorrecte. 400
    Exception non autorisée L'en-tête d'autorisation est invalide ou manquant. 401
    OperationNotSupportedExceptionOperationNotSupportedExceptionOperationNotSupportedExceptionOperationNotSupportedException La modification de groupe n'est pas autorisée. 501
  • Exemple de demande :
    • Demande sans liste de membres.
    • POST /Groupes HTTP/1.1 Autorisation : Bearer { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" } }
      
    • Demande avec liste des membres.
    • POST /Groupes HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "group1", "members": [ { "value": "3", "display": "admin@gmail.com" }, { "value": "2", "display": "admin2@gmail.com" } ] }
      
  • Réponse : 201 Créé.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" }, "members": [], "id": "group2" }
    

Vous pouvez mettre à jour les informations de base d'un groupe, comme son nom d'affichage, à l'aide d'une requête PATCH. /Groupes/{id-groupe}Cette requête met à jour uniquement les attributs que vous fournissez et ne modifie pas les membres du groupe. Une mise à jour réussie renvoie le code 204 (Aucun contenu).

  • Exemple de demande :
  • PATCH /Groups/group1 HTTP/1.1 Authorization: Bearer 
    
    { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Replace", "path": "displayName", "value": "updated group1" }] }
    
  • Exemple de réponse - 204 Aucun contenu.

Le /Groupes/{id} Ce point de terminaison permet d'ajouter et de supprimer des membres via une requête PATCH. Le corps de la requête doit inclure la liste des identifiants des utilisateurs à ajouter. Cette action met uniquement à jour les membres du groupe et renvoie le code 204 (Aucun contenu) en cas de succès.

  • Exemple de demande :
    • Ajouter un membre au groupe.
    • PATCH /Groups/updated group1 HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Ajouter", "path": "membres", "value": [{ "$ref": null, "value": "97" }] }] }
      
    • Retirer le membre du groupe.
    • PATCH /Groups/updated group1 HTTP/1.1 Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Supprimer", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
  • Exemple de réponse : 204 Aucun contenu.

Le /Groupes/{id} Le point de terminaison prend en charge la suppression d'un groupe à l'aide d'un EFFACER requête. Cette opération supprime le groupe du serveur SCIM. Une suppression réussie renvoie une 204 Aucun contenu Aucune réponse n'est fournie, indiquant que le groupe a été supprimé.

  • Exemple de demande :
  • SUPPRESSION /Groupes/updated group1 HTTP/1.1 Autorisation : Bearer
    
  • Exemple de réponse - 204 Aucun contenu.

Si la configuration n'a pas réussi, veuillez nous contacter à drupalsupport@xecurify.com. Veuillez envoyer la capture d'écran de la fenêtre d'erreur et nous vous aiderons à résoudre le problème et vous guiderons tout au long de la configuration.

ADFS_sso ×
Bonjour!

Besoin d'aide? Nous sommes ici !

soutenez