Configurer l’authentification Basic avec le module REST API Authentication
L’authentification Basic est une méthode d’authentification très simple et directe. Le client envoie des requêtes HTTP avec un en-tête Authorization contenant un nom d’utilisateur et un mot de passe encodés en base64 pour votre site Drupal.
Avec l’authentification Basic, le module miniOrange API Authentication authentifie d’abord l’utilisateur avec son nom d’utilisateur et son mot de passe Drupal. Si l’utilisateur est authentifié, alors seulement il pourra effectuer l’opération. Ce module est compatible avec Drupal 7, Drupal 8, Drupal 9, Drupal 10 et Drupal 11.
Vidéo d’installation :
Prérequis : téléchargement et installation :
- Téléchargez et installez le module Drupal REST & JSON API Authentication.
- REST UI : Ce module vous fournit une interface utilisateur pour configurer le module REST.
- Activez les modules Web Services suivants dans la section Extension (/admin/modules) de votre site Drupal :
- JSON: API
- REST UI
- RESTful Web Services
- Sérialisation
Étapes pour configurer la méthode d’authentification Basic dans Drupal :
- Pour mieux comprendre, nous prendrons l’exemple d’ajouter l’authentification Basic pour récupérer un nœud dans Drupal via REST API.
- Notez que l’API /node/{node} de Drupal sert à récupérer les informations d’un nœud Drupal.
Activez l’API et attribuez les méthodes et opérations suivantes :
- La première étape est d’activer l’API et d’assigner les méthodes et opérations autorisées sur cette API spécifique. Cela peut être fait via le module REST UI ou en modifiant la configuration directement.
- Pour activer l’API avec le module REST UI, cliquez sur le bouton configurer du module REST UI (comme montré ci-dessous) :
- Dans notre exemple, nous activons l’API /node/{node} présente dans la section Contenu. Activez cette API en cliquant sur l’option Activer devant elle.
- Maintenant, puisque notre objectif est de récupérer les informations du nœud, sélectionnez les configurations suivantes :
- Méthode : GET
- Format : json
- Fournisseur d’authentification : rest_api_authentication
- Cela permettra au module miniOrange REST API Authentication d’authentifier votre API. Cliquez sur le bouton Enregistrer la configuration pour continuer.
Étapes pour activer l’authentification Basic :
- Dans cette étape, nous allons configurer l’authentification Basic comme méthode d’authentification API. Pour cela, allez dans l’onglet Authentification API du module REST API Authentication (/admin/config/people/rest_api_authentication/auth_settings)
- Cochez la case Activer l’authentification et cliquez sur Enregistrer au-dessus des paramètres.
- Sous le bouton Enregistrer les paramètres, sélectionnez l’option Authentification Basic et cliquez sur le bouton sélectionner la méthode.
C’est tout !!!
Essayons maintenant de récupérer les informations d’un nœud via un appel API utilisant l’authentification Basic.
Exemple :
- Pour obtenir les informations d’un nœud dans Drupal, vous devez effectuer une requête GET avec le nom d’utilisateur et le mot de passe Drupal de l’utilisateur. Ces valeurs doivent être encodées en base64. Vous pouvez vous référer au format ci-dessous pour faire l’appel.
Requête : GET <votre_url_base_drupal>/node/{node}?_format=json
En-tête :
Authorization : Basic base64encodé <nom_utilisateur:mot_de_passe>
Accept : application/json
Content-Type : application/jsonFormat de requête CURL :
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encodé <nom_utilisateur:mot_de_passe>'
- Vous pouvez aussi vous référer à l’image de la requête Postman ajoutée ci-dessous :
- Une réponse réussie retourne les informations du nœud que vous avez demandé. (voir l’image ci-dessous)
- Si vous recevez une erreur en réponse, vous pouvez vous référer au tableau ci-dessous pour la description de l’erreur et les solutions possibles.
Erreur |
Description |
MISSING_AUTHORIZATION_HEADER |
Cette erreur survient lorsque vous n’envoyez pas d’en-tête Authorization dans la requête API ou si celui-ci a été supprimé par votre serveur pour une raison quelconque. Exemple : |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Cette erreur survient lorsque vous envoyez l’en-tête Authorization mais dans un format invalide. |
USER_NAME_MISSING |
Cette erreur survient lorsque le module ne parvient pas à trouver le nom d’utilisateur dans l’appel API. Exemple : |
INVALID_CREDENTIALS |
Cette erreur survient lorsque le nom d’utilisateur ou le mot de passe est incorrect. Exemple : |