Single-Sign-On Schnittstelle v2.0
Mit Single-Sign-On (oder kurz SSO) kann der Zugriff auf die PRINT LOUNGE aus externen Systemen vereinfacht werden. Dabei klickt der Benutzer lediglich auf einen Link in der Software (z.B. CMS- oder CRM-System, Intranet oder Beschaffungsplattform) und wird automatisch und sicher in der PRINT LOUNGE registriert und angemeldet. Über diesen SSO-Link werden die relevanten Benutzerdaten verschlüsselt übertragen.
Eine separate Registrierung oder ein erneutes Login in der PRINT LOUNGE entfällt somit, was die Integration und Nutzung der Software in externe Systeme und bestehende Softwarelandschaften vereinfacht.
So können eine schnellere Integration und einfachere Anmeldung, höhere Produktivität, Effizienz und Sicherheit sowie die Zentralisierung von Prozessen erreicht werden.
Inhalt dieser Dokumentation
Voraussetzungen
Das Add-On „Single-Sign-On (SSO)“ muss für den jeweiligen Mandanten aktiviert werden
Die SSO-Schnittstelle muss im Shop konfiguriert werden
Eine technische Anpassung im externen System kann für die Anbindung via SSO erforderlich sein, um den SSO-Link zu erstellen und einzubinden.
Informationen zum SSO-Link
Der Link zum Aufruf der PRINT LOUNGE enthält alle relevanten Daten in verschlüsselter Form, außerdem kann die Gültigkeit des Links auf eine festgelegte Dauer, IP-Adressen oder Referrer eingeschränkt werden.
Der Aufbau des SSO-Links ist immer identisch:
https://SHOP_DOMAIN/sso.php?h=ENCODED_KEY_VALUE_PAIRS
Die SHOP_DOMAIN besteht abhängig von der Shop-Konfiguration entweder aus dem hinterlegten Namen des Shops gefolgt von der SASS-Domain (bspw. shop.print-server.net, wobei „shop“ der Name des Shops ist) oder der individuellen Shop-Domain (bspw. example-shop-domain.dev).
Diese Einstellungen befinden sich in der Administration unter „Verwaltung » Shops » bearbeiten“ im Tab „Grundeinstellungen“.
Konfiguration der Schnittstelle
Bevor die SSO-Schnittstelle genutzt werden kann, muss diese zunächst innerhalb der Administration unter Verwaltung » Shops » bearbeiten im Tab „SSO-Schnittstelle“ konfiguriert und aktiviert werden.
Folgende Konfigurationsmöglichkeiten stehen hierbei zur Verfügung:
Einstellung | Mögliche Werte | Beschreibung |
|---|---|---|
SSO-Schnittstelle aktivieren | ja / nein | Aktiviert bzw. deaktiviert die generelle Verwendungsmöglichkeit der SSO-Schnittstelle. |
Reguläre Anmeldung deaktivieren | ja / nein | Deaktiviert die reguläre Anmeldung über das Login-Formular bei aktivierter SSO-Schnittstelle. Somit ist ausschließlich eine Nutzung über SSO möglich. |
Benutzerabmeldung ermöglichen | ja / nein | Deaktiviert die selbständige Abmeldung durch den Benutzer über den Shop. |
Zurück Button mit HOOK_URL anzeigen | ja / nein | Zeigt einen „zurück“-Button mit der übergebenen |
Unbekannte Benutzer registrieren | ja / nein | Erlaubt die Registrierung von nicht bekannten Benutzern. Die Aktivierung dieser Einstellung wird nicht empfohlen, kann aber in einigen Softwareumgebungen erforderlich und sinnvoll sein. Es sollte sichergestellt sein, dass alle Benutzer mit Zugang zum SSO-Link die PRINT LOUNGE nutzen dürfen. Ist diese Option deaktiviert, können sich nur bereits in der PRINT LOUNGE angelegte Benutzer über SSO anmelden. |
Benutzergruppen automatisch anlegen | ja / nein | Übergebene, aber noch nicht in der PRINT LOUNGE angelegte Benutzergruppen werden beim SSO-Login automatisch neu angelegt. Ist dies deaktiviert, wird die übergebene und bereits vorhandene Gruppe oder die Standard-Benutzergruppe verwendet. |
Benutzergruppen anhand Kundennummer ermitteln | ja / nein | Die passende Benutzergruppe wird anhand der übergebenen Kundennummer ermittelt. Wird keine Benutzergruppe gefunden, wird die Standard-Benutzergruppe verwendet. |
Benutzer intern folgender Standard-Budgetgruppe zuordnen | Auswahl der Benutzergruppe | Benutzergruppe, der SSO-Benutzer automatisch zugewiesen werden. |
Benutzerfelder nicht überschreibbar | Auswahl der Benutzerfelder | Ausgewählte Benutzerfelder werden geschützt und können nicht per SSO gesetzt werden. Übergebene Parameter für diese Benutzerfelder werden bei der Verarbeitung ignoriert. |
Passphrase | – | Vom System erzeugte Passphrase; kann nicht individuell gesetzt werden. |
Verschlüsselungsverfahren | Auswahl des Verfahrens | Auswahl des zu verwendenden Verfahrens zur Ver- und Entschlüsselung der übergebenen Daten. |
IP-Filter (optional) | semikolon-getrennte IP-Adressen | Semikolon-getrennte IP-Adressen, über die eine SSO-Nutzung ermöglicht werden soll. |
Referrer-Prüfung (optional) | Regulärer Ausdruck | Regulärer Ausdruck für Prüfung des übergebenen Referrers. Entspricht der Referrer nicht diesem Schema, schlägt der SSO-Login fehl. |
Benutzer ohne Benutzernamen mit temporärem Benutzernamen anmelden | ja / nein | Aktiviert bzw. deaktiviert die Nutzung der SSO-Schnittstelle ohne Benutzernamen. |
Request-Time-Out | Zeit in Millisekunden | Gültigkeitsdauer des Links. Übergabe des Parameters Wird der Wert “0” hinterlegt, ist der Link maximal 3 Tagen gültig. |
Fehler-/Hinweistexte | Freitext | Dieser Text wird im jeweiligen Fehlerfall angezeigt. Es können folgende Fehlertexte hinterlegt werden:
|
Informationen zur Referrer-Prüfung
In der Konfiguration für die Referrer-Prüfung kann ein Regulärer Ausdruck (RegExp) hinterlegt werden. Mithilfe dieses Ausdrucks kann bei der Registrierung und Anmeldung eines Benutzers über die SSO-Schnittstelle eine oder mehrere Domains überprüft werden, so dass eine Nutzung nur über bestimmte Domains zugelassen wird.
Beispiel, um ausschließlich www.example.org zuzulassen:
/www\.example\.org/
Beispiel, um www.example.org und www.printlounge.dev zuzulassen:
/www\.(example\.org|printlounge\.dev)/
Beispiel um *.example.org zulassen:
/(.*)\.example|\.org/
Anmeldung von Benutzern mit temporären Benutzernamen
Ist die Option “Benutzer ohne Benutzernamen mit temporärem Benutzernamen anmelden” aktiviert, muss auch die Option “Unbekannte Benutzer registrieren“ aktiviert werden. Sind beide Einstellungen gesetzt und wird zusätzlich kein ENCODED_KEY_VALUE_PAIRS übergeben, wird ein temporärer Benutzer mit einem Dummy-Benutzernamen angelegt.
(Technische) Datenübergabe & Erstellung des SSO-Links
Die relevanten Daten für die Benutzeranlage bzw. den Login (ENCODED_KEY_VALUE_PAIRS) müssen mit der hinterlegten PASSPHRASE und Verschlüsselungsart übergeben werden. Der Benutzer wird im Erfolgsfall in der PRINT LOUNGE angemeldet und kann diese im Anschluss regulär verwenden.
Codebeispiel zur Erzeugung des SSO-Links in PHP:
<?php
$shopUserData = [
'request_time' => (new DateTimeImmutable)->format(DateTime::ISO8601),
'customer_user_name' => 'example_user',
'customer_firstname' => 'printy',
'customer_lastname' => 'tester',
];
passphrase = 'SECRET_RANDOM_PASSPHRASE';
$cipher = 'aes-128-gcm';
$initializationVectorLength = openssl_cipher_iv_length($cipher);
$initializationVecotr = openssl_random_pseudo_bytes($initializationVectorLength);
$encryptedShopUserData = openssl_encrypt(http_build_query($shopUserData), $cipher, $passphrase, 0, $iv);
$ssoLoginLink = 'https://shop.print-server.net/sso.php?h=' . urlencode($encryptedShopUserData);Verfügbare SSO-Parameter
Parametername | Typ / Wert | Beschreibung |
|---|---|---|
continue_shopping | integer Verfügbare Werte 0: deaktiviert | Zeigt im Warenkorb den Button „Weiter einkaufen“. Wenn aktiviert wird der |
customer_firstname | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Vorname |
customer_funktion | string max. 200 Zeichen (UTF-8) | Shop-Benutzer » Funktion |
customer_lastname | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Nachname |
customer_longname | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Name / Ansprechpartner |
customer_user_aussendienst | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Außendienst |
customer_user_budgetgruppe__id | integer | Shop-Benutzer » Benutzergruppe (ID) Wird keine Benutzergruppe übergeben, wird der Benutzer in einer definierten Standard-Benutzergruppe angelegt. Gleiches gilt, wenn anhand der ID keine gültige Benutzergruppe ermittelt werden kann. |
customer_user_businessunit | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Abteilung |
customer_user_company1 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Firma 1 |
customer_user_company2 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Firma 2 |
customer_user_company3 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Firma 3 |
customer_user_costcenter | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Kostenstelle |
customer_user_country | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Land veraltet, bitte |
customer_user_countrycode | string | Shop-Benutzer » Land Ländercode gemäß ISO-3166 |
customer_user_email | string max 100 Zeichen (UTF-8) | Shop-Benutzer » E-Mail-Adresse |
customer_user_internet | string max 100 Zeichen (UTF-8) | Shop-Benutzer » Internet |
customer_user_kundennummer | string max 100 Zeichen (UTF-8) | Shop-Benutzer » Kundennummer |
customer_user_level | integer Verfügbare Werte: 57: A – Benutzer (Standard) | Shop-Benutzer » Benutzerrolle |
customer_user_mobil | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Mobilnummer |
customer_user_name * | string max 50 Zeichen (A-Z0-9_-.@) | Shop-Benutzer » Benutzername Es müssen eindeutige Zuordnungen wie User-IDs, E-Mail-Adressen oder Benutzernamen verwendet werden. |
customer_user_purchaser | string max 50 Zeichen (UTF-8) | Shop-Benutzer » Käufer |
customer_user_street | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Straße |
customer_user_telefax | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Faxnummer |
customer_user_telefon | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Telefonnummer |
customer_user_town | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Stadt |
customer_user_zip | string max 10 Zeichen (UTF-8) | Shop-Benutzer » PLZ |
customfield1 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Freifeld 1 |
customfield2 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Freifeld 2 |
customfield3 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Freifeld 3 |
customfield4 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Freifeld 4 |
customfield5 | string max 200 Zeichen (UTF-8) | Shop-Benutzer » Freifeld 5 |
delivery_address_editable | integer Verfügbare Werte: 0: Ja | Legt fest, ob die Lieferadresse im Warenkorb editierbar ist. |
dest_id | integer | Die ID des Eintrags (Warengruppe oder Artikel) |
dest_page | string Verfügbare Werte: wg: Warengruppenseite | Zielseite nach SSO-Login |
dynamic_lists |
| Listeneinträge über die SSO-Schnittstelle als JSON-String übergeben. (Mehr dazu erfahren Sie unter dem Punkt „Dynamische Listeneinträge“) |
email_address_for_cost_release | string | E-Mail-Adresse für Kostenfreigabe ab Version 6.0.0 verfügbar |
external_order_number | string | Externe Bestellnummer Über diesen Parameter kann eine Bestellnummer aus einem externen System übergeben werden, welche dann beim Auslösen einer Bestellung innerhalb der PRINT LOUNGE in der neuen Bestellung als „Externe Bestellnummer“ hinterlegt wird. |
freigabeportal_zeigen | integer Verfügbare Werte: 53: Ja | Shop-Benutzer » Freigabeportal anzeigen |
group_customer_number | string | Benutzergruppe » Kundennummer Wird der Name der Benutzergruppe übergeben, wird geprüft ob in der Gruppe die Kundennummer mit exakt diesem Wert existiert. Falls nicht wird der Benutzer der Standardgruppe zugeordnet. Bei einer Übereinstimmung wird der Benutzer in die jeweilige Gruppe zugewiesen. Funktioniert nur wenn die Option „Benutzergruppen anhand Kundennummer ermitteln“ aktiviert wurde. Diese Daten werden nur zur Ermittlung der Benutzergruppe verwendet. |
group_name | string max 50 Zeichen (UTF-8) | Benutzergruppe » Bezeichnung Wird der Name der Benutzergruppe übergeben, wird geprüft ob die Gruppe mit exakt diesem Namen existiert. Falls nicht wird die Gruppe neu angelegt. Der Benutzer wird dieser Gruppe zugewiesen. Funktioniert nur wenn die Option „Benutzergruppen automatisch anlegen“ aktiviert wurde. |
lang |
| Sprache |
pers_data |
| Dient der Übermittlung von Personalisierungsdaten (siehe unten) |
quantity | integer | Die Anzahl aus der Preisstaffel Wird keine Anzahl übermittelt, ermittelt das System die kleinste Preisstaffel für den jeweiligen Artikel. |
request_time * | Datum und Uhrzeit (ISO 8601) | Zeitpunkt des Aufrufs Standardgültigkeit des Requests 500s - 8 min |
return_url | 200 Zeichen | URL für Rücksprung-Link Wird hier eine URL angegeben, so wird auf der Finish ein Button angezeigt, der zu dieser URL führt |
settings | Array | Benutzereinstellungen Dieses Array kann alle Benutzer-Settings als key-value-Paar enthalten, welche gesetzt werden sollen. |
skip_cart | 53: Ja | Shop-Benutzer » Warenkorb überspringen |
sprache | string de: Deutsch (Standard) | Sprache veraltet, bitte |
test |
| Testmodus aktivieren Zum Aktivieren des Testmodus kann der Parameter „test=true“ übergeben werden. Anstelle der Weiterleitung findet eine Bildschirmausgabe der übergebenen Daten statt. |
user_groups_binary_description | 50 Zeichen (Utf8) | Beschreibung für Logo (Bild) einer Benutzergruppe |
user_groups_binary_url | 200 Zeichen (Utf8) | URL für Logo (Bild) einer Benutzergruppe |
view_settings | Array Folgende Keys sind verfügbar:
|