Suchergebnisse :

×

OAuth Single Sign-On (SSO) für Laravel mit Laravel Passport als OAuth-Anbieter

OAuth Single Sign-On (SSO) für Laravel mit Laravel Passport als OAuth-Anbieter


Laravel OAuth Single Sign-On (SSO)-Plugin bietet die Möglichkeit, OAuth Single Sign-On für Ihre Laravel-Anwendungen zu aktivieren. Mit Single Sign-On können Sie nur ein Passwort verwenden, um auf Ihre Laravel-Anwendung und -Dienste zuzugreifen. Unser Plugin ist mit allen OAuth-kompatiblen Identitätsanbietern kompatibel. Hier gehen wir eine Schritt-für-Schritt-Anleitung durch, um Single Sign-On (SSO) zwischen Laravel und Laravel Passport unter Berücksichtigung von Laravel Passport als OAuth-Anbieter zu konfigurieren. Um mehr über andere Funktionen zu erfahren, die wir im Laravel OAuth-Client-Single-Sign-On-SSO-Plugin bereitstellen, können Sie hier klicken Klicke hier.

Installation des Laravel OAuth-Clients

  • Öffnen Sie ein Eingabeaufforderungsfenster und ändern Sie das Arbeitsverzeichnis in Ihr Das Hauptverzeichnis der Laravel-App und installieren Sie das Laravel OAuth-Plugin mit dem folgenden Befehl.
  • composer require miniorange/oauth-laravel-free
  • Gehen Sie nach erfolgreicher Installation des Pakets im Browser zu Ihrer Laravel-App und geben Sie ein {laravel-application-domain}/mo_oauth_admin
  • Das Paket beginnt mit der Einrichtung Ihrer Datenbank und leitet Sie dann zur Administrator-Registrierungsseite weiter.
  • Registrieren Sie sich oder melden Sie sich mit Ihrem miniOrange-Konto an, um das Plugin zu konfigurieren.
  • Laravel Single Sign On SSO-Plugin-Einstellungen
  • Nach der Anmeldung sehen Sie die OAuth-Anbietereinstellungen Option, wo Sie die erhalten Weiterleitungs-/Rückruf-URL. Halten Sie es griffbereit, da es später für die Konfiguration von Laravel Passport Single Sign-On (SSO) benötigt wird.
  • Laravel Single Sign On SSO OAuth-Client-Einstellungen

Schritte zum Konfigurieren von Laravel Passport Single Sign-On (SSO) Anmeldung bei Laravel

1. Konfigurieren Sie Laravel Passport als OAuth-Anbieter

  • Installieren Sie Laravel Passport mit dem folgenden Befehl
  • composer require laravel/passport
  • Gehen Sie zu config/app.php und fügen Sie unten den Anbieter hinzu
  • Laravel\Passport\PassportServiceProvider::class
  • Führen Sie php artisan migrieren Befehl
  • Führen Sie PHP-Handwerkerpass: installieren Befehl
  • Gehen Sie zu app/Models/User.php Modellklasse, hinzufügen HasApiTokens Merkmal zum 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',
            ];
        }
        
        
        
  • Für Laravel Version 9.0 unten: Gehen Sie zu app/Providers/AuthServiceProvider.php, Fügen verwenden Sie Laravel\Passport\Passport; , Passport::routes(); Die Routen zum Servicecode sind unten angegeben:
  •     
        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();
                //
            }
        }
        
  • Gehen Sie zu config/auth.php ändern die Bienen Treiber-Token zu Pass da wir die Passport-Bibliothek verwenden werden.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                   'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                   'hash' => false,
                ],
            ],
        
  • Um einen UserInfo-Endpunkt manuell zu erstellen, im app/Http/Controllers, erstellen Sie eine Datei 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;
            }
        }
        
  • Registrieren Sie außerdem die API-Route, indem Sie die folgende Zeile hinzufügen Routen/api.php Datei:
  • 
        //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');
        
  • Um Kunden-ID und Kundengeheimnis Führen Sie folgende Befehle aus: PHP-Handwerker-Pass:Client Es werden Ihnen folgende Fragen gestellt:
  • 
         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. Konfigurieren Sie das Laravel OAuth-Client-Plugin für Laravel Passport

  • Gehen Sie zum miniOrange Laravel OAuth SSO Plugin und klicken Sie auf Wählen Sie Laravel Passport als OAuth-Anbieter.
  • Laravel Single Sign On SSO-App auswählen
  • Geben Sie die Kunden-ID und Kundengeheimnis aus Laravel Passport Applikation.
  • Laravel Single Sign On SSO-Speichereinstellungen
  • Informationen zur Konfiguration finden Sie in der folgenden Tabelle Geltungsbereich und Endpunkte .
  • Umfang: Lassen Sie das Bereichsfeld leer
    Endpunkt autorisieren: http://your-laravel-site-url/oauth/authorize
    Zugriffstoken-Endpunkt: http://your-laravel-site-url/oauth/token
    UserInfo-Endpunkt abrufen: http://your-laravel-site-url/api/user/get
  • Sie können die Anmeldeinformationen des Kunden einsenden Kopfzeile or Körper und auch verschicken Zustand Parameter entsprechend ebenfalls eintragen Login-Attribut Wie von Ihnen erbeten.
  • Laravel Single Sign On SSO-App auswählen
  • Klicken Sie auf Einstellungen speichern Taste. Klicken Sie anschließend auf Testkonfiguration Taste. Sie erhalten die Liste der Attributnamen und Attributwerte, die von Ihrem OAuth-Anbieter gesendet werden
  • Laravel Single Sign On SSO-Speichereinstellungen

3. SSO-Optionen

  • Sie können sich auch über einen Link über Ihren OAuth/OpenID-Anbieter anmelden.
  • Dieser Link hat das folgende Format:
    {laravel-application-domain}/ssologin.php?option=oauthredirect

In diesem Handbuch haben Sie die Konfiguration erfolgreich durchgeführt Laravel Passport Single Sign-On (SSO) Verwendung von Laravel als OAuth-Client. Diese Lösung stellt sicher, dass Sie bereit sind, einen sicheren Zugriff auf Ihre Laravel-Site bereitzustellen Laravel Passport-Anmeldung Anmeldeinformationen innerhalb von Minuten.

Weitere Informationen

Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Support
Kontaktieren Sie den miniOrange-Support
Erfolg

Vielen Dank für Ihre Anfrage.

Wenn Sie innerhalb von 24 Stunden nichts von uns hören, können Sie gerne eine Folge-E-Mail an senden info@xecurify.com