Thema: Delphi OAuth2 erste Schritte

Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#14

AW: OAuth2 erste Schritte

  Alt 7. Nov 2022, 07:37
So, jetzt hab ich da nochmal drüber nachgedacht.

Es gibt für solche Fälle, also die initiale Auth für Hintergrund-Dienste, aber auch um Geräte einzuloggen die keine gute/direkte Eingabemöglichkeit für die Benutzer-Credentials anbieten, noch weitere Grant-Types (flows) die man verwenden kann.

Das eine ist der Device-Code Flow. Das benutzt z.B. die Amazon Prime Video App auf Samsung TVs oder auch die Youtube-App auf Samsung TVs. Die Anwendung kommuniziert zuerst mit dem IdP und generiert einen Device Code. Meist 5-Stellig Alphanumerisch. Den und die Url zum IdP zeit die Anwendung dann dem User an. Meist gibts noch einen QR-Code der den Code schon direkt drin hat dazu.

Der Benutzer geht dann - auf einem anderen Gerät, z.B. auf seinem Smartphone - auf diese Login-Seite bei Amazon bzw. Youtube oder öffnet den QR-Code (dahinter steckt die URL meist schon mit dem Code). Er meldet sich dort an, gibt den Device-Code ein wenn er nicht schon über den QR-Code reingekommen ist, und währenddessen pollt die Anwendung immer mal wieder den IdP und fragt: Hat er sich schon angemeldet? Hat er sich schon angemeldet? Wenn ja, bekommt sie dann die Tokens zurück.

Das kann man freilich auch direkt auf dem Server/der VM so machen. Die Anwendung startet den Device Code flow und öffnet die URL mit dem Code gleich im lokalen Browser. Der Rück-Kanal ist dann aber eben nicht das aufmachen eines lokalen Webservers oder das registrieren eines eigenen Protokolls, sondern eben das pollen beim IdP.

Die zweite Methode ist CIBA (Client initiated backchannel authentication), aber damit habe ich mich ehrlich gesagt noch nicht weiter beschäftigt. https://openid.net/specs/openid-clie...1_0-final.html
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat