Résultats de recherche :

×

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

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


Authentification unique Laravel OAuth (SSO) donne la possibilité d'activer l'authentification unique OAuth pour vos applications Laravel. En utilisant l'authentification unique, vous ne pouvez utiliser qu'un seul mot de passe pour accéder à votre application et à vos services Laravel. Notre plugin est compatible avec tous les fournisseurs d'identité compatibles OAuth. Ici, nous allons passer en revue un guide étape par étape pour configurer l'authentification unique (SSO) entre Laravel et Laravel Passport en considérant Laravel Passport comme fournisseur OAuth. Pour en savoir plus sur les autres fonctionnalités que nous proposons dans le plugin d'authentification unique du client Laravel OAuth, vous pouvez 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 à l'aide de 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 la connexion à authentification unique (SSO) Laravel Passport dans Laravel

1. Configurez Laravel Passport en tant que fournisseur OAuth

  • Installez le passeport Laravel en utilisant la commande ci-dessous
  • composer require laravel/passport
  • Cliquez sur config/app.php et ajoutez le fournisseur ci-dessous
  • Laravel\Passport\PassportServiceProvider::class
  • Courir php artisan migrer commander
  • Courir Passeport artisan php : installer commander
  • Cliquez sur 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 : Cliquez sur 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();
                //
            }
        }
        
  • Cliquez sur config/auth.php changer la api jeton de conducteur à passeport car 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 ainsi que le 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. Configurez le plugin client Laravel OAuth pour Laravel Passport

  • Allez à 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 ainsi que le Secret client du passeport Laravel L'Application.
  • Paramètres de sauvegarde de Laravel Single Sign On SSO
  • Veuillez vous référer au tableau ci-dessous pour configurer le Domaine ainsi que le 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, entrez également 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'attribut et des valeurs d'attribut 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 en utilisant Laravel en tant que 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 additionnelles

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