SSO sans tête Drupal utilisant le protocole OAuth
Marché
La solution d'authentification unique (SSO) headless de miniOrange, basée sur OAuth, connecte efficacement le backend Drupal à un serveur OAuth via le protocole OAuth. Une fois l'authentification unique terminée, le module génère un jeton Web JSON (JWT) pour l'utilisateur connecté et le transmet au site frontend. (Optionnel : ce jeton peut servir à valider d'autres API Drupal.) Ce guide explique en détail le fonctionnement de l'authentification unique headless, tant côté backend que côté frontend.
Commençons d’abord par le backend.Pré-requis :
- Module client OAuth miniOrange : Ce module active le SSO entre le site Drupal et le fournisseur OAuth/OIDC.
- Module d'authentification API REST et JSON :Une fois le SSO effectué, ceci module aide à générer le JWT et à envoyer ce jeton à l'application frontend. (Facultatif : pour authentifier d'autres API Drupal, transmettez le même JWT dans l'en-tête avec la requête API, et le module d'authentification REST & JSON API validera ce JWT.)
Configurations du backend
- Module client OAuth miniOrange : Suivez cette guide d'installation pour établir la connexion entre le site Drupal et le fournisseur OAuth/OIDC souhaité.
- Module d'authentification API REST et JSON :
- Pour authentifier les API Drupal à l'aide du JWT, configurez le Authentification JWT méthode dans le module. Suivez ceci guide d'installation.
- Configurer l'URL de redirection de l'application frontend :
- Accédez à la Paramètres avancés onglet du module Authentification API REST & JSON.
- Dans l' Configurations de points de terminaison de jetons pour l'authentification unique sans tête Pour plus d'informations, saisissez le point de terminaison de l'application front-end, vers lequel le navigateur redirigera après le processus d'authentification unique (SSO), avec un paramètre de code. Cliquez ensuite sur Enregistrer la configuration du point de terminaison du jeton .
- Flux de connexion :
- Lancer la connexion à partir de l'application frontale de l'utilisateur. (en utilisant l'URL- {drupal-base-url}/moLogin)
- L'utilisateur est redirigé vers le serveur configuré.
- Saisissez les informations d'identification de l'utilisateur pour vous authentifier.
- Après une authentification réussie, l'utilisateur est redirigé vers le frontend avec le code comme paramètre de requête dans l'URL.
- Utilisez le code obtenu à l'étape précédente pour envoyer une requête au point de terminaison du jeton Drupal. Pour cela, suivez les étapes ci-dessous :
- Localisez le point de terminaison du jeton dans le Configurations de points de terminaison de jetons pour l'authentification unique sans tête détails. Reportez-vous à l'image suivante pour cela.
- Exemple pour faire une requête POST avec le code reçu :
- Supposons qu'un utilisateur reçoive un code (received_code) sur le frontend.
- Maintenant, utilisez le format ci-dessous pour faire une requête POST en utilisant ce code.
Découvrir les scènes du frontend
Cette section révèle tout ce qu'un utilisateur doit faire côté frontend.
Commençons:
HTTP : POST https://{drupal_base_url}/getToken code=(received_code)
Remarque : Pour connaître le format des requêtes API incluant le jeton JWT dans l’en-tête, reportez-vous à ce guide de configuration.
