Suchergebnisse :

×

SSO-Anmeldung bei Drupal mit Laravel als OAuth/OpenID Connect-Anbieter


Die Integration von Drupal OAuth/OpenID Connect SSO ermöglicht SSO zwischen der Drupal-Site und Laravel Passport. Diese Setup-Anleitung hilft bei der Konfiguration Einmalige Anmeldung (SSO) zwischen der Drupal-Site und Laravel Passport mithilfe des OAuth / OpenID Connect-Moduls. Dieses Modul ist mit Drupal 7, Drupal 8, Drupal 9 und Drupal 10 kompatibel. Wenn Sie das OAuth/OpenID Connect-Modul in die Drupal-Site integrieren, können Sie sich nahtlos mit Laravel Passport-Anmeldeinformationen bei der Drupal-Site anmelden.

Installationsschritte:


  • Laden Sie das Modul herunter:
    Composer benötigt 'drupal/miniorange_oauth_client'
  • Navigieren Erweitern Menü auf Ihrer Drupal-Administratorkonsole und suchen Sie nach miniOrange OAuth-Client-Konfiguration über das Suchfeld.
  • Aktivieren Sie das Modul, indem Sie das Kontrollkästchen aktivieren und auf klicken Installieren .
  • Sie können das Modul konfigurieren unter:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Installieren Sie das Modul:
    drush und drupal/miniorange_oauth_client
  • Leeren Sie den Cache:
     drush cr
  • Sie können das Modul konfigurieren unter:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Navigieren Erweitern Menü auf Ihrer Drupal-Administratorkonsole und klicken Sie auf Installieren Sie neue Modul.
  • Installieren Sie Drupal OAuth- und OpenID Connect-Anmeldung – OAuth2-Client-SSO-Anmeldung Modul entweder durch Herunterladen der ZIP-Datei oder über die URL des Paket (tar/zip).
  • Klicken Sie auf Aktivieren Sie neu hinzugefügte Module.
  • Aktivieren Sie dieses Modul, indem Sie das Kontrollkästchen aktivieren und auf klicken installieren .
  • Sie können das Modul konfigurieren unter:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc

Drupal als OAuth-Client einrichten:

  • Navigieren Sie auf der Drupal-Site zu Konfiguration -> miniOrange OAuth-Client-Konfiguration -> Konfigurieren Sie OAuth Tab.
  • Drupal als OAuth/OpenID Connect Single Sign-On – Naviagte-Konfiguration – miniOrange OAuth-Client-Konfiguration
  • Auswählen Benutzerdefinierter OAuth 2.0-Anbieter von dem Wählen Sie Anwendung Dropdown-Liste.
  • Kopieren Sie die Rückruf-/Umleitungs-URL und halten Sie es griffbereit.
  • Note: Wenn Ihr Provider nur HTTPS unterstützt Rückruf-/Umleitungs-URLs und Sie eine HTTP-Site haben, stellen Sie bitte sicher, dass die Option „HTTPS-Rückruf-URL erzwingen' Kontrollkästchen unten auf der Registerkarte.

  • Geben Sie Laravel als Anwendungsnamen ein Display Name Textfeld.
  • Drupal als OAuth/OpenID Connect Single Sign-On – Wählen Sie unter „OAuth konfigurieren“ die Option „Benutzerdefinierter OAuth 2.0-Anbieter“ aus „Anwendung auswählen“ – „Rückruf kopieren“.

