Résultats de recherche :

×

S'inscrire Contactez-Nous

Authentification unique (SSO) OAuth pour Laravel utilisant Laravel Passport en tant que fournisseur OAuth


Le plugin Laravel OAuth Single Sign-On (SSO) permet d'activer l'authentification unique OAuth pour vos applications Laravel. Grâce à l'authentification unique, un seul mot de passe suffit pour accéder à votre application et à vos services Laravel. Notre plugin est compatible avec tous les fournisseurs d'identité compatibles OAuth. Ce guide vous explique étape par étape comment configurer l'authentification unique (SSO) entre Laravel et Laravel Passport, ce dernier étant utilisé comme fournisseur OAuth. Pour en savoir plus sur les autres fonctionnalités de notre plugin Laravel OAuth client single-sign-on-sso, cliquez ici.

Installation du client Laravel Oauth

  • Ouvrez une fenêtre d'invite de commande et remplacez le répertoire de travail par votre Répertoire principal de l'application Laravel et installez le plugin Laravel OAuth en utilisant la commande ci-dessous.
  • composer require miniorange/oauth-laravel-free
  • Après l'installation réussie du package, accédez à votre application Laravel dans le navigateur et entrez {laravel-application-domain}/mo_oauth_admin
  • Le package commencera à configurer votre base de données pour vous, puis vous redirigera vers la page d'inscription de l'administrateur.
  • Inscrivez-vous ou connectez-vous avec votre compte miniOrange pour configurer le plugin.
  • Paramètres du plugin Laravel Single Sign On SSO
  • Après vous être connecté, vous verrez le Paramètres du fournisseur OAuth option, où vous obtiendrez le URL de redirection/rappel. Gardez-le à portée de main car il sera nécessaire plus tard pour configurer l'authentification unique (SSO) de Laravel Passport.
  • Paramètres du client SSO OAuth avec authentification unique Laravel

Étapes pour configurer l'authentification unique (SSO) de Laravel Passport dans Laravel

1. Configurer Laravel Passport comme fournisseur OAuth

  • Installez le passeport Laravel en utilisant la commande ci-dessous
  • composer require laravel/passport
  • Allez dans config/app.php et ajoutez le fournisseur ci-dessous
  • Laravel\Passport\PassportServiceProvider::class
  • Courir php artisan migrer commander
  • Courir Passeport artisan php : installer commander
  • Allez dans app/Modèles/Utilisateur.php classe de modèle, ajouter HasApiTokens trait du code :
  • 
         
        namespace App;
        use Laravel\Passport\HasApiTokens;
        use Illuminate\Contracts\Auth\MustVerifyEmail;
        use Illuminate\Foundation\Auth\User as Authenticatable;
        use Illuminate\Notifications\Notifiable;
         
        class User extends Authenticatable
        {
          use HasApiTokens, Notifiable;
         
          
            /**
             * The attributes that are mass assignable.
             *
             * @var array
            */
            protected $fillable = [
                'name', 'email', 'password',
            ];
         
            /**
             * The attributes that should be hidden for arrays.
             *
             * @var array
             */
            protected $hidden = [
                'password', 'remember_token',
            ];
         
            /**
             * The attributes that should be cast to native types.
             *
             * @var array
             */
           
            protected $casts = [
                'email_verified_at' => 'datetime',
            ];
        }
        
        
        
  • Pour Laravel version 9.0 ci-dessous : Allez dans app/Providers/AuthServiceProvider.php, ajouter utilisez Laravel\Passport\Passport ; , Passeport :: routes (); les itinéraires vers le code de service sont indiqués ci-dessous :
  •     
        namespace App\Providers;
        use Laravel\Passport\Passport;
        use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
        use Illuminate\Support\Facades\Gate;
         
        class AuthServiceProvider extends ServiceProvider
        {
        
            /**
             * The policy mappings for the application.
             *
             * @var array
             */
            protected $policies = [
                // 'App\Model' => 'App\Policies\ModelPolicy',
            ];
         
            /**
             * Register any authentication / authorization services.
             *
             * @return void
             */
            public function boot()
            {
                $this->registerPolicies();
                Passport::routes();
                //
            }
        }
        
  • Allez dans config/auth.php changer la api jeton de conducteur à passeport comme nous allons utiliser la bibliothèque Passport.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                   'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                   'hash' => false,
                ],
            ],
        
  • Pour créer manuellement un point de terminaison UserInfo, dans le app/Http/Contrôleurs, créez un fichier UserController.php:
  • 
        <?php
        namespace App\Http\Controllers;
        use App\Http\Controllers\Controller;
        use Illuminate\Http\Request;
        use App\Models\User;
        use Auth;
        class UserController extends Controller
        {
            public function get(Request $request)
            {
              $user_id = Auth::id();
              $user = User::find($user_id);
              return $user;
            }
        }
        
  • Enregistrez également la route API en ajoutant la ligne ci-dessous dans routes/api.php fichier:
  • 
        //For Laravel below 8 and migrated to the 8 version:
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
         

    OR

    
        //For Laravel 8 new users:
        use App\Http\Controllers\UserController;                                                                       
         Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Pour obtenir identité du client et Secret client exécutez les commandes suivantes : Passeport artisan php : client Il vous posera les questions suivantes :
  • 
         Which user ID should the client be assigned to?:
         > 1
         
         What should we name the client?
         > Demo OAuth2 Client Account
         
         Where should we redirect the request after authorization?
         [http://localhost/auth/callback]
         
        > Click Here to copy the Redirect URL.
          
        New client created successfully.
        
        Client ID: 1
        Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        


2. Configurer le plugin client Laravel OAuth pour Laravel Passport

  • Rendez-vous dans la section miniOrange Laravel OAuth SSO plugin et cliquez sur Choisissez Laravel Passport comme fournisseur OAuth.
  • Application de sélection Laravel Single Sign On SSO
  • Entrer le identité du client et Secret client du passeport Laravel  Application .
  • Paramètres de sauvegarde de Laravel Single Sign On SSO
  • Veuillez vous référer au tableau ci-dessous pour configurer le Domaine et Endpoints .
  • Portée: Laissez le champ de portée vide
    Autoriser le point de terminaison : http://your-laravel-site-url/oauth/authorize
    Point de terminaison du jeton d’accès : http://your-laravel-site-url/oauth/token
    Obtenez le point de terminaison UserInfo : http://your-laravel-site-url/api/user/get
  • Vous pouvez envoyer les informations d'identification du client dans entête or corps et aussi envoyer Etat paramètre en conséquence également entrer attribut de connexion selon votre condition.
  • Application de sélection Laravel Single Sign On SSO
  • Cliquez sur enregistrer les paramètres bouton. Après cela, cliquez sur configuration des tests bouton. vous obtiendrez la liste des noms d'attributs et des valeurs d'attributs envoyés par votre fournisseur OAuth
  • Paramètres de sauvegarde de Laravel Single Sign On SSO

3. Options SSO

  • Vous pouvez également utiliser un lien pour vous connecter via votre fournisseur OAuth/OpenID.
  • Ce lien est au format :
    {laravel-application-domain}/ssologin.php?option=oauthredirect

Dans ce guide, vous avez configuré avec succès l'authentification unique (SSO) Laravel Passport en utilisant Laravel comme client OAuth . Cette solution vous permet de déployer rapidement un accès sécurisé à votre site Laravel grâce aux identifiants de connexion Laravel Passport.

Ressources supplémentaires

Bonjour!

Besoin d'aide? Nous sommes ici !

soutenez