Résultats de recherche :

×

S'inscrire Contactez-Nous

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


Authentification unique Laravel OAuth Le plugin SSO permet d'activer l'authentification unique OAuth pour vos applications Laravel. Grâce à l'authentification unique, vous pouvez utiliser un seul mot de passe pour accéder à vos applications et services Laravel. Notre plugin est compatible avec tous les fournisseurs d'identité compatibles OAuth. Nous vous guiderons ici étape par étape pour configurer l'authentification unique (SSO) entre Laravel et Laravel Passport, en utilisant Laravel Passport comme fournisseur OAuth. Pour en savoir plus sur les autres fonctionnalités du plugin SSO pour client OAuth Laravel, cliquez ici. 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 surélevées que pour les 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 surélevées que pour les 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 surélevées que pour les 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 Authentification unique (SSO) du passeport Laravel grâce à Laravel comme client OAuth. Cette solution garantit que vous êtes prêt à déployer un accès sécurisé à votre site Laravel en utilisant Connexion au passeport Laravel informations d'identification en quelques minutes.

Ressources supplémentaires

Bonjour!

Besoin d'aide? Nous sommes ici !

soutenez