| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
| de:server:sso-shibboleth [01.12.2025 14:02] – [Konfigurationsdatei für SSO via LDAP] admin | de:server:sso-shibboleth [06.04.2026 14:21] (aktuell) – admin |
|---|
| ====== Single Sign-On (SSO) via Shibboleth/SAML2 ====== | ====== Single Sign-On (SSO) ====== |
| |
| Für SoSci Survey ist ein Zusatzmodul verfügbar, welches die Anmeldung via Shibboleth/SAML2 oder LDAP erlaubt. Im folgenden wird die Vorbereitung zur Nutzung dieses Zusatzmoduls erläutert. | Für SoSci Survey ist ein Zusatzmodul verfügbar, welches die Anmeldung via OpenID Connect (OIDC), Shibboleth/SAML2 oder LDAP erlaubt. Im folgenden wird die Vorbereitung zur Nutzung dieses Zusatzmoduls erläutert. |
| |
| |
| Aktualisieren Sie Ihre Installlation von SoSci Survey auf Programmversion 3.2.37 oder neuer ([[https://www.soscisurvey.de/download/|Download-Portal]]). | Aktualisieren Sie Ihre Installlation von SoSci Survey auf Programmversion 3.2.37 oder neuer ([[https://www.soscisurvey.de/download/|Download-Portal]]). |
| |
| Nach Bestellung des SSO-Moduls können Sie im [[https://www.soscisurvey.de/download/|Download-Portal]] das Modul "Single Sign-On (SSO)" herunterladen. Die ZIP-Datie enthält eine Datei ''component.SingleSignOn.php''. Kopieren Sie diese PHP-Datei in das Unterverzeichnis ''/modules/'' Ihrer Installation von SoSci Survey. | Nach Bestellung des SSO-Moduls können Sie im [[https://www.soscisurvey.de/download/|Download-Portal]] das Modul "Single Sign-On (SSO)" herunterladen. Die ZIP-Datie enthält zwei Verzeichnisse (''modules'' und ''plugins''). Kopieren Sie diese Verzeichnisse mit Inhalt in Ihre Installation von SoSci Survey. Dort befinden sich bereits gleichnamige Verzeichnisse, deren Inhalt ergänzt wird. |
| |
| Öffnen Sie die **Server-Einstellungen** von SoSci Survey. | Öffnen Sie die **Server-Einstellungen** von SoSci Survey. |
| * Unter //Erweiterungen// -> //Komponenten aktivieren// (unten) sollte in der Liste "Single Sign On (SSO)" auftauchen. Klicken Sie auf den Knopf //Komponenten aktivieren// (unten), anschließend sollte ein Kreuzchen vor dem Modul angezeigt werden. | * Unter //Erweiterungen// -> //Komponenten aktivieren// (unten) sollte in der Liste "Single Sign On (SSO)" auftauchen. Klicken Sie auf den Knopf //Komponenten aktivieren// (unten), anschließend sollte ein Kreuzchen vor dem Modul angezeigt werden. |
| * Unter //Registrierung// -> wählen Sie nun für //Single-Sign-On Modus// die Option "Knopf für SSO-Login unter dem Login-Passwort" | * Unter //Registrierung// -> wählen Sie nun für //Single-Sign-On Modus// die Option "Knopf für SSO-Login unter dem Login-Passwort" |
| | |
| | |
| | ===== OpenID Connect (OIDC) ===== |
| | |
| | - Vorbereitungen |
| | * Notieren Sie ein frei wählbares **Kürzel** für die SSO-Verbindung beziehungsweise für Ihre Einrichtung, vorzugsweise ohne Umlaute und ohne Leerzeichen. Die Groß-/Kleinschreibung muss überall eingehalten werden. Ein Kürzel, das nur Kleinbuchstaben verwendet, vermeidet Vertipper. |
| | * Notieren Sie die **SSO-URL**, das ist URL Ihrer SoSci Survey Installation mit angehängtem ''/admin/?sso=einrichtung'', wobei Sie hinter dem ''sso='' das oben notierte Kürzel verwenden (hier im Beispiel ''einrichtung''). |
| | * Finden Sie die Metadata-URL Ihres IdP heraus. Das ist eine URL mit ''/.well-known/openid-configuration'', zum Beispiel ''https://accounts.example.com/.well-known/openid-configuration''. |
| | * Notieren sie die URL Ihres IdP, zugleich die **Provider-ID**, das ist der Teil der Metadata-URL vor dem ''/.well-known'', im Beispiel oben also ''https://accounts.example.com''. |
| | - Erstellen Sie auf Ihrem Identitiy Provider (IdP) einen neuen OIDC-Eintrag für SoSci Survey. Die Redirect-URI ist die SSO_URL (siehe Punkt 1). Notieren Sie die Application ID (Client ID) und das Passwort. |
| | - Erstellen Sie eine Kopie der Datei ''plugins/SSO/SSO_OIDC_Example.php'' und geben Sie der Kopie einen eindeutigen Namen z.B. ''plugins/SSO/SSO_UnsereEinrichtung.php'' (siehe unten). |
| | * In der Datei ändern sie den Klassennamen, sodass er dem Dateinamen entspricht, z.B. ''SSO_UnsereEinrichtung''. |
| | * Tragen Sie in den folgenden Zeilen die Informationen Ihres SoSci-Survey-Eintrags in der IdP-Konfiguration (siehe 1 und 2) ein. |
| | - Fügen sie in der Datei ''system/config.php'' in Ihrer SoSci Survey Installation einen vor dem ''?>'' einen Eintrag für die neue Anmeldeoption ein (siehe unten). Verwenden Sie als Schlüssel (im Beispiel ''einrichtung'') das oben gewählte Kürzel. |
| | - Rufen Sie zum Testen des Logins in Ihrem Browser die SSO-URL auf. |
| | - Wenn der Login funktioniert hat, loggen Sie sich wieder aus, loggen sie sich mit einem Administrator-Konto ein und passen Sie in den **Server-Einstellungen** im Karteireiter //Single Sign-On// die Einstellung //Single-Sign-On Modus// nach Bedarf an. |
| | |
| | * **Wichtig:** Ihre IdP stellt die eigenen Metadaten unter einer ''.well-known'' URL bereit. Für das Feld ''$providerUR'' tragen Sie den Teil ein, der direkt vor dem ''/.well-known'' kommt. |
| | * **Hinweis:** Falls der Login nicht funktioniert, prüfen Sie bitte den Inhalt der Datei ''system/lgofiles/errorlog.txt''. |
| | |
| | |
| | <code php SSO_UnsereEinrichtung.php> |
| | class SSO_UnsereEinrichtung extends SSO4OIDCHandler |
| | { |
| | protected $providerURL = 'https://accounts.example.com'; |
| | protected $clientID = '123-456-789'; |
| | protected $clientSecret = 'geheimer Schlüssel'; |
| | protected $certPath = null; |
| | |
| | ... |
| | </code> |
| | |
| | <code php config.php> |
| | $GLOBALS['oFb']['sso']['idp']['einrichtung'] = [ |
| | // Label to display on the login form (may be an array with keys 'de' and 'en') |
| | 'label' => 'OpenID Connect Login', |
| | // The PHP file and class to be used for decoding the response |
| | 'handler.file' => 'plugins/SSO/SSO_UnsereEinrichtung.php', |
| | 'handler.class' => 's2survey\account\SSO_UnsereEinrichtung' |
| | ]; |
| | </code> |
| | |
| | ==== Fehlermeldungen ==== |
| | |
| | * Beim Login -> The redirect URI %%'https://.../admin/?sso=einrichtung'%% specified in the request does not match the redirect URIs configured for the application ...\\ Prüfen Sie den SoSci Survey-Eintrag auf dem IdP, ändern Sie dort die "Redirect URI". |
| | * ''errorlog.txt'' -> PHP Fatal error: Uncaught Jumbojett\OpenIDConnectClientException: The provider authorization_endpoint could not be fetched. Make sure your provider has a well known configuration available.\\ Die Angabe zur ''$providerURL'' ist nicht korrekt, prüfen Sie die ''.well-known'' URL (siehe oben). |
| |
| |