logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Authentification, Sécurité et Performance

21/06/2025, by Ivan

Le module JSON:API de Drupal offre un moyen puissant d'exposer votre contenu en tant qu'API, mais choisir la bonne méthode d'authentification est crucial pour la sécurité et l'utilisabilité. Cette revue explore les différentes options d'authentification disponibles lors de l'utilisation du module JSON de Drupal.

Méthodes d'authentification principales

Le module Drupal REST & JSON API Authentication restreint et sécurise l'accès non autorisé aux API de votre site Drupal en utilisant différentes méthodes d'authentification, notamment :

Ce module vous permet également d'authentifier les appels API dans une configuration Drupal sans tête / découplée.

  1. Authentification basique
  2. Authentification basée sur clé API
  3. Authentification basée sur token d'accès / OAuth
  4. Authentification basée sur token JWT
  5. Authentification par token de fournisseur tiers

Authentification par cookie

La méthode d'authentification par défaut dans Drupal utilise des cookies de session. Lorsqu'un utilisateur se connecte via le formulaire de connexion de Drupal, un cookie de session est créé et peut être utilisé pour authentifier les requêtes JSON.

Avantages :

  • Simple à mettre en œuvre pour les applications basées sur navigateur
  • Utilise le système d'authentification existant de Drupal
  • Fonctionne bien pour les applications JavaScript hébergées sur le même domaine

Limitations :

  • Peu adapté aux requêtes inter-domaines sans configuration supplémentaire
  • Moins idéal pour les applications mobiles ou intégrations tierces
  • Gestion des sessions consommatrice en ressources

Authentification basique

L'authentification basique consiste à envoyer les identifiants (nom d'utilisateur et mot de passe) avec chaque requête dans l'en-tête Authorization.

Avantages :

  • Simple à implémenter
  • Largement supportée par les clients HTTP

Limitations :

  • Les identifiants sont envoyés à chaque requête
  • Sécurisée uniquement via HTTPS
  • Pas d'expiration de token intégrée

Modules d'authentification contribué

Simple OAuth (OAuth 2.0)

Simple OAuth implémente le protocole OAuth 2.0 pour l'authentification des API Drupal.

Avantages :

  • Authentification sécurisée basée sur des tokens
  • Support des tokens de rafraîchissement
  • Permissions fines par scope
  • Idéal pour les intégrations tierces
  • Standard largement adopté

Limitations :

  • Configuration plus complexe comparée à l'authentification basique
  • Nécessite une bonne compréhension des flux OAuth 2.0

JWT (JSON Web Token)

Le module JWT permet l'authentification via JSON Web Tokens.

Avantages :

  • Authentification sans état
  • Réduit les requêtes en base pour la vérification
  • Peut inclure des claims/métadonnées dans le token
  • Bonne performance à grande échelle

Limitations :

  • Nécessite une bonne gestion des clés
  • Risques de sécurité si mal implémenté
  • Pas de révocation de token intégrée (sans mesures supplémentaires)

Key Auth

Key Auth fournit une authentification par clé API pour Drupal.

Avantages :

  • Approche simple par clé API
  • Adapté aux communications machine-à-machine
  • Configuration minimale requise

Limitations :

  • Moins sécurisé qu'OAuth pour les applications centrées utilisateur
  • Options limitées pour la révocation
  • Pas de mécanisme de rafraîchissement de token

Consumer Auth

Consumer Auth étend les capacités des entités Consumer dans le système API de Drupal.

Avantages :

  • Intégration avec le système consumer de Drupal
  • Permissions flexibles basées sur les consumers
  • Complète d'autres méthodes d'authentification

Limitations :

  • Destiné à être utilisé conjointement avec d'autres méthodes d'authentification
  • Pas une solution autonome

Considérations lors du choix d'une méthode d'authentification

Lorsque vous sélectionnez une méthode d'authentification pour votre JSON API, considérez :

  1. Exigences de sécurité : Quelle est la sensibilité de vos données ?
  2. Type de client : Basé sur navigateur, application mobile, ou serveur à serveur ?
  3. Expérience utilisateur : Les utilisateurs devront-ils se connecter fréquemment ?
  4. Besoins de performance : Quelle est l'importance de la rapidité d'authentification ?
  5. Exigences d'intégration : Des services tiers accéderont-ils à votre API ?

Bonnes pratiques

  • Utilisez toujours HTTPS pour toute méthode d'authentification
  • Implémentez les en-têtes CORS appropriés pour les applications basées sur navigateur
  • Considérez attentivement les politiques d'expiration des tokens
  • Utilisez des tokens de rafraîchissement lorsque c'est approprié
  • Mettez en place une limitation du nombre de requêtes pour prévenir les attaques par force brute
  • Enregistrez les tentatives d'authentification pour la surveillance de la sécurité