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

VariablennameFormatInfoInfo
request_timeDateTime::ISO8601

usernamestring

passwordstring
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.

SSO Backend CodeBeispiel
// 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,
];