Übersicht

Hier folgt eine kurze Übersicht über die Mandanten die SSO verwenden. Desweiteren eine Beschreibung des allgemeinen Prozesses, gefolgt von mandanten-/verfahrensspezifischen Eigenheiten.

Mandanten-Liste

(Stand 2017-05-26)

Code Name Hosting Art
114 Arnstadt AWS ITC
115 Emsdetten AWS SIV
118 Beckum AWS SIV

Allgemeiner Prozess

Für den SSO wird das JWT-Verfahren genutzt.

Der Ablauf bei der Anmeldung mit Nutzername/Passwort sieht wie folgt aus:

Annahme:
  • Ein Kunde hat sich im externen CSS bereits angemeldet und es existieren Zugangsdaten (Nutzername/Passwort).
  • GATES besitzt den öffentlichen Key zur Prüfung der Signatur des JWT-Tokens.

SSO-Ablauf

  1. Kunde meldet sich in der Bonuswelt mit Nutzername und Passwort an
  2. Mit den Zugangsdaten wird aus der Bonuswelt an das externe System eine Anfrage an deren Authorisierung-Schnittstelle gestellt
  3. Die Antwort enthält, bei Erfolg, einen signierten JWT-Token mit Payload einer eindeutigen (technische) Kundennummer.
  4. Der Token auf den issuer, das expiered Datum und die Signatur überprüft
  5. Die Bonuswelt stellt mit Token eine Anfrage an den WebService, des externen Systems, zur Übermittlung der Kundeninformationen zur Kundennummer aus dem Token.
  6. Das externe System schickt die Kundeninformationen des sich anmeldeten Kunden zurück.
  7. Der Kunde wird in der Bonuswelt direkt angelegt/geupdated wenn es sich um einen Hauptkunden angelegt. (Updateregeln im nächsten Absatz)
  8. Nun wird der Haushalt abgefragt, dazu wird wieder mit Hilfe des Tokens und der Kundennummer der WebService des externen Systems zur Abfrage des Haushalts aufgerufen.
  9. Als Antwort wird eine Liste von Kundennummern, der Haushaltsmitglieder erwartet
  10. Die Bonuswelt frägt, wie bei dem anzumeldeten Nutzer, alle Kundendaten zu den Haushaltsmigliedern ab.
  11. Wurden alle Kundendaten abgefragt, werden die Kunden in der Bonuswelt angelegt/geupdated.
Automatische Anmeldung aus dem externen System in der Bonuswelt (Absprung)

Damit ein Kunde, der bereits sich im externen System angemeldet hat, und von dort direkt in die Bonuswelt, via Link, springt, direkt angemeldet ist, gibt es folgendes Verfahren. Dem Link im externen System zur Bonuswelt, wird der Url-Parameter external-token. Der Wert des Parameters ist, ein JWT-Token der auch durch die Anmeldung mit den Zugangsdaten erzeugt wird. (siehe 1. - 3.)

Zum Beispiel:

https://demo.plusservices.de/100/account?external-token=eyj.....d92
Updatedregeln

Die eindeutige, meist technische, Kundennummer, wird unter Account bei Externe Id, gespeichert. Damit ein Kunde aktualisiert werden kann werden folgende Schritte betrachtet:

  1. Der zu aktualisierende Kunde muss eine externe Id haben
  2. Account über den Nutzernamen suchen
  3. Account über die externe Id suchen
  4. Prüfen ob der gefundene Account per Nutzername die gleiche externe Id hat. Sollte der gefundene Account keine externe Id besitzen oder eine andere externe Id, bedeutet dies, dass der Nutzername schon belegt ist und der Kunde nicht angelegt werden kann.
  5. Prüfung auf Eindeutigkeit des Accounts per externer Id.
  6. Ist der Account per externer Id eindeutig und handelt es sich um einen Hauptkunden, so wird zusätzlich die Kundennummer aktualisiert.

Gemeinsamkeiten

Die Kommunikation mit den WebServices läuft bis auf SIV über REST. Dadurch, dass mittlerweile die eindeutige technische Kundennummer als externe Id und auch als Nutzername gesetzt wird, sind die Validierungs und Update Regeln für alle implementierten SSO Verfahren gleich.

Besonderheit SIV

Unterscheidungsflag Haupt-/Unterkunde: customer_home (false == Hauptkunde) Die Kommunikation der WebServices läuft mit SIV über SOAP. Die Hauptkunden haben als externe Id, die kunden-bekannte Kundennummer. Die Unterkunden jedoch eine technische Id.

Ansprechpartner:

Manuel Gerber, Christian Schletter

Besonderheiten ITC

Die ITC Kunden benutzen das Haushaltskonstrukt nicht. D.h. Jeder Kunde ist ein Hauptkunde. In der ITC Datenstruktur gibt es neben Einzelpersonen, noch Gruppen und Firmen. Bei Gruppen werden in den Kundendaten immer alle Personen mitgeliefert. Dies führt zu dem Problem, dass es nicht möglich ist zu bestimmen, welche Person einer Gruppe sich aktuell angemeldet hat. Daher wurde die Übereinkunft mit Arnstadt getroffen, dass immer der Name der ersten Person der Gruppe, die Gruppe in der Bonuswelt vertritt.

Ansprechpartner:

Enrico Hörnig, Falk Augustin

Besonderheiten Klagenfurt/Offenbach

Unterscheidungsflag Haupt-/Unterkunde (Klagenfurt): isEkgCustomer (true == Hauptkunde)

Bei Offenbach gibt es nur Hauptkunden.

Ansprechpartner:

Stefan Urabl (Klagenfurt), Martin Weber oder Volker Barthel (Offenbach/Soluvia)

Service und Property Konfigurationen

  • external Authentication
  • service_center_link: Link zum externen Kundenportal (Für den Link im Anmeldedialog)

Hier können Sie sich mit den Benutzerdaten des Kundenportals der Stadtwerke XY anmelden. Sollte etwas nicht funktionieren, nehmen Sie bitte mit uns Kontakt auf! 2. has_external_error_msg: Mandant liefert eigene Fehlermeldungen wenn die Authentifizierung nicht erfolgreich war

  • login
  • register_path: Gibt den Link zur Registeriungsseite im externen System an. Ist dieser Link gesetzt, so wird im Anmeldefenster folgender Hinweis angezeigt
  • reset_path: Gibt den Link zur Passwort vergessen Funktion im externen System an.

  • register: Deaktiviert den Menüpunkt Kundencenter als Anon