![]() |
AW: OAuth2 erste Schritte
Zitat:
Auf der Umleitungsseite steht auch "A new window should open directing you back to the Postman app. If nothing happens, check to make sure your browser allows pop-ups." Schade, ich hatte kurz die Hoffnung, es gäbe noch eine andere Möglichkeit als den Webserver auf localhost oder das registrierte Protokoll. |
AW: OAuth2 erste Schritte
Ich habe es mit SMTP und OAUTH2 mit Google und Microsoft ans laufen bekommen.
Nur mit Indy/TLS1.3 und einmalig Browserfenster. Wenn man den Refrehkey zum anderen PC Kopiert geht es da auch ohne Browser. Einmalig: Lokal http Server erstellen. Mit ShellExecute den Browser mit Url und Parameter öffen (optional S256 Signatur) Der Browser schickt einen Code zum lokalen http server Mit diesem Code kann man sich den Refreshkey holen Regelmäßig: Mit dem Refreshkey kann man sich den Accesskey holen. Dieser ist eine Stunde gültig Mit dem Accesskey kann man dann Smtp/Pop/Imap etc. |
AW: OAuth2 erste Schritte
Wenn ich es richtig verstanden hab, dann
* bekommt man vom OAuth-Provider eine URL für's "externe" Einloggen * * die wird/kann z.B. im Browser geöffnet werden (müsste auch im TWebBrowser möglich sein) ... sollte/darf halt nicht "direkt" in deinem Programm gemacht werden, damit die Anmeldung von dir unabhängig ist * * da wiederrum könnte über den Provider z.B. auch 2FA über anderes Gerät eingeholt werden * als Rückgabe gibt man dem auch wieder eine URL mit (offiziell hast du ja keinen direkten Zugriff auf die aufgerufene Webseite und was sie zurück bekommt) * * das kann z.B. eine öffentliche Webseite/Server von dir sein, oder auch auf localhost, an die dann das Token übergeben wird, nach erfolgreicher Anmeldung * und mit dem Token kannst du dann eine Weile lang was machen |
AW: OAuth2 erste Schritte
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. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz