SIMPLE SINGLE SIGN ON

Compatible with Magento 2.2.x – 2.3.x.
Version: 1.0.1

Die „Simple Single Sign On“-Extension ermöglicht die einfache Verbindung von externen Applikationen wie Websites, Portale etc. mit Magento durch ein vereinfachtes Single-Sign-On. Hierdurch entfällt dabei die Notwendigkeit einer mehrfachen Authentifizierung des Users an unterschiedlichen Systemen.

Die Extension unterstützt sowohl das Szenario zur reinen User-Authentifizierung, als auch eine User-Authentifizierung mit vorheriger User-Provisionierung. Sie unterscheidet drei verschiedene Einsatzgebiete:

  • Simple: In der „Simple“-Variante erfolgt ausschließlich die automatische Anmeldung (Authentifizierung) eines bereits vorhandenen Benutzers. Für die erfolgreiche Authentifizierung muss der Benutzer bereits im Magento-System vorhanden sein, damit das automatisierte Login-Verfahren in Magento erfolgreich ist. Die Benutzer müssen also über eine eigenständige User-Provisionierung im Magento-System bereits erzeugt worden sein. Ist ein User bereits im System vorhanden, so wird dieser eingeloggt – ist der User nicht vorhanden, erscheint eine entsprechende Fehlermeldung. Als eindeutiges Identifikationsmerkmal dient die Email-Adresse des Benutzers. Mit erfolgreichem Einloggen eines Users, können Daten im User-Profil aktualisiert oder vorbelegt werden.
  • Standard: In der Standard-Variante erfolgt nicht nur die automatisierte Authentifizierung des Users, sondern darüber kann im Single-Sign-On-Prozess auch die User-Provisionierung erfolgen. D.h. es können User zunächst auf Basis übergebender Daten (aus dem Fremdsystem) zunächst erzeugt/ aktualisiert werden und danach erfolgreich angemeldet werden.
  • Dynamic: Sollten die Variante „Simple“ oder „Standard“ nicht ausreichend flexibel sein, so kann der Modus „Dynamic“ eingeschaltet werden. In dieser Variante liefert das SSO „nur“ den Rahmen für eine individuelle oder erweiterte Implementierung der SSO-Prozesse

Name:

SIMPLE SINGLE SIGN ON

Requirements:

Magento 2.2.x – 2.3.x.

Version:

Version: 1.1.9

SSO-Prozess:

  1. (Optional – aber ausdrücklich empfohlen!) Fremdsystem fordert Token an [Token-Feature aktiviert] über http(s)://www.meinshop.de/sso /token/generate/email/<kundenemail>
    Die Token-Sicherheit dient dazu die Kommunikation zwischen den Systemen zu authentifizieren. In diesem System wird zunächst die Kommunikation vom Fremdsystem mit dem SSO-Server aufgenommen. Dabei können über den Parameter „AllowedIPS“ die authorisierten Server konfiguriert werden, die einen Authentifizierungs-Token erzeugen dürfen. Über die Token-URL(http(s)://www.meinshop.de/sso /token/generate/email/<kundenemail>) wird zunächst ein Authentifizierungstoken generiert, um dann in einer möglichen Folge-Kommunikation jeweils mit übergeben zu werden. Über die Lifetime(in Sekunden) des Tokens kann die maximale Wartezeit definiert werden, die zwischen dem Aufruf 1 (Token-URL) und Aufruf 2 (SSO-URL) liegen darf.
  2. Datenübergabe per Formular-Post(POST/GET) an SSO-Zieladresse des Magento-Systems. Über die SSO-Url: http(s)://www.meinshop.de/sso/customer/login/token/<token>/email/<email>/data/<data>/
    wird der Token und evtl. notwendige Zusatzdaten übergeben und der Benutzer wird an das System angemeldet.

Über dieses einfache, 2-stufige SSO-Verfahren ist die Abbildung typischer, einfacher Web-Integration-Szenarien zwischen Magento-Systemen und Dritt-/Fremdsystemen wie bspw. Web-Portalen, Marktplätzen, eProcurement-Systemen etc. möglich.

Sollte das Portal System keine dynamische Programmierung ermöglichen, kann ein statisches Token hinterlegt werden. Die komplette Deaktivierung der Token-Sicherheit ist ebenso möglich – es ermöglicht zwar eine noch einfachere Form des SSO-Vorgangs, ist aber immer im Einzelfall gegenüber drohender Sicherheitsrisiken gut abzuwägen.

Wichtiger Hinweis: Empfohlen wird ausdrücklich das 2-stufige SSO-Verfahren.

Verschlüsselung:

Optional können Daten bei der Übergabe verschlüsselt werden. Dafür kann eine Verschlüsselung nach Rijndael genutzt werden. Für die Verschlüsselung sind die Parameter Schlüssel und Initialisierungsvektor wichtig!

Datenübergabe:

Das SSO-Modul ermöglicht die Übergabe von Benutzer- und Adressdaten. Diese Daten können je nach Konfiguration des SSO-Typs zur Anlage neuer Kundendatensätze im Magento genutzt werden.
Die Übergabe der Parameter kann dabei sowohl per POST, als auch per GET erfolgen. Für die Übergabe eines vollständigen Kunden und Adressdatensatzes muss der Parameter <data> verwendet werden. Der Parameter <data> kann verschlüsselt werden. Vgl. Verschlüsselung.

Die Standardbezeichnung und Zuordnungen der Felder zum Kundenstamm kann in der fieldset.xml eingesehen werden.

<?xml version=“1.0″?><config xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance  xsi:noNamespaceSchemaLocation = “ urn:magento:framework:DataObject/etc/fieldset.xsd“> <scope id=“global“>
<fieldset id=“sso_customer_login_data“>
<!– default fields –>
<field name=“firstname“>
<aspect name=“to_customer“ />
<aspect name=“to_customer_address“ />
</field>
<field name=“lastname“>
<aspect name=“to_customer“ />
<aspect name=“to_customer_address“ />
</field>
<field name=“company_name“>
<aspect name=“to_customer“ targetField=“company“ />
<aspect name=“to_customer_address“ targetField=“company“ />
</field>
<field name=“email“>
<aspect name=“to_customer“ />
</field>
<field name=“street“>
<aspect name=“to_customer_address“ />
</field>
<field name=“zip“>
<aspect name=“to_customer_address“ targetField=“postcode“ />
</field>
<field name=“city“>
<aspect name=“to_customer_address“ />
</field>
<field name=“country“>
<aspect name=“to_customer_address“ targetField=“country_id“ />
</field>
<field name=“fax“>
<aspect name=“to_customer_address“ />
</field>
</fieldset>
</scope>
</config>

Statische Vorbelegung von Userdaten:

Eine statische Vorbelegung von Userdaten ist zusätzlich möglich. Über die Backend-Verwaltung können statisch Attribute mit Ihren Attributswerten definiert werden, die im Rahmen des SSO-Prozesses (Version: Standard) statisch für die User-Registrierung genutzt werden. Bspw. ist es so möglich, einen neu registrierten Benutzer im zur Benutzergruppe „1“ zuzuordnen.

Changelog

Version Typ Inhalt Bemerkung
1.0.0 Initial Release

Roadmap

Version Typ Inhalt Bemerkung
1.2.0 Compatibility Umstellung der Rijndal-Verschlüsselung Umstellung auf eine PHP .7.2 kompatbile Verschlüsselung