SAML Single Sign-On in Joomla mit SimpleSAML
Übersicht
Das miniOrange Joomla SAML SP SSO-Plugin hilft Ihnen, Ihre Joomla-Site mithilfe des SAML 2.0-Protokolls in SimpleSAML zu integrieren. Unser benutzerfreundliches Plugin vereinfacht die Einrichtung von Single Sign-on (SSO) mit SimpleSAML in Joomla und gewährleistet ein sicheres Anmeldeerlebnis. So können Benutzer mühelos mit ihren SimpleSAML IDP-Anmeldeinformationen auf verschiedene Joomla-Sites zugreifen.
Unser Plugin ist kompatibel mit Joomla 3, 4 sowie 5 und funktioniert nahtlos mit allen SAML 2.0-kompatiblen Identity Providern. Eine detaillierte Übersicht über die umfassenden Funktionen des Joomla SAML SP-Plugins finden Sie auf unserer Seite werden auf dieser Seite erläutert. Nachfolgend bieten wir eine Schritt-für-Schritt-Anleitung zum Konfigurieren der SAML SSO-Anmeldung zwischen Ihrer Joomla-Site und SimpleSAML, wobei SimpleSAML als Identitätsanbieter (IDP) und Joomla als Dienstanbieter (SP) fungiert.
Konfigurationsschritte
In dieser Konfiguration dient SimpleSAML als Repository für die Speicherung von Benutzern, d. h. es fungiert als Identitätsanbieter (IDP), während sich die Benutzer bei Joomla mit ihren Anmeldeinformationen von SimpleSAML anmelden, wo das Joomla SAML SP SSO Plugin installiert ist.
Schritt 2: SimpleSAML als IDP (Identity Provider) konfigurieren
Aktivieren der Identity Provider-Funktionalität:
- Als Erstes muss die Funktionalität des Identitätsanbieters aktiviert werden. Dies geschieht durch Bearbeiten config/config.php (Sie finden diese Datei in Ihrem simplesaml-Installationsverzeichnis). Die Option enable.saml20-idp steuert, ob die SAML 2.0 IdP-Unterstützung aktiviert ist. Aktivieren Sie sie durch Zuweisen von was immer dies auch sein sollte. zu ihnen.
- Beispiel: „enable.saml20-idp“ => true.
Konfigurieren des Authentifizierungsmoduls:
- Das Authentifizierungsmodul exampleauth: UserPass ist Teil des Moduls exampleauth. Dieses Modul ist standardmäßig nicht aktiviert, daher müssen Sie ermöglichen es. Dies geschieht durch die Erstellung einer Datei mit dem Namen ermöglichen (Dateiname) in module/beispielauth/.
- Unter Unix kann dies durch Ausführen (aus dem SimpleSAMLphp-Installationsverzeichnis) erfolgen.
- Der nächste Schritt besteht darin, mit diesem Modul eine Authentifizierungsquelle zu erstellen. Eine Authentifizierungsquelle ist ein Authentifizierungsmodul mit einer bestimmten Konfiguration. Jede Authentifizierungsquelle hat einen Namen, der verwendet wird, um in der IdP-Konfiguration auf diese bestimmte Konfiguration zu verweisen. Die Konfiguration für Authentifizierungsquellen finden Sie unter konfiguration/ authsources.php.
- In diesem Setup sollte diese Datei einen einzelnen Eintrag enthalten:
[ 'Beispielauth: UserPass', 'Student: Studentenpass' => [ 'UID' =>
[ 'uid' => ['Student'], 'eduPersonAffiliation' => ['Mitglied', 'Student'], ],
Erstellen eines selbstsignierten Zertifikats:
- Der IdP benötigt ein Zertifikat, mit dem er seine SAML-Assertions signieren kann. Hier ist ein Beispiel für einen OpenSSL-Befehl, mit dem ein neuer privater Schlüssel und das entsprechende selbstsignierte Zertifikat generiert werden können. Der private Schlüssel und das Zertifikat werden in das in der Einstellung certdir definierte Verzeichnis verschoben (standardmäßig cert/). Dieser Schlüssel und das Zertifikat können zum Signieren von SAML-Nachrichten verwendet werden:
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out example.org.crt -keyout example.org.pem
example.org.crt //(Öffentlicher Schlüssel) example.org.pem //(Privater Schlüssel)
Konfigurieren des IdP:
- Der SAML 2.0 IdP wird durch die in metadata/saml20-idp-hosted.php gespeicherten Metadaten konfiguriert. Dies ist eine Minimalkonfiguration:
<?php $metadata['__DYNAMIC:1__'] = [ /* * The hostname for this IdP. This makes it possible to run multiple * IdPs fro
Hinzufügen von SPs zum IdP:
- Der Identitätsanbieter, den Sie konfigurieren, muss wissen, mit welchen Dienstanbietern Sie eine Verbindung herstellen möchten. Dies wird durch Metadaten konfiguriert, die in metadata/saml20-sp-remote.php gespeichert sind. Dies ist ein minimales Beispiel einer metadata/saml20-sp-remote.php-Metadatendatei für einen SimpleSAMLphp SP:
Ersetzen Sie example.com durch Ihren Joomla-Domänennamen.
- Hier können Sie auch Benutzerattribute hinzufügen, die Sie von SimpleSAML an Ihren Dienstanbieter, z. B. Joomla, senden möchten.
- Gehen Sie zur SimpleSAMLphp-Homepage der Installation. Die URL einer Installation kann beispielsweise lauten:
https://service.example.com/simplesaml/ where service.example.com
- Hier können Sie die IdP-Metadaten abrufen, die zur Konfiguration des Plugins erforderlich sind.