Erstellen Sie eine OAuth-/OpenID-SSO-Anwendung in Laravel Passport:

  • Erstellen Sie mit dem Befehl ein Laravel-Projekt auf Ihrem lokalen Computer und richten Sie es ein:
    Composer Create-Project --prefer-dist Laravel/Laravel-Blog
  • Ändern Sie das Verzeichnis in blog using CD-Blog Befehl. Installieren Sie den Laravel-Pass.
    Komponist benötigt Laravel/Reisepass
  • Gehen Sie zu config/app.php und fügen Sie den folgenden Anbieter hinzu
    Laravel\Passport\PassportServiceProvider::class
  • Führen Sie die folgenden Befehle aus
    php artisan migrieren
    PHP-Handwerkerpass: installieren
  • Gehen Sie zu app/User.php Modellklasse, hinzufügen HasApiTokens Merkmal zum Code:
        Namespace-App;
        verwenden Sie Laravel\Passport\HasApiTokens;
        verwenden Sie Illuminate\Contracts\Auth\MustVerifyEmail; Verwenden Sie Illuminate\Foundation\Auth\User als Authenticatable; verwenden Sie Illuminate\Notifications\Notifiable; Klasse Benutzer erweitert Authenticatable {
          Verwenden Sie HasApiTokens, Notifiable;
         
          
            /** * Die Attribute, die massenhaft zuweisbar sind. * * @var-Array */
            
            protected $fillable = [ 'Name', 'E-Mail', 'Passwort', ];
         
            /** * Die Attribute, die für Arrays ausgeblendet werden sollen. * * @var-Array */
            protected $hidden = [ 'password', 'remember_token', ];
         
            /** * Die Attribute, die in native Typen umgewandelt werden sollen. * * @var-Array */
           
            protected $casts = [ 'email_verified_at' => 'datetime', ]; }
        
  • Gehen Sie zu app/Providers/AuthServiceProvider.php, Fügen verwenden Sie Laravel\Passport\Passport; , Passport::routes(); Routen zum Servicecode:
        Namespace App\Providers;
        verwenden Sie Laravel\Passport\Passport;
        Verwenden Sie Illuminate\Foundation\Support\Providers\AuthServiceProvider als ServiceProvider; verwenden Sie Illuminate\Support\Facades\Gate; Klasse AuthServiceProvider erweitert ServiceProvider {
        
            /** * Die Richtlinienzuordnungen für die Anwendung. * * @var-Array */
            protected $policies = [ // 'App\Model' => 'App\Policies\ModelPolicy', ];
         
            /** * Registrieren Sie alle Authentifizierungs-/Autorisierungsdienste. * * @return void */
            öffentliche Funktion boot() { $this->registerPolicies();
                Passport::routes();
                // } }
       
  • Gehen Sie zu config/auth.php und ändere die API Treiber-Token zu der Pass da wir die Passport-Bibliothek verwenden werden.
        'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [
                    'driver' => 'passport',
                    'provider' => 'users', 'hash' => false, ], ],
        

Integration von Drupal mit Laravel:

  • Navigieren Sie zum Laravel-Portal und führen Sie die folgenden Befehle aus, um es abzurufen Kunden-ID und Kundengeheimnis:
    PHP-Handwerkerpass: Kunde
  • Es werden Ihnen folgende Fragen gestellt:
        Welcher Benutzer-ID soll der Client zugewiesen werden?: > 1 Wie sollen wir den Client benennen?: > Demo-OAuth2-Client-Konto Wohin sollen wir die Anfrage nach der Autorisierung umleiten? > Fügen Sie die Rückruf-/Umleitungs-URL ein. Neuer Client erfolgreich erstellt. Client-ID: 1 Client-Geheimnis: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        
  • Kopieren Sie die Client-ID und den Client-Geheimniswert.
  • Gehen Sie zu Drupal Konfigurieren Sie OAuth Tab und fügen Sie das kopierte ein Kunden-ID und Kundengeheimnis in die entsprechenden Textfelder ein.
  • Geben Sie auf der Registerkarte „OAuth konfigurieren“ von Drupal die Client-ID und das Client-Geheimnis aus der Laravel Passport-Anwendung an
  • Um einen UserInfo-Endpunkt manuell zu erstellen, im app/Http/Controllers, erstellen Sie eine Datei UserController.php:
        <?php
        Namespace App\Http\Controllers;
        verwenden Sie App\Http\Controllers\Controller;
        verwenden Sie Illuminate\Http\Request;
        verwenden Sie App\Models\User;
        Auth verwenden;
        Die Klasse UserController erweitert Controller
        {
            öffentliche Funktion get(Request $request)
            {
                $user_id = Auth::id();
                $user = User::find($user_id);
                return $user;
            }
        }
        
  • Registrieren Sie die API-Route, indem Sie die folgende Zeile hinzufügen Routen/api.php Datei:
        //Für Laravel unter 8 und migriert auf die 8-Version:
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
            OR
        //Für Laravel 8 neue Benutzer:
         verwenden Sie App\Http\Controllers\UserController; Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Kopieren Sie den folgenden Bereich und die folgenden Endpunkte und fügen Sie sie in die Registerkarte „OAuth konfigurieren“ von Drupal ein.
    Geltungsbereich openid-E-Mail-Profil
    Endpunkt autorisieren /oauth/autorisieren
    Zugriffstoken-Endpunkt /oauth/token
    Endpunkt für Benutzerinformationen abrufen /api/user/get
  • Geben Sie auf der Registerkarte „OAuth konfigurieren“ von Drupal den Umfang und die Endpunkte der Laravel Passport-Anwendung an
  • Klicken Sie auf Konfiguration speichern .

Testen Sie die Verbindung zwischen Drupal und Laravel

  • Klicken Sie auf Testkonfiguration durchführen Klicken Sie auf die Schaltfläche, um die Single Sign-On (SSO)-Verbindung zwischen Drupal und Laravel zu überprüfen.
  • Testen der Single-Sign-On-Verbindung zwischen Drupal und Laravel Passport – Klicken Sie auf „Testkonfiguration durchführen“.
  • Wenn Sie in einem Popup zum Testen der Verbindung keine aktive Sitzung in Laravel im selben Browser haben, werden Sie aufgefordert, sich bei Ihrem Laravel-Konto anzumelden. Nach erfolgreicher Anmeldung bei einem Laravel-Konto erhalten Sie eine Liste der Attribute, die Sie vom Laravel-Passport erhalten.
  • Wähle aus E-Mail-Attribut aus dem Dropdown-Menü, in dem die E-Mail-Adresse des Benutzers abgerufen wird, und klicken Sie auf Erledigt .
  • Um eine Liste der von Laravel empfangenen Attribute bereitzustellen, wählen Sie „E-Mail-Attribut“ aus der Dropdown-Liste aus

Bitte beachte: Die Zuordnung des E-Mail-Attributs ist zwingend erforderlich, damit Ihre Anmeldung funktioniert.

Glückwunsch! Sie haben Laravel Passport erfolgreich als OAuth/OpenID-Anbieter und Drupal als OAuth-Client konfiguriert.

Wie führt man das SSO durch?

  • Öffnen Sie nun einen neuen Browser/ein neues privates Fenster und gehen Sie zur Anmeldeseite Ihrer Drupal-Site.
  • Klicken Sie auf Melden Sie sich mit Laravel an Link zum Initiieren des SSO von Drupal.
  • Wenn Sie den SSO-Link auch auf anderen Seiten hinzufügen möchten, befolgen Sie bitte die Schritte im Bild unten:
  • Drupal OAuth OpenID Single Single-On – Fügen Sie einen Anmeldelink zu einer anderen Seite der Drupal-Site hinzu

Brauchen Sie Hilfe?

Wenn bei der Konfiguration Probleme auftreten oder Sie zusätzliche Funktionen wünschen, kontaktieren Sie uns bitte unter drupalsupport@xecurify.com.

Zusatzfunktionen:

Fehlerbehebung:

Fehlermeldung: „Benutzername nicht empfangen.“ Überprüfen Sie Ihre Attributzuordnungskonfiguration.' ODER Fehlermeldung: „E-Mail nicht erhalten.“ Überprüfen Sie Ihre Attributzuordnungskonfiguration.'
 

Befolgen Sie die genannten Schritte KLICKEN SIE HIER

Ich erhalte die Meldung „Client-Anmeldeinformationen wurden in den Headern oder im Text nicht gefunden“, wenn ich versuche, eine Testkonfiguration durchzuführen
 

Befolgen Sie die genannten Schritte KLICKEN SIE HIER

Nachdem ich in Drupal auf „Abmelden“ geklickt habe, werde ich zurück zur Drupal-Homepage weitergeleitet. Wenn ich jedoch versuche, mich mit einem anderen Benutzer anzumelden, werde ich nicht dazu aufgefordert, mich anzumelden, sondern automatisch mit demselben Benutzer angemeldet
 

Die hier erwähnte Abmeldefunktion ist das Standardverhalten eines Moduls. Dadurch werden Sie von Drupal abgemeldet, nicht jedoch von Ihrer Anwendung/Ihrem Anbieter. Damit sich das Modul von Ihrem Anbieter-/Anwendungskonto abmelden kann (was Sie suchen), müssen Sie die folgenden Konfigurationen vornehmen: [mehr wissen]

Ich habe das kostenpflichtige Drupal-Modul gekauft und durch das kostenlose Modul ersetzt, kann aber immer noch keine kostenpflichtigen Funktionen nutzen.
 

Da Sie ein Upgrade auf eine unserer kostenpflichtigen Versionen des Drupal-Moduls durchgeführt und das kostenlose Modul durch das kostenpflichtige ersetzt haben, müssen Sie zunächst das kostenpflichtige Modul aktivieren. Bitte beachten Sie die folgenden Schritte. [WEITERE INFORMATIONEN ]

Häufig gestellte Fragen (FAQ)
 Fallstudien
miniOrange hat mit seinen hochflexiblen/anpassbaren Drupal-Lösungen erfolgreich die Anwendungsfälle von über 400 vertrauenswürdigen Kunden bedient. Schauen Sie sich dazu gerne einige unserer einzigartigen Fallstudien an Link.
 Andere Lösungen
Entdecken Sie gerne andere von uns angebotene Drupal-Lösungen hier. Zu den beliebten Lösungen, die von unseren vertrauenswürdigen Kunden verwendet werden, gehören Zwei-Faktor-Authentifizierung – 2FA, Website-Sicherheit, REST- und JSON-API-Authentifizierung, Benutzerbereitstellung und Synchronisierung. 
  Aktiver Support rund um die Uhr
Die Drupal-Entwickler von miniOrange bieten schnelle und aktive Unterstützung bei Ihren Anliegen. Wir können Sie von der Auswahl der besten Lösung für Ihren Anwendungsfall bis hin zur Bereitstellung und Wartung der Lösung unterstützen.
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