Sökresultat :

×

SSO Logga in på Drupal med Laravel som OAuth/OpenID Connect Provider


Drupal OAuth / OpenID Connect SSO-integration möjliggör SSO mellan Drupal-webbplatsen och Laravel Passport. Den här installationsguiden hjälper dig att konfigurera Enskilt inloggning (SSO) mellan Drupal-webbplatsen och Laravel Passport med OAuth/OpenID Connect-modulen. Den här modulen är kompatibel med Drupal 7, Drupal 8, Drupal 9 och Drupal 10. När du integrerar modulen OAuth/OpenID Connect med Drupal-webbplatsen kan du logga in på Drupal-webbplatsen sömlöst med Laravel Passport-uppgifter.

Installationssteg:


  • Ladda ner modulen:
    kompositör kräver 'drupal/miniorange_oauth_client'
  • Navigera till Förläng menyn på din Drupal administratörskonsol och sök efter miniOrange OAuth-klientkonfiguration med hjälp av sökrutan.
  • Aktivera modulen genom att markera kryssrutan och klicka på installera knapp.
  • Du kan konfigurera modulen på:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Installera modulen:
    drush en drupal/miniorange_oauth_client
  • Rensa cacheminnet:
     borsta cr
  • Du kan konfigurera modulen på:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Navigera till Förläng menyn på din Drupal administratörskonsol och klicka på Installera ny modul.
  • Installera Drupal OAuth & OpenID Connect Login - OAuth2 Client SSO Login modulen antingen genom att ladda ner zip-filen eller från URL:en till paket (tjära/zip).
  • Klicka på Aktivera nyligen tillagda moduler.
  • Aktivera den här modulen genom att markera kryssrutan och klicka på installera knapp.
  • Du kan konfigurera modulen på:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc

Konfigurera Drupal som OAuth-klient:

  • På Drupal-webbplatsen, navigera till konfiguration -> miniOrange OAuth-klientkonfiguration -> Konfigurera OAuth fliken.
  • Drupal som OAuth/OpenID Connect Single Sign-On - Naviagte-konfiguration - miniOrange OAuth-klientkonfiguration
  • Välja Anpassad OAuth 2.0-leverantör från Välj program falla ner.
  • kopiera Callback/Redirect URL och ha det till hands.
  • Anmärkningar: Om din leverantör endast stöder HTTPS Återuppringnings-/omdirigeringsadresser och du har en HTTP-webbplats, se till att aktiveraFramtvinga HTTPS-återuppringnings-URL' kryssrutan längst ned på fliken.

  • Ange Laravel som applikationsnamn i Visningsnamn textfält.
  • Drupal som OAuth/OpenID Anslut enkel inloggning - Under Konfigurera OAuth - Välj anpassad OAuth 2.0-leverantör från Välj applikation - Kopiera återuppringning

Skapa OAuth/OpenID SSO-applikation i Laravel Passport:

  • 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ör nedanstående kommandon
    php artisan migrera
    php artisan passport:installera
  • Gå till app/User.php modellklass, tillägg HasApiTokens egenskap hos koden:
        namnutrymmesapp;
        använd Laravel\Passport\HasApiTokens;
        använd Illuminate\Contracts\Auth\MustVerifyEmail; använd Illuminate\Foundation\Auth\User som autentiseringsbar; använd Illuminate\Notifications\Notifiable; klass Användare utökar Authenticatable {
          använd HasApiTokens, anmälningsbar;
         
          
            /** * Attributen som är masstilldelningsbara. * * @var array */
            
            protected $fillable = [ 'namn', 'e-post', 'lösenord', ];
         
            /** * Attributen som ska döljas för arrayer. * * @var array */
            protected $hidden = [ 'lösenord', 'remember_token', ];
         
            /** * Attributen som ska castas till inbyggda typer. * * @var array */
           
            protected $casts = [ 'email_verified_at' => 'datetime', ]; }
        
  • Gå till app/Providers/AuthServiceProvider.php, Lägg till använd Laravel\Passport\Pass; , Passport::routes(); vägar till servicekoden:
        namnområde App\Providers;
        använd Laravel\Passport\Pass;
        använd Illuminate\Foundation\Support\Providers\AuthServiceProvider som ServiceProvider; använd Illuminate\Support\Facades\Gate; class AuthServiceProvider utökar ServiceProvider {
        
            /** * Policymappningarna för applikationen. * * @var array */
            protected $policies = [ // 'App\Model' => 'App\Policies\ModelPolicy', ];
         
            /** * Registrera eventuella autentiserings-/auktoriseringstjänster. * * @return ogiltig */
            public function boot() { $this->registerPolicies();
                Passport::routes();
                // } }
       
  • Gå till config/auth.php och ändra API förartecken till passet eftersom vi ska använda passbiblioteket.
        'guards' => [ 'web' => [ 'förare' => 'session', 'provider' => 'användare', ], 'api' => [
                    'driver' => 'pass',
                    'provider' => 'användare', 'hash' => falskt, ], ],
        

Integrera Drupal med Laravel:

  • Navigera till Laravel-portalen och kör följande kommandon för att få kund-ID och Klienthemlighet:
    php hantverkspass: klient
  • Den kommer att ställa dig följande frågor:
        Vilket användar-ID ska klienten tilldelas?: > 1 Vad ska vi namnge klienten?: > Demo OAuth2-klientkonto Vart ska vi omdirigera begäran efter auktorisering? > Klistra in URL:en för återuppringning/omdirigering. Ny klient har skapats. Klient-ID: 1 klienthemlighet: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        
  • Kopiera klient-ID och klienthemlighetsvärde.
  • Gå till Drupal's Konfigurera OAuth flik och klistra in det kopierade kund-ID och Kundhemlighet i respektive textfält.
  • Under Drupals fliken Konfigurera OAuth, ange klient-ID och klienthemlighet från Laravel Passport-Application
  • För att skapa en UserInfo-slutpunkt manuellt, i app/Http/Controllers, skapa en fil UserController.php:
        <?php
        namnutrymme App\Http\Controllers;
        använd App\Http\Controllers\Controller;
        använd Illuminate\Http\Request;
        använd App\Models\User;
        använd Auth;
        klass UserController utökar Controller
        {
            public function get(Request $request)
            {
                $user_id = Auth::id();
                $user = User::find($user_id);
                returnera $user;
            }
        }
        
  • Registrera API-rutten genom att lägga till raden nedan routes/api.php fil:
        //För Laravel under 8 och migrerad till 8-versionen:
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
            OR
        //För Laravel 8 nya användare:
         använd App\Http\Controllers\UserController; Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Kopiera och klistra in följande omfattning och slutpunkter i Drupals fliken Konfigurera OAuth.
    Omfattning openid e-postprofil
    Auktorisera slutpunkt /oauth/auktorisera
    Åtkomst Token Endpoint /oauth/token
    Få användarinformation slutpunkt /api/user/get
  • Under Drupals fliken Konfigurera OAuth, Ange omfattning och slutpunkter från Laravel Passport Application
  • Klicka på Spara konfiguration knapp.

Testa anslutningen mellan Drupal och Laravel

  • Klicka på Utför testkonfiguration för att kontrollera Single Sign-On (SSO)-anslutningen mellan Drupal och Laravel.
  • Testa Single Sign-On-anslutningen mellan Drupal och Laravel Passport - Klicka på Utför testkonfiguration
  • Om du inte har en aktiv session i Laravel i samma webbläsare i ett popup-fönster för Testanslutning kommer du att bli ombedd att logga in på ditt Laravel-konto. Efter att ha lyckats logga in på ett Laravel-konto kommer du att få en lista över attribut som tas emot från Laravel Passport.
  • Välj E-postattribut från rullgardinsmenyn där användarens e-post hämtas och klicka på Färdig knapp.
  • För att få en lista över attribut som tas emot från Laravel - Välj E-postattribut från rullgardinsmenyn

Vänligen notera: Kartläggning av e-postattributet är obligatoriskt för att din inloggning ska fungera.

Grattis! Du har framgångsrikt konfigurerat Laravel Passport som OAuth/OpenID-leverantör och Drupal som en OAuth-klient.

Hur utför man SSO?

  • Öppna nu en ny webbläsare/privat fönster och gå till din inloggningssida för din Drupal-webbplats.
  • Klicka på Logga in med Laravel länk för att initiera SSO från Drupal.
  • Om du vill lägga till SSO-länken till andra sidor också, följ stegen i bilden nedan:
  • Drupal OAuth OpenID Single Single-On - Lägg till inloggningslänk till en annan sida på Drupal-webbplatsen

Behöva hjälp?

Om du stöter på några problem under konfigurationen eller om du vill ha några ytterligare funktioner, vänligen kontakta oss på drupalsupport@xecurify.com.

Ytterligare egenskaper:

Felsökning:

Får fel: 'Användarnamn har inte tagits emot. Kontrollera din Attribut Mapping-konfiguration.' ELLER Får fel: 'E-post inte mottaget. Kontrollera din Attribut Mapping-konfiguration.'
 

Följ de nämnda stegen HÄR

Jag får "Klientuppgifter hittades inte i rubrikerna eller brödtexten" när jag försöker utföra testkonfigurationen
 

Följ de nämnda stegen HÄR

Efter att jag klickat på utloggningen i Drupal skickas jag tillbaka till Drupals hemsida. Men när jag försöker logga in med en annan användare, ber den mig inte att logga in utan loggar mig automatiskt in med samma användare
 

Utloggningsfunktionen du har nämnt här är standardbeteendet för en modul. Det loggar ut dig från Drupal men inte från din applikation/leverantör. För att tillåta modulen att logga ut från din leverantör/applikationskonto (det du letar efter), måste du göra följande konfigurationer: [veta mer]

Jag köpte den betalda Drupal-modulen och ersatte den med den kostnadsfria modulen, men jag kan fortfarande inte använda betalda funktioner.
 

Eftersom du har uppgraderat till en av våra betalversioner av Drupal-modulen och ersatt gratismodulen med den betalda, måste du först aktivera betalmodulen. Se stegen nedan. [Veta mer]

Vanliga frågor (FAQ)
 

[Veta mer]

 Fallstudier
miniOrange har framgångsrikt sörjt för användningsfallen för 400+ betrodda kunder med sina mycket flexibla/anpassningsbara Drupal-lösningar. Kolla gärna in några av våra unika fallstudier med detta länk.
 Andra lösningar
Känn dig fri att utforska andra Drupal-lösningar som vi erbjuder här.. De populära lösningarna som används av våra pålitliga kunder inkluderar tvåfaktorsautentisering - 2FA, webbplatssäkerhet, REST & JSON API-autentisering, användarprovisionering och synkronisering. 
  24*7 Aktiv support
Drupal-utvecklarna på miniOrange erbjuder snabbt och aktivt stöd för dina frågor. Vi kan hjälpa dig från att välja den bästa lösningen för ditt användningsfall till att implementera och underhålla lösningen.
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