Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Codeblock
languagephp
titleBeispielhafte Implementierung über PHP
linenumberstrue
collapsetrue
$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.');
}

Verifizierung eines Benutzerzugriffs

Um einen Benutzerzugriff durch ein externes System zu verifizieren, kann zusätzlich das Modul "SSO Verifizierung" aktiviert werden.

Ist das Modul aktiviert, steht innerhalb der Verwaltung im Bereich "Addons » SSO Verifizierung" die Konfiguration für jeden Shop zur Verfügung, in der eine Verifizierungs-URL hinterlegt werden kann. Diese wird mit den Parametern user und user-id aufgerufen. Als Rückgabe wird ein JSON-Objekt erwartet mit folgenden Eigenschaften:

{
"user-id":"", // Bei erfolgreicher Prüfung wird hier die Benutzer-Kennung zurückgegeben
"hook_url":"" // Optionale URL für den Rücksprung
}