Documentation de l’API Backend (DAB)

Configuration et Sécurisation de l’API

Temps estimé :3 minutes 99 views

Objectif

Mettre en place une API de connexion sécurisée pour les utilisateurs avec des permissions spécifiques, en utilisant les modules JSON:API, JSON:API Extras, Simple OAuth, et Consumers.

Étape 1 : Installer et activer les modules nécessaires

JSON:API : Permet d’exposer les entités Drupal via une API RESTful.

JSON:API Extras : Fournit des configurations supplémentaires pour JSON.

Simple OAuth : Fournit une méthode d’authentification OAuth 2.0 pour les API RESTful.

Consumers : Permet de créer des configurations pour les applications consommant l’API.

Activez les modules via la ligne de commande Drush ou via l’interface d’administration de Drupal.

Étape 2 : Configuration de JSON:API et JSON:API Extras

  1. Configurer JSON:API : accédez à /admin/config/services/jsonapi pour spécifier si chaque endpoint doit être en lecture seule ou autoriser toutes les opérations CRUD (Create, Read, Update, Delete)

2. Configurer JSON:API Extras : accédez à la page de configuration de JSON Extras /admin/config/services/jsonapi/extras et changer le préfixe des routes, dans le champ « Path prefix », remplacez /jsonapi par /api

Dans la section « Resource overrides », vous verrez une liste de toutes les entités disponibles. Vous pouvez, par exemple, changer la route spécifique /api/node/article en /api/article, choisir quels champs doivent être exposés ou non dans l’API JSON, utiliser des alias de champ (par exemple, tags au lieu de field_tags), et améliorer la sortie. Pour ce faire, cliquez sur « Overwrite » et modifiez l’entité selon vos besoins.

Étape 3 : Configurer Simple OAuth

Accédez à /admin/config/people/simple_oauth et faites défiler jusqu’en bas. Cliquez sur « Générer des clés » et suivez les instructions pour définir un chemin de stockage sécurisé pour les clés, par exemple ../config/jwt. Assurez-vous d’avoir les droits d’écriture sur ce répertoire ; sinon, exécutez la commande suivante pour ajuster les permissions :

chmod 777 ../config/jwt

Étape 4 : Créer et configurer un consumer

  1. Ajouter un rôle : accédez à admin/people/roles ; cliquez sur « Add role » et nommez-le par exemple « Expert ».
  2. Configurer les permissions du rôle : accédez à admin/people/permissions et donnez au rôle « Expert » les permissions que vous jugez nécessaire y compris Access JSON:API Routes (pour accéder aux routes JSON).
  3. Ajouter un consumer : accédez à admin/config/services/consumer ; cliquez sur « Add consumer » et remplissez les informations nécessaires (label, client ID, client Secret etc.). Puis dans la section ‘Scopes’ associez le consumer au rôle ‘Expert’.

Étape 4 : Générer et récupérer le token

  • Accédez à admin/people/create ; créez un utilisateur et assignez-lui le rôle « Expert ».
  • Utilisez une requête POST pour obtenir un token. Voici un exemple en utilisant curl :
curl --request POST \
  --url http://your-drupal-site/oauth/token \
  --header 'content-type: application/json' \
  --data '{"grant_type": "password", "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "username": "EXPERT_USERNAME", "password": "EXPERT_PASSWORD"}'
  • Utilisez le token pour accéder aux endpoints JSON :
curl --request GET \
  --url http://your-drupal-site/api/article \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

Assurez-vous que le token est généré et fonctionne correctement pour les requêtes autorisées.

CONTENTS