Résultats de recherche :

×

Connectez-vous SSO à Drupal en utilisant Laravel comme fournisseur OAuth / OpenID Connect


L'intégration Drupal OAuth / OpenID Connect SSO permet le SSO entre le site Drupal et Laravel Passport. Ce guide de configuration aide à configurer Authentification unique (SSO) entre le site Drupal et Laravel Passport à l'aide du module OAuth/OpenID Connect. Ce module est compatible avec Drupal 7, Drupal 8, Drupal 9 et Drupal 10. Lorsque vous intégrez le module OAuth / OpenID Connect au site Drupal, vous pouvez vous connecter au site Drupal de manière transparente avec les informations d'identification Laravel Passport.

Procédure d'installation:


  • Téléchargez le module :
    le compositeur nécessite 'drupal/miniorange_oauth_client'
  • Accédez à étendre menu sur votre console d'administration Drupal et recherchez Configuration du client miniOrange OAuth en utilisant le champ de recherche.
  • Activez le module en cochant la case et cliquez sur le Installer .
  • Vous pouvez configurer le module à :
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Installez le module :
    drush et drupal/miniorange_oauth_client
  • Vider le cache:
     drush cr
  • Vous pouvez configurer le module à :
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Accédez à étendre menu sur votre console d'administration Drupal et cliquez sur Installer un nouveau module de.
  • Installer Drupal Connexion OAuth et OpenID Connect - Connexion SSO client OAuth2 module soit en téléchargeant le zip, soit depuis l'URL du paquet (tar/zip).
  • Cliquez sur Activer les modules nouvellement ajoutés.
  • Activez ce module en cochant la case et en cliquant sur installer .
  • Vous pouvez configurer le module à :
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc

Configurez Drupal en tant que client OAuth :

  • Sur le site Drupal, accédez à configuration -> Configuration du client miniOrange OAuth -> Configurer OAuth languette.
  • Drupal en tant qu'authentification unique OAuth/OpenID Connect - Configuration Navigte - Configuration du client miniOrange OAuth
  • Sélectionnez Fournisseur OAuth 2.0 personnalisé du Sélectionnez une application menu déroulant.
  • Copiez le URL de rappel/redirection et gardez-le à portée de main.
  • Notes: Si votre fournisseur prend uniquement en charge HTTPS URL de rappel/redirection et vous disposez d'un site HTTP, assurez-vous d'activer le 'Appliquer l'URL de rappel HTTPS' en bas de l'onglet.

  • Entrez Laravel comme nom de l'application dans le champ Nom du profil champ de texte.
  • Drupal en tant qu'authentification unique OAuth/OpenID Connect - Sous Configurer OAuth - Sélectionnez le fournisseur OAuth 2.0 personnalisé dans Sélectionnez l'application - Copier le rappel

Créez une application OAuth/OpenID SSO dans Laravel Passport :

  • Créez un projet Laravel sur votre machine locale à l'aide de la commande et configurez-le :
    composer create-project --prefer-dist blog laravel/laravel
  • Changez le répertoire en blog en utilisant blog de cd commande. Installez le passeport Laravel.
    le compositeur a besoin de laravel/passeport
  • Allez dans config/app.php et ajoutez le fournisseur ci-dessous
    Laravel\Passport\PassportServiceProvider :: classe
  • Exécutez les commandes ci-dessous
    php artisan migrer
    Passeport artisan php : installer
  • Cliquez sur app/Utilisateur.php classe de modèle, ajouter HasApiTokens trait du code :
        Application d'espace de noms ;
        utilisez Laravel\Passport\HasApiTokens ;
        utilisez Illuminate\Contracts\Auth\MustVerifyEmail ; utilisez Illuminate\Foundation\Auth\User comme authentifiable ; utilisez Illuminate\Notifications\Notifiable ; L'utilisateur de classe étend Authenticatable {
          utilisez HasApiTokens, notifiable ;
         
          
            /** * Les attributs assignables en masse. * * Tableau @var */
            
            protected $fillable = [ 'nom', 'email', 'mot de passe', ];
         
            /** * Les attributs qui doivent être masqués pour les tableaux. * * Tableau @var */
            protected $hidden = [ 'mot de passe', 'remember_token', ];
         
            /** * Les attributs qui doivent être convertis en types natifs. * * Tableau @var */
           
            protected $casts = [ 'email_verified_at' => 'datetime', ]; }
        
  • Cliquez sur app/Providers/AuthServiceProvider.php, ajouter utilisez Laravel\Passport\Passport ; , Passeport :: routes (); itinéraires vers le code de service :
        espace de noms App\Fournisseurs ;
        utilisez Laravel\Passport\Passport ;
        utilisez Illuminate\Foundation\Support\Providers\AuthServiceProvider comme ServiceProvider ; utilisez Illuminate\Support\Facades\Gate ; la classe AuthServiceProvider étend ServiceProvider {
        
            /** * Les mappages de stratégie pour l'application. * * Tableau @var */
            protected $policies = [ // 'App\Model' => 'App\Policies\ModelPolicy', ];
         
            /** * Enregistrez tous les services d'authentification/autorisation. * * @return void */
            public function boot() { $this->registerPolicies();
                Passeport :: itinéraires ();
                // } }
       
  • Cliquez sur config/auth.php et changez le API jeton de conducteur à le passeport car nous allons utiliser la bibliothèque Passport.
        'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [
                    'chauffeur' => 'passeport',
                    'provider' => 'utilisateurs', 'hash' => false, ], ],
        

Intégration de Drupal avec Laravel :

  • Accédez au portail Laravel et exécutez les commandes suivantes pour obtenir identité du client ainsi que Secret client:
    passeport artisan php : client
  • Il vous posera les questions suivantes :
        À quel identifiant utilisateur doit-on attribuer le client ? : > 1 Comment doit-on nommer le client ? : > Démo Compte client OAuth2 Où devons-nous rediriger la demande après autorisation ? > Collez l'URL de rappel/redirection. Nouveau client créé avec succès. ID client : 1 Secret client : zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        
  • Copiez l'ID client et la valeur du secret client.
  • Allez chez Drupal Configurer OAuth onglet et collez le copié identité du client ainsi que Secret client dans les champs de texte respectifs.
  • Sous l'onglet Configurer OAuth de Drupal, fournissez l'ID client et le secret client de Laravel Passport-Application.
  • Pour créer manuellement un point de terminaison UserInfo, dans le app/Http/Contrôleurs, créez un fichier UserController.php:
        <?php
        espace de noms App\Http\Controllers ;
        utilisez App\Http\Controllers\Controller ;
        utilisez Illuminate\Http\Request ;
        utilisez App\Modèles\Utilisateur ;
        utilisez Authentification ;
        la classe UserController étend le contrôleur
        {
            fonction publique get (Requête $requête)
            {
                $user_id = Auth::id();
                $user = Utilisateur::find($user_id);
                renvoie $utilisateur ;
            }
        }
        
  • Enregistrez la route API en ajoutant la ligne ci-dessous dans routes/api.php fichier:
        //Pour Laravel inférieur à 8 et migré vers la version 8 :
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
            OR
        //Pour les nouveaux utilisateurs de Laravel 8 :
         utilisez App\Http\Controllers\UserController ; Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Copiez et collez la portée et les points de terminaison suivants dans l'onglet Configurer OAuth de Drupal.
    Domaine profil de messagerie openid
    Autoriser le point de terminaison /oauth/autoriser
    Point de terminaison du jeton d'accès /oauth/jeton
    Obtenir le point de terminaison des informations utilisateur /api/utilisateur/get
  • Sous l'onglet Configurer OAuth de Drupal, indiquez la portée et les points de terminaison de l'application Laravel Passport.
  • Cliquez sur le Enregistrer la configuration .

Tester la connexion entre Drupal et Laravel

  • Cliquez sur le Effectuer une configuration de test pour vérifier la connexion Single Sign-On (SSO) entre Drupal et Laravel.
  • Test de la connexion d'authentification unique entre Drupal et Laravel Passport - Cliquez sur Effectuer la configuration du test
  • Dans une fenêtre contextuelle Test de connexion, si vous n'avez pas de session active dans Laravel sur le même navigateur, il vous sera demandé de vous connecter à votre compte Laravel. Après vous être connecté avec succès à un compte Laravel, vous recevrez une liste d'attributs reçus du Laravel Passport.
  • Sélectionnez le Attribut d'e-mail dans le menu déroulant dans lequel l'e-mail de l'utilisateur est obtenu et cliquez sur le bouton OK .
  • Pour fournir une liste d'attributs reçus de Laravel - Sélectionnez Attribut de courrier électronique dans la liste déroulante

Veuillez noter : Le mappage de l'attribut e-mail est obligatoire pour que votre connexion fonctionne.

Toutes nos félicitations! Vous avez configuré avec succès Laravel Passport en tant que fournisseur OAuth/OpenID et Drupal en tant que client OAuth.

Comment réaliser le SSO ?

  • Maintenant, ouvrez un nouveau navigateur/fenêtre privée et accédez à la page de connexion de votre site Drupal.
  • Cliquez sur le Connectez-vous en utilisant Laravel lien pour lancer le SSO depuis Drupal.
  • Si vous souhaitez également ajouter le lien SSO à d'autres pages, veuillez suivre les étapes indiquées dans l'image ci-dessous :
  • Drupal OAuth OpenID Single Single-On - Ajouter un lien de connexion dans différentes pages du site Drupal

Besoin d'assistance?

Si vous rencontrez des problèmes lors de la configuration ou si vous souhaitez des fonctionnalités supplémentaires, veuillez nous contacter à drupalsupport@xecurify.com.

Caractéristiques supplémentaires:

Dépannage:

Erreur d'obtention : « Nom d'utilisateur non reçu. Vérifiez votre configuration de mappage d'attributs. OU Obtenir l'erreur : « E-mail non reçu. Vérifiez votre configuration de mappage d'attributs.
 

Suivez les étapes mentionnées ICI

J'obtiens le message « Les informations d'identification du client n'ont pas été trouvées dans les en-têtes ou le corps » lorsque j'essaie d'effectuer une configuration de test.
 

Suivez les étapes mentionnées ICI

Après avoir cliqué sur la déconnexion dans Drupal, cela me renvoie à la page d'accueil de Drupal. Cependant, lorsque j'essaie de me connecter avec un autre utilisateur, il ne me demande pas de me connecter mais me connecte automatiquement avec le même utilisateur.
 

La fonctionnalité de déconnexion que vous avez mentionnée ici est le comportement par défaut d'un module. Cela vous déconnecte de Drupal mais pas de votre application/fournisseur. Pour permettre au module de se déconnecter de votre compte fournisseur/application (ce que vous recherchez), vous devez effectuer les configurations ci-dessous : [en savoir plus]

J'ai acheté le module Drupal payant et l'ai remplacé par le module gratuit, mais je ne parviens toujours pas à utiliser les fonctionnalités payantes.
 

Comme vous avez mis à niveau vers l'une de nos versions payantes du module Drupal et remplacé le module gratuit par le module payant, vous devez d'abord activer le module payant. Veuillez vous référer aux étapes ci-dessous. [En savoir plus]

Foire Aux Questions (FAQ)
 Études de cas
miniOrange a répondu avec succès aux cas d'utilisation de plus de 400 clients de confiance grâce à ses solutions Drupal hautement flexibles/personnalisables. N'hésitez pas à consulter certaines de nos études de cas uniques en utilisant ceci lien.
 D'autres solutions
N'hésitez pas à explorer les autres solutions Drupal que nous proposons ici. Les solutions populaires utilisées par nos clients de confiance incluent l'authentification à deux facteurs : 2FA, la sécurité du site Web, l'authentification API REST et JSON, le provisionnement des utilisateurs et la synchronisation. 
  Assistance active 24h/7 et XNUMXj/XNUMX
Les développeurs Drupal de miniOrange offrent un support rapide et actif pour vos requêtes. Nous pouvons vous aider depuis le choix de la meilleure solution pour votre cas d’utilisation jusqu’au déploiement et à la maintenance de la solution.
Bonjour!

Besoin d'aide? Nous sommes ici !

Support
Contacter l'assistance miniOrange
succès

Merci pour votre demande.

Si vous n'avez pas de nouvelles de nous dans les 24 heures, n'hésitez pas à envoyer un e-mail de suivi à info@xecurify.com