SSO-Schnittstelle Backend
Das Modul heißt SSO-Schnittstelle Backend (SsoBackend).
Modulkonfiguration
Aktivieren
Aktiviert das Modul.
Passphrase
Verschlüsselungspasswort
Verschlüsselungsverfahren
das Verfahren mit dem Verschlüsselt werden soll.
Request-Time-Out
Die Zeit, in dem der Request verwendet werden kann.
IP Filter
Lässt nur die eingetragenen IP Adressen zu, ist keine eingetragen, werden alle zugelassen.
Nur Benutzer mit SSO Option zulassen
Ist diese Option aktiviert, muss jeder einzelne Benutzer entsprechend die Option "Für SSO freischalten" aktiviert haben.
Hinweis zur Benutzeroption
Ist diese Option aktiviert, ist die SSO Anmeldung für die Dienstleister nicht mehr möglich.
Standardanmeldung deaktiveren
Es kann sich keiner mehr im über die normal Loginseite anmelden und es geht nur noch über die SSO Anbindung.
SSO Anmeldung ohne Passwort erlauben?
Es wird das Passwort nicht auf Richtigkeit geprüft.
Hinweis zur Anmeldung ohne Passwort
Dies sollte nur in Verbindung mit einem IP Filter, oder dem deaktivieren des Stanardlogins verwendet werden.
Benutzerkonfiguration
Für SSO freischalten
Wenn im Modul die Option "Nur Benutzer mit SSO Option zulassen" aktiviert ist, dann greift diese einstellung für den Benutzer und es dürfen sich per SSO nur die Benutzer anmelden, bei denen diese Option aktiviert ist.
Implementierung
In diesem Abschnitt wird erklärt, wie es eingesetzt werden kann.
Pfad
Der Pfad muss wie folgt aufgebaut sein und es wird nur ein POST aufruf erwartet:
<admin-domain>/sso/<client-id>
POST-Variablen
- encodedUserData
z.B. https://admin.lead-print.com/sso/1461
- encodedUserData = bmtTZHlIZ3JDTFc5UXZBcnI1Y1dBdE.....Ss=
Parameter
Variablenname | Format | Info | Info |
---|---|---|---|
request_time | DateTime::ISO8601 | ||
username | string | ||
password | string | nicht benötigt, bei Option: SSO Anmeldung ohne Passwort erlauben |
Beispiel
Anhand des folgenden PHP Beispiels wird gezeigt, wie die Daten an die entsprechende URL übergeben werden muss.
// Ein Objekt erstellen, welches die benötigten Variablen hat. $userData = new stdClass(); $userData->request_time = (new DateTime())->format(DateTime::ISO8601); $userData->username = 'username'; $userData->password = 'userPassword'; // Damit dies übermittelt werden kann, muss dies als JSON-String umgewandelt werden. $jsonEncodedUserData = json_encode($userData); // Verschlüsseln $passphrase = 'passphraseToEncrypt'; $iv = substr(hash('sha256', $passphrase), 0, 16); $encodedUserData = openssl_encrypt( $jsonEncodedUserData, 'aes-256-cbc', $passphrase, false, $iv ); // Es muss nun noch base64 encoded werden, damit der Browser dies nicht falsch interpretiert. $encodedUserData = base64_encode($encodedUserData); // Erstellen des Pfad für die Backend-Domain $backendRootPath = '/sso/' . $client->id; $postVariables = [ 'encodedUserData' => $encodedUserData, ];