Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Nächste Version anzeigen »

Für eine nahtlose und möglichst direkte Einbindung in einen beliebigen Druckshop aus externen Systemen bietet der Druckshop mit dem SSO-Modul die Möglichkeit, einen Benutzer direkt registrieren und anzumelden, ohne dass dieser eine eigene Registrierung vornehmen muss. Hierzu muss lediglich das Modul konfiguriert werden und eine Anbindung programmiert werden.

Konfiguration des Moduls

Pro Shop kann eine individuelle Konfiguration angelegt werden, wobei folgende Optionen zur Verfügung stehen:

Schnittstelle aktivierenDie SSO-Schnittstelle kann für jeden Shop einzeln aktiviert und deaktiviert werden.

Verschlüsselungspasswort

Ein möglichst sicheres Passwort, welches zur Ver- und Entschlüsselung der übertragenen Informationen dient.
Kommunikationsstatus
E-Mail
Zahlungsart

Soll bei einem SSO-Login eine bestimmte Zahlungsart verwendet werden, kann diese hier hinterlegt werden.

Wird keine Zahlungsart vorgegeben, stehen alle verfügbaren Zahlungsarten im Shop bereit.

Anbindung aus einem externen System

Um den direkten Login per SSO zu ermöglichen, muss das externe System die erforderlichen Benutzerdaten verschlüsselt übergeben. Hierzu wird das symmetrische Verschlüsselungsverfahren AES-256-CBC verwendet, um eine zuverlässige Verschlüsselung sicherzustellen. Grundsätzlich können folgende Daten übergeben werden:

user

Alle verfügbaren Benutzerdaten können übergeben werden. Diese werden zur Erstellung und Aktualisierung der Benutzerdaten im Druckshop verwendet.

userName *Benutzername des neuen oder existierenden Benutzers
password *Passwort des neuen Benutzers (dieses wird vom Druckshop verschlüsselt)
customerNumberKundennummer
status

Status des Benutzers (bspw. "OK")

ssoLoginOnlyErlaubt dem Benutzer ausschließlich einen Login per SSO. Dieser Parameter kann dazu verwendet werden, um einen direkten Login über das Shop-System zu unterbinden. (1 oder 0)

Es stehen alle weiteren Felder eines Kundenbenutzers zur Verfügung und werden im Druckshop aktualisiert, sofern sie übergeben werden.

redirect_uriZiel-Adresse, auf die bei erfolgreichem Login weitergeleitet werden soll (i. d. R. ist dies die Startseite des Shops: "/").
callback_uriZiel-Adresse, auf die nach Bestellabschluss zurückgeleitet werden soll.
logout_uriZiel-Adresse, auf die nach Logout zurückgeleitet werden soll.
error_uriZiel-Adresse, auf die nach erfolglosem Login zurückgeleitet werden soll.
Beispielhafte Implementierung über PHP
$newShopCustomer = new Customer();
$newShopCustomer->userName = 'max.mustermann';
$newShopCustomer->password = 'supersecurepasswordforuser1234';
$newShopCustomer->status = 'OK';
$newShopCustomer->ssoLoginOnly = 1;

$ssoData = [
    'user' => $newShopCustomer,
    'redirect_uri' => '/',
    'callback_uri' => 'https://my.sytem.dev/sso_callback.php',
    'logout_uri' => 'https://my.system.dev/sso_logout.php',
    'error_uri' => 'https://my.system.dev/sso_login_failed.php'
];

// Encrypt ssoData
$cipher = 'AES-256-CBC';


$ssoPassword = 'ssoPasswordFromModuleSettings'; // Hier muss das hinterlegte Passwort aus den Moduleinstellungen angegeben werden


if (in_array($cipher, openssl_get_cipher_methods())) {
    $cipherInitializationVector = substr(
    	hash(
     		'sha256',
    		$ssoPassword
    	),
    	0,
    	openssl_cipher_iv_length($cipher)
	);

    $encodedDataString = openssl_encrypt(
        http_build_query($ssoData),
        $cipher,
        $ssoPassword,
        0,
        $cipherInitializationVector
    );


	$ssoLoginUri = 'http://www.shop.printshop.local/sso/login?data=' . rawurlencode($encodedDataString);
} else {
	exit('encoding not available.');
}
  • Keine Stichwörter