Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:server:sso-shibboleth [01.12.2025 14:02] – [Konfigurationsdatei für SSO via LDAP] adminde:server:sso-shibboleth [06.04.2026 14:21] (aktuell) admin
Zeile 1: Zeile 1:
-====== 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.
  
  
Zeile 8: Zeile 8:
 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.
Zeile 16: Zeile 16:
   * 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).
  
  
de/server/sso-shibboleth.1764594122.txt.gz · Zuletzt geändert: von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki