Drupal SAML Single Sign On mit SimpleSAMLphp als Identitätsanbieter
Übersicht
Die Drupal-SAML-Integration mit dem miniOrange SAML SP-Modul ermöglicht nahtloses Single Sign-On (SSO) zwischen SimpleSAMLphp und Ihrer Drupal-Website. Benutzer können sich mit ihren SimpleSAMLphp-Zugangsdaten bei Drupal anmelden. Dieses Dokument beschreibt die Konfiguration von SSO zwischen Drupal als Dienstanbieter (SP) und SimpleSAMLphp als Identitätsanbieter (IdP). Das Modul ist kompatibel mit Drupal 7, 8, 9, 10 und 11.
Installationsschritte
- Verwenden von Composer
- Mit Drush
- Manuelle Installation
Konfigurationsschritte
Drupal SAML SP-Metadaten
- Zurück Nach Konfiguration → Personen → SAML-Anmeldekonfiguration im Verwaltung Menü. (/admin/config/people/miniorange_saml/idp_setup)
- Kopieren Sie auf der Registerkarte „Dienstanbieter-Metadaten“ die Datei SP-Entitäts-ID/Aussteller und SP ACS-URL und halten Sie sie griffbereit. Diese SP-Metadaten werden benötigt, um SimpleSAMLphp als Identity Provider (IdP) zu konfigurieren.
Konfigurieren Sie SimpleSAMLphp als Identitätsanbieter
-
Öffnen Sie im SimpleSAML-Installationsverzeichnis die Datei config/config.php und bearbeiten Sie Folgendes:
'enable.saml20-idp' ⇒ wahr
- Aktivieren Sie die UserPass-Authentifizierung Modul (enthalten in exampleauth). Dies geschieht durch die Erstellung einer Datei mit dem Namen ermöglichen (Dateiname) in module/exampleath/.
-
Erstellen Sie eine Authentifizierungsquelle in config/authsources.php . Die Datei sollte einen einzigen Eintrag enthalten, siehe unten:
'__DEFAULT__', /* * Der private Schlüssel und das Zertifikat, die beim Signieren von Antworten verwendet werden sollen. * Diese werden im Zertifikatsverzeichnis gespeichert. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * Die Authentifizierungsquelle, die zur Authentifizierung des * Benutzers verwendet werden soll. Diese muss mit einem der Einträge in config/authsources.php übereinstimmen. */ 'auth' => '' Beispiel:- 'example-userpass', // Dies finden Sie in Schritt 1 ];
Diese Konfiguration erstellt zwei Benutzer – Student und Employee – mit den Passwörtern „studentpass“ und „employeepass“. Benutzername und Passwort werden im Array-Index gespeichert (student:studentpass für den Studentenbenutzer). Die Attribute für jeden Benutzer werden im Array konfiguriert, auf das der Index verweist. Für den Studentenbenutzer sind dies also:
[ 'uid' => ['Student'], 'eduPersonAffiliation' => ['Mitglied', 'Student'], ],
Die Attribute werden vom IdP zurückgegeben, wenn sich der Benutzer anmeldet.
- Generieren Sie ein selbstsigniertes Zertifikat mit einer der folgenden Methoden:
-
Verwenden des OpenSSL-Befehls
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out example.org.crt -keyout example.org.pem
-
Generieren Sie es mit beliebigen Online-Tools und fügen Sie sie dem Zertifikatsverzeichnis hinzu.
Die Erweiterung sollte wie folgt aussehenexample.org.crt //(Öffentlicher Schlüssel)example.org.pem //(Privater Schlüssel)
-
Hinweis: SimpleSAMLphp funktioniert nur mit RSA-Zertifikaten. DSA-Zertifikate werden nicht unterstützt.
-
Der SAML 2.0 IdP wird über die in metadata/saml20-idp-hosted.php gespeicherten Metadaten konfiguriert . Dies ist eine minimale Konfiguration:
'__DEFAULT__', /* * Der private Schlüssel und das Zertifikat, die beim Signieren von Antworten verwendet werden sollen. * Diese werden im Zertifikatsverzeichnis gespeichert. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * Die Authentifizierungsquelle, die zur Authentifizierung des * Benutzers verwendet werden soll. Dies muss mit einem der Einträge in config/authsources.php übereinstimmen. */ ' auth' => '' Beispiel:- 'example-userpass', // Sie finden dies in Schritt Nummer 1 ];
-
Der von Ihnen konfigurierte Identitätsanbieter muss die Dienstanbieter kennen, mit denen Sie sich verbinden möchten. Dies wird über Metadaten konfiguriert, die in metadata/saml20-sp-remote.php gespeichert sind. Hier ist ein Minimalbeispiel einer solchen Metadatendatei für einen SimpleSAMLphp-Dienstanbieter: (Ersetzen Sie example.com durch Ihre Drupal-Domäne .)
'https://example.com/samlassertion', 'SingleLogoutService' => 'https://example.com/user/logout', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid -format:emailAddress', 'simplesaml.nameidattribute' => 'mail', 'simplesaml.attributes' => true, 'attributes' => array('mail', 'givenname', 'sn', 'memberOf'), ];
Hinweis: Die URI in der Entitäts-ID und die URLs zu den Endpunkten des AssertionConsumerService und des Single Logout Service ändern sich je nach Dienstanbieter. Wenn Ihnen die Metadaten des Remote-Dienstanbieters als XML-Datei vorliegen, können Sie den integrierten XML-zu-SimpleSAMLphp-Metadatenkonverter verwenden, der standardmäßig unter /admin/metadata-converter.php in Ihrer SimpleSAMLphp-Installation verfügbar ist.
- Gehen Sie zur SimpleSAMLphp-Homepage der Installation. (Die URL einer Installation kann z. B. sein https://service.example.com/simplesaml/ (wobei service.example.com durch Ihren SimpleSAMLphp-Pfad ersetzt werden muss.)
- Navigieren Sie zur Registerkarte „Föderation“ und klicken Sie auf Metadaten anzeigen(Diese IdP-Metadaten werden benötigt, um Drupal als Service Provider zu konfigurieren.)
Konfigurieren Sie Drupal als SAML-Dienstanbieter:
- Gehen Sie zu Ihrer Drupal-Site. Navigieren Sie zu Einrichtung des Dienstanbieters des Moduls und klicken Sie auf das Laden Sie IDP-Metadaten hoch.
- Laden Sie die zuvor heruntergeladene Metadatendatei von SimpleSAML in die hoch Metadatendatei hochladen Textfeld und klicken Sie auf Datei hochladen .
Hinweis: Um den Namen des Identitätsanbieters zu aktualisieren, gehen Sie wie folgt vor:
- Der ActionWählen Sie die Bearbeiten.
- Geben Sie SimpleSAMLphp in das Name des Identitätsanbieters Textfeld.
- Scrollen Sie nach unten und klicken Sie auf Konfiguration speichern .
- Klicken Sie auf den Link „Test“, um die Verbindung zwischen Drupal und SimpleSAMLphp zu testen.
- Melden Sie sich im Popup „Testkonfiguration“ mit Ihren SimpleSAMLphp-Zugangsdaten an (falls keine aktive Sitzung besteht). Nach erfolgreicher Authentifizierung wird eine Liste der von SimpleSAMLphp empfangenen Attribute angezeigt. Klicken Sie auf die Schaltfläche Erledigt .
Herzlichen Glückwunsch! Sie haben SimpleSAMLphp erfolgreich als SAML-Identitätsanbieter (IdP) und Drupal als SAML-Dienstanbieter konfiguriert.
Wie funktioniert die SAML SSO-Anmeldung?
- Öffnen Sie einen neuen Browser/ein neues privates Fenster und navigieren Sie zur Anmeldeseite der Drupal-Site.
- Klicken Sie auf die Anmeldung mit Identitätsanbieter (SimpleSAMLphp) Link.
- Sie werden zur SimpleSAMLphp-Anmeldeseite weitergeleitet. Geben Sie die SimpleSAMLphp-Anmeldeinformationen ein. Nach erfolgreicher Authentifizierung wird der Benutzer zurück zur Drupal-Site geleitet.
Danke für Ihre Antwort. Wir werden uns bald bei Ihnen melden.
Etwas ist schief gelaufen. Bitte senden Sie Ihre Anfrage erneut

Kontakt aufnehmen