Sökresultat :

×

Laravel Passport OAuth & OpenID connect Single Sign-On (SSO) | Laravel Passport SSO-inloggning

Laravel Passport OAuth & OpenID connect Single Sign-On (SSO) | Laravel Passport SSO-inloggning


Få gratis prov

WordPress OAuth & OpenID Connect Single Sign-On (SSO) plugin möjliggör säker inloggning till WordPress med Laravel Passport som OAuth- och OpenID Connect-leverantör. Du kan också konfigurera plugin med olika anpassade leverantörer och standard IDP:er. Den stöder avancerade Single Sign-On (SSO) funktioner som användarprofil Attributmapping, Rollmapping etc. Här kommer vi att gå igenom en guide för att konfigurera SSO mellan WordPress och Laravel Passport. I slutet av den här guiden bör användare kunna logga in på WordPress från Laravel Passport. För att veta mer om andra funktioner vi tillhandahåller i WP OAuth Single Sign-On (OAuth & OpenID Connect Client) plugin, kan du Klicka här.

Förutsättningar: Ladda ner och installation


  • Logga in på din WordPress-instans som admin.
  • Gå till WordPress Dashboard -> Plugins och klicka på Lägg till en ny.
  • Sök efter en WordPress OAuth enkel inloggning (SSO) plugin och klicka på installera nu.
  • När du har installerat klicka på Aktivera.

Steg för att konfigurera Laravel Passport Single Sign-On (SSO) Inloggning till WordPress

1. Ställ in Laravel Passport som OAuth-leverantör

  • Skapa ett laravel-projekt på din lokala maskin med kommandot och ställ in det:
  • kompositör skapa-projekt --prefer-dist laravel/laravel blogg

  • Ändra katalogen till att blogga med cd blogg kommando. Installera laravel pass
  • kompositör kräver laravel/pass

  • Gå till config/app.php och lägg till nedanstående leverantör
  • Laravel\Passport\PassportServiceProvider::class

  • Körning php artisan migrera kommando
  • Körning php artisan passport:installera kommando
  • Gå till app/User.php modellklass, tillägg HasApiTokens egenskap hos koden:
  • 
         
        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',
            ];
        }
        
        
        
  • Gå till app/Providers/AuthServiceProvider.php, Lägg till använd Laravel\Passport\Pass; , Passport::routes(); rutter till servicekoden anges nedan:
  •     
        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();
                //
            }
        }
        
  • Gå till config/auth.php ändra api förartecken till pass eftersom vi ska använda passbiblioteket.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                    'hash' => false,
                ],
            ],
        
  • För att få kund-ID och Klienthemlighet kör följande kommandon: php hantverkspass:klient Den kommer att ställa dig följande frågor:
  • 
         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
        

  • För att skapa en UserInfo-slutpunkt manuellt, i app/Http/Controllers, skapa en fil 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;
            }
        }
        
  • Registrera också API-rutten genom att lägga till raden nedan routes/api.php fil:
  • 
        //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');
        

Du har konfigurerat Laravel Passport som OAuth-leverantör för att få Laravel Passport-inloggning på din WordPress-webbplats.


2. Ställ in WordPress som OAuth-klient

  • Gå till Konfigurera OAuth flik och konfigurera Appnamn, klient-ID, klienthemlighet från tillhandahållen Slutpunkter.
  • Se tabellen nedan för att konfigurera scope & endpoints för Laravel Passport i plugin.


    Klient ID : från steg 3 ovan
    Klienthemlighet: från steg 3 ovan
    Auktorisera slutpunkt: http://your-laravel-site-url/oauth/authorize
    Åtkomsttokens slutpunkt: http://your-laravel-site-url/oauth/token
    Få användarinformation slutpunkt: http://your-laravel-site-url/api/user/get
  • Klicka på Spara inställningar för att spara konfigurationen.
  • Laravel Passport Single Sign-On (SSO) OAuth/OpenID WordPress-konfigureringsslutpunkter

Du har konfigurerat WordPress som OAuth-klient för att få Laravel Passport-inloggning på din WordPress-webbplats.


3. Mappning av användarattribut

  • Användarattributmappning är obligatorisk för att göra det möjligt för användare att logga in på WordPress. Vi kommer att ställa in användarprofilattribut för WordPress med inställningarna nedan.
  • Hitta användarattribut

    • Gå till Konfigurera OAuth flik. Scrolla ner och klicka på Testkonfiguration.
    • Laravel Passport Single Sign-On (SSO) OAuth/OpenID WordPress testkongifuration
    • Du kommer att se alla värden som returneras av din OAuth-leverantör till WordPress i en tabell. Om du inte ser värdet för förnamn, efternamn, e-post eller användarnamn, gör de nödvändiga inställningarna i din OAuth-leverantör för att returnera denna information.
    • Laravel Passport Single Sign-On (SSO) OAuth/OpenID WordPress-testkongifurationsresultat
    • När du ser alla värden i Test Configuration, gå till Attribut/rollmappning fliken kommer du att få en lista över attribut i en rullgardinsmeny för Användarnamn.
    • Laravel Passport Single Sign-On (SSO) OAuth/OpenID WordPress-attribut/rollmappning

4: Rollkartläggning [Premium]

  • Klicka på "Testa konfiguration" och du kommer att få en lista över attributnamn och attributvärden som skickas av din OAuth-leverantör.
  • I fönstret Testkonfiguration mappar du attributnamnen i sektionen Attributmappning av plugin-programmet. Se skärmdumpen för mer information.
  • Laravel Passport Single Sign-On (SSO) - attributmappning
  • Aktivera rollmappning: För att aktivera rollmappning måste du mappa attribut för gruppnamn. Välj attributnamnet från listan över attribut som returnerar rollerna från din leverantörsapplikation.
    T.ex: Roll

  • Laravel Passport Single Sign-On (SSO) - testkonfiguration - rollmappning
  • Tilldela WordPress-rollen till leverantörsrollen: Baserat på din leverantörsapplikation kan du tilldela WordPress-rollen till dina leverantörsroller. Det kan vara en elev, lärare, administratör eller någon annan beroende på din ansökan. Lägg till leverantörsrollerna under Group Attribute Value och tilldela den nödvändiga WordPress-rollen framför den under WordPress-rollen.

    Till exempel, i bilden nedan. Lärare har tilldelats rollen som administratör & student tilldelas rollen som prenumerant.
  • Laravel Passport Single Sign-On (SSO) - testkonfiguration - rollmappning
  • När du har sparat mappningen kommer leverantörsrollen att tilldelas WordPress-administratörsrollen efter SSO.
    Exempelvis: Enligt det givna exemplet kommer användare med rollen "lärare" att läggas till som administratör i WordPress och "student" kommer att läggas till som prenumerant.

5. Inloggningsinställningar

  • Inställningarna på fliken Inställningar för enkel inloggning (SSO) definierar användarupplevelsen för enkel inloggning (SSO). För att lägga till en Laravel-inloggningswidget på din WordPress-sida måste du följa stegen nedan.
    • Gå till WordPress vänsterpanel > Utseende > Widgets.
    • Välja miniOrange OAuth. Dra och släpp till din favoritplats och spara.
    • Laravel Single Sign-on (SSO) - Inställning för inloggningsknapp för WordPress skapa ny klient
    • Gå till WordPress vänsterpanel > Utseende > Widgets.
    • Välja miniOrange OAuth. Dra och släpp till din favoritplats och spara.
    • Laravel Single Sign-on (SSO) - Inställning för inloggningsknapp för WordPress skapa ny klient
    • Öppna din WordPress-sida och du kan se Laravel SSO-inloggningsknappen där. Du kan testa Laravel Single Sign-On (SSO) nu.
    • Se till "Visa på inloggningssidan" alternativet är aktiverat för din applikation. (Se bilden nedan)
    • Laravel Single Sign-on (SSO) - Inställning för inloggningsknapp för WordPress skapa ny klient
    • Gå nu till din WordPress Login sida. (T.ex. https://< din-wordpress-domän >/wp-login.php)
    • Du kommer att se en Laravel SSO-inloggningsknapp där. När du klickar på inloggningsknappen kommer du att kunna testa Laravel Single Sign-On (SSO).
    • Laravel Single Sign-on (SSO) - Inställning för inloggningsknapp för WordPress skapa ny klient
I den här guiden har du konfigurerat Laravel Passport Single Sign-On (SSO) genom att konfigurera Laravel Passport som OAuth-leverantör och WordPress som OAuth-klient med vår WP OAuth Single Sign-On (OAuth & OpenID Connect Client) plugin. Denna lösning säkerställer att du är redo att rulla ut säker åtkomst till din WordPress-webbplats med hjälp av Laravel Passport-inloggningsuppgifter inom några minuter.


Ytterligare resurser


Maila oss vidare oauthsupport@xecurify.com för snabb vägledning (via e-post/möte) om ditt krav och vårt team hjälper dig att välja den bästa lämpliga lösningen/planen enligt dina krav.

Hej där!

Behövs hjälp? Vi är här!

stödja
Kontakta miniOrange Support
framgång

Tack för din förfrågan.

Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com