Configurer l'authentification OAuth/Access Token dans Drupal
Ce Authentification API Drupal La méthode OAuth utilise le protocole OAuth 2.0 pour générer un jeton d'accès sécurisé. Ce jeton est ensuite utilisé pour authentifier et envoyer des requêtes aux API de votre site Drupal. Grâce à un chiffrement puissant, la méthode OAuth garantit la protection de vos API contre tout accès non autorisé. Il est largement considéré comme l'une des méthodes les plus sûres pour protéger les points de terminaison Drupal REST et JSON:API. Ce module est entièrement compatible avec Drupal 8, 9, 10 et 11.
- Utiliser le compositeur
- Utiliser Drush
- Installation manuelle
Conditions préalables:
- Interface utilisateur REST: Ce module fournit une interface conviviale pour configurer le module REST.
- Activez les modules de services Web suivants à partir du étendre section (/admin/modules) de votre site Drupal :
- JSON : API
- Interface utilisateur REST
- Services Web RESTful
- La sérialisation
Activer l'API et attribuer des méthodes :
- La première étape consiste à activer l'API et à lui attribuer les méthodes et opérations autorisées. Pour ce faire, utilisez l'option Interface utilisateur REST module, ou en modifiant directement la configuration Drupal.
- Cliquez sur le Activer l'API .
- Pour activer l'API à l'aide du module REST UI, cliquez sur le Configurez bouton (comme indiqué ci-dessous).
- Dans notre exemple, nous devons activer le /entité/utilisateur API. Pour ce faire, cliquez sur l'option Activer devant.
- Puisque notre objectif est de créer un utilisateur dans Drupal, sélectionnez les configurations suivantes :
- Préparation: POSTEZ
- Format: JSON
- Fournisseur d'authentification : authentification_rest_api
- Cela permet au module d'authentification de l'API miniOrange d'authentifier l'API. Cliquez sur le Enregistrer la configuration pour continuer.
Étapes de configuration
1. Configurer la méthode d'authentification OAuth/jeton d'accès :
- Dans cette étape, nous allons configurer OAuth/Access Token comme méthode d'authentification API. Pour cela, accédez à Authentification API onglet du module (/admin/config/people/rest_api_authentication/auth_settings).
- Sous Configuration de base, activez le Activer l'authentification basculer.
- Entrer le Nom de l'application et sélectionnez OAuth/Jeton d'accès du Méthode d'authentification .
- Faites défiler jusqu'à la Configuration OAuth section sur le même onglet.
- Facultatif : saisissez la durée d’expiration souhaitée (en minutes) sous Heure d’expiration du jeton.
- Utiliser le jeton d'accès généré par :
- Authentification de l'API REST : Cliquez sur Générer un nouvel identifiant client et un nouveau secret bouton. (Gardez l'ID client et le secret à portée de main. Vous en aurez besoin plus tard pour authentifier l'API de création d'utilisateur.)
- Serveur OAuth : Vous pouvez également obtenir un jeton d'accès auprès du Serveur OAuth module (après avoir effectué SSO) et l'utiliser pour l'authentification.
- Cliquez sur Enregistrer la configuration .
- Vous avez configuré avec succès la méthode d’authentification OAuth/Access Token.
À noter: Utilisez l’en-tête unique spécifique à l’application lors de l’authentification de l’API.
Accorder des autorisations de rôle pour créer des utilisateurs
- Si nécessaire, vous pouvez autoriser les rôles Drupal non administrateurs à créer des utilisateurs. Pour cela, attribuez l'autorisation « Administrer les utilisateurs » aux rôles souhaités depuis la page « Autorisations » (/admin/people/permissions) de votre site Drupal.
2. Obtenir le jeton à partir du module API REST :
- Effectuez un appel API pour obtenir un jeton d'accès. Vous l'utiliserez ensuite pour authentifier l'API Drupal et créer un utilisateur.
- Le module d'authentification API miniOrange prend en charge deux types d'octroi pour l'obtention d'un jeton d'accès :
- Dans l'octroi de mot de passe, nous pouvons obtenir le jeton d'accès en effectuant une requête POST contenant le nom d'utilisateur et le mot de passe Drupal de l'utilisateur ainsi que l'ID client émis par le module d'authentification REST API.
Octroi de mot de passe :
Format de requête HTML - Requête : POST /rest_api/access_token Corps : grant_type = mot de passe nom d'utilisateur = mot de passe = client_id = Requête au format CURL - curl --location --request POST ' /rest_api/access_token' \ --header 'Accepter : application/json' \ --header 'Type de contenu : application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id= ' \ --data-urlencode 'nom d'utilisateur= \ --data-urlencode 'mot de passe= '
- Vous pouvez également vous référer à l'image de demande du facteur ci-dessous.
Octroi des informations d'identification du client :
- Dans l'octroi des informations d'identification du client, nous pouvons obtenir le jeton d'accès en effectuant une requête POST contenant l'ID client et le secret client émis par le module d'authentification API ainsi que le nom d'utilisateur Drupal de l'utilisateur.
Format de requête HTML - Requête : POST /rest_api/access_token Corps : grant_type = client_credentials client_id = client_secret = Nom d'utilisateur = Format de requête CURL - curl --location --request POST '/rest_api/access_token' \ --header 'Accepter : application/json' \ --header 'Type de contenu : application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode 'nom d'utilisateur= >' \ --data-urlencode 'client_secret= '
- Une réponse réussie renvoie le jeton d'accès ainsi que l'expiration du jeton et le type de jeton (veuillez vous référer à l'image ci-dessous)
3. Exemple:
- Maintenant, créons un utilisateur avec un appel API utilisant OAuth/Access Token pour l’authentification.
- Pour une meilleure compréhension, prenons un exemple d’ajout d’une authentification basée sur OAuth/Access Token à l’API de création d’utilisateur dans Drupal.
- Utilisation du jeton d'accès reçu pour autoriser les API REST Drupal :
- Pour vous authentifier avec un jeton d’accès, ajoutez le jeton en tant que jeton Bearer dans l’en-tête d’autorisation de votre demande.
- Exemple de demande pour créer un utilisateur à l’aide d’une authentification basée sur un jeton :
À noter: L'API /entity/user dans Drupal est utilisée pour créer un nouvel utilisateur.
À noter: Tout jeton d’accès, qu’il soit généré par le module d’authentification API ou par le module serveur OAuth, peut être utilisé.
Format de requête HTML - Requête : POST /entity/user?_format=json En-tête : AUTH-METHOD : application_id Accepter : application/json Type de contenu : application/json Autorisation : Porteur Corps : { "nom" : { "valeur" : " " }, "mail": { "valeur": " " }, "pass": { "valeur": " " }, "status": { "value": "1" } } Format de requête CURL - curl --location --request POST ' /entity/user?_format=json' \ --header 'AUTH-METHOD: application_id' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ --data-raw ' { "name": [ { "value": "Nom d'utilisateur" } ], "mail": [ { "value": "email" } ], "pass": [ { "value": "Mot de passe" } ], "status": [ { "value": "1" } ] }
- Une réponse réussie renverra les détails de l'utilisateur que vous avez créé (voir l'image ci-dessous).
Félicitations ! Vous avez correctement configuré l'authentification OAuth/jeton d'accès à l'aide du module d'authentification de l'API Drupal.
Si la configuration n'a pas réussi, veuillez nous contacter à drupalsupport@xecurify.comVeuillez inclure une 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.
Merci pour votre réponse. Nous reviendrons vers vous bientôt.
Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête
