In der Dokumentation habe ich die Möglichkeit eines “Website Access Code” gefunden. Gerne würde ich damit eine SSO-Lösung in unserem Portal ermöglichen. Ist dies möglich, oder muss ich da einen anderen Weg verwenden?
Der Website Access Code ist tatsächlich für die SSO Anbindung gedacht. Der Antwort habe ich eine Datei angehängt, die in NodeJS zeigt, wie man eine einfachen SSO Aufruf durchführen kann.
Die Schritte sind dabei wie folgt:
- Applikation berechtigt sich gegenüber der Discovergy API
- Erstellung des Website Access Code für einen zugeordneten Benutzer
- Generierung der URL, auf die der Anwender weitergeleitet werden kann.
Zur Authentifizierung am API scheint der Website Access Code nicht zu funktionieren.
Ist das korrekt?
Ja, so richtig - mit dem Websiete Access Code kann man sich nicht gegenüber der API anmelden.
Danke. Da habe ich also nichts falsch verstanden oder versucht zu implementieren.
Ich möchte dann an dieser Stelle vorschlagen, auch für die API die Möglichkeit zu schaffen, dass Discovergy Kunden Dienstleistern (im weitetesten Sinne) Zugriff auf die API einräumen zu können, ohne die ‚Original‘ Discovergy Zugangsdaten zu verwenden. Mit diesen ist ja auch ein Zugriff auf das Dashboard inklusiver aller persönlicher Daten (Adresse, Rechnungen, Passwort und Bankverbindung ändern) möglich.
Hallo Herr Zörner,
wir prüfen auch gerade die Umsetzung einer SSO-Lösung, da unsere Kunden verschiedene Portale Nutzen und wir ihnen nur einmal User-Credentials geben wollen. Daher ein paar Fragen zu dem Thema:
- Ist der Website Access Code weiterhin die einzige Möglichkeit zur Umsetzung von Single-Sign-On?
- In der API-Beschreibung steht, dass der Code 3 Stunden gültig ist. Bedeutet dies für die erstmalige Nutzung und ist er danach unendlich gültig, oder muss in jedem Fall alle 3 Stunden ein neuer Code erzeugt werden (egal ob der User die ganze Zeit auf der Seite aktiv ist oder nicht)?
- Was passiert, wenn der Code abläuft? Wird der User dann auf die normale Discovergy-Login-Seite geleitet (zu der er keine Zugangsdaten hat) oder kann er zurück auf unsere Login-Seite geleitet werden (worüber wir nach Login wieder einen neuen Website Access Code generieren können und ihn damit zurückleiten)?
- Wir nutzen nicht die my.discovergy.com Portal-URL, sondern haben eine eigene URL mit Discovergy-Whitelabel. Was passiert, wenn der User diese URL ohne gültigen Code aufruft? Könnte der User dann auf unsere Login-Seite geleitet werden (worüber wir nach Login wieder einen neuen Website Access Code generieren können und ihn damit zurückleiten)?
Vielen Dank
M. Meyer
PS: In einem oberen Beitrag erwähnen sie eine NodeJS-Datei, diese hängt aber nicht mehr an. Könnten sie die erneut anhängen?
Hallo Herr Meyer,
folgend meine Antworten
Für klassissches SSO (Partner benötigt kein Passwort, um dem Kunden ein Login zu ermöglichen) ist es die einzige Möglichkeit. Ansonsten ist für die API selbst natürlich die SSO Möglichkeiten von OAuth1 (Achtung nicht OAuth2) vorhanden.
Wenn der Kunde auf Ihrem Portal aktiv bleibt, also zum Beispiel die Seite im Browser geöffnet lässt, dann ist kein neuer „Login“ notwendig und folglich greift auch der abgelaufene Access Code nicht. Der Code wird als Ersatz für das Login (Anmeldung) genutzt und nicht als Session Berechtigung wärend des Zugriffs.
Er würde auf die Loginseite der Domain (also entsprechend bei Whitelabel auf die Eingabe eines Benutzernamen und Passwort) umgeleitet werden. Sollte der Benutzer allerdings aus irgend einem Grund alle Cookies löschen oder diese nicht mehr funktionieren, dann kommt tatsächlich die normale Discovergy Portal Loginseite.
Bei Whitelabel hängt die Erkennung ausschließlich am Domainnamen, von daher funktioniert es sauber, sobald ausschließlich die Partnerdomain verwendet wird und der Kunde die my.discovergy.com nicht aufruft (nicht dahin umgeleitet wird).
Gruß,
Thorsten Zoerner (Discovergy)
Hallo Herr Zörner,
Vielen Dank für die Antwort.
Mit dem Rerouting ist glaube ich etwas durcheinander gekommen, daher nochmal Frage zum Ablauf:
- Anwender geht auf die Start-Login-Seite bei uns (https://login.UnsereDomain.de) und loggt sich mit den bei uns hinterlegten Credentials ein
- Wir erzeugen mit dem bei uns hinterlegten Discovergy-Account einen Web Access Code über die API, diese wäre bezogen auf die Whitelabel-URL: https://DiscovergyWhitelabel.UnsereDomain.de/?email=user@example.org&code=abc123.
- Der Anwender benutzt den Link mit Code innerhalb 3 Stunden und ist dauerhaft bei Discovergy eingeloggt. Er wäre dann auf htps://DiscovergyWhitelabel.UnsereDomain.de mit unserem Whitelabel und könnte diese Seite zB im Browser bookmarken
- Wenn er ausgeloggt ist (oder in Schritt 3 der Code bereits abgelaufen ist), dann würde er auf die Discovergy-Loginseite mit unserer Domain geleitet, d.h. htps://DiscovergyWhitelabel.UnsereDomain.de/login . Dazu kennt er allerdings keine Login-Daten mit dem Discovergy-Account.
- Wäre es an der Stelle möglich, dass der Anwender zurück auf unsere Authentifizierungs-Seite htps://login.UnsereDomain.de geleitet wird? Dann würde es wieder von oben beginnen.
Danke und viele Grüße
M. Meyer
(Nur zwei Links im Text erlaubt, daher htps:)
Hallo Herr Meyer,
bitte mal kurz eine Mail an api@discovergy.com senden, damit wir mit konkreten Domainnamen und URLs arbeiten können.
Danke,
Thorsten Zoerner (Discovergy)
p.s. Für Mitleser: Ergebnisse in allgemeiner Form - ohne Namensnennungen - kommen dann in einem weiteren Post.