Eine kurze Einführung in den OAuth 2.0 Device Flow
Dieser Artikel untersucht den OAuth 2.0 Device Flow, eine Lösung für die Identitätsauthentifizierung auf Geräten, die entweder keinen Browser zum Durchführen einer Benutzeragenten-basierten Autorisierung haben oder in der Eingabe beschränkt sind, und skizziert seinen Zweck und den Nutzerinteraktionsfluss.
Als Autorisierungsframework wird OAuth 2.0 in verschiedenen Szenarien weit verbreitet eingesetzt. In den von OAuth bereitgestellten Authentifizierungsflüssen ist der häufigste der Authorization Code Flow. Wenn ein Benutzer seine Identität innerhalb einer Anwendung mit dem Authorization Code Flow authentifizieren möchte, öffnet die App einen Browser vom Gerät, um den Autorisierungsendpunkt zu erreichen, und danach gibt der Benutzer seine Identifikatoren (Benutzername, E-Mail usw.) und Anmeldeinformationen (Passwort, Verifizierungscode usw.) ein, um die Authentifizierung abzuschließen.
Aber wie kann man über OAuth 2.0 eine Identitätsauthentifizierung durchführen, wenn ein Benutzer versucht, eine App auf einem Gerät zu verwenden, das keinen Browser oder sogar die Möglichkeit hat, seine Kontodaten einzugeben? Und hier kommt der „Device Flow“ ins Spiel.
Was ist der OAuth 2.0 Device Flow?
Der OAuth 2.0 Device Flow ist eine Implementierung des OAuth 2.0 Protokolls, das entwickelt wurde, um Geräte zu unterstützen, die über eingeschränkte Eingabemöglichkeiten verfügen oder keinen geeigneten Browser haben. Diese Geräte umfassen Smart-TVs, IoT-Geräte, Drucker usw..
Der Device Flow ermöglicht es Benutzern, Autorisierungsanfragen auf den genannten Geräten zu initiieren. Anschließend kann der Benutzer die Autorisierungsanfrage überprüfen und die Benutzerautorisierung über ein anderes Gerät mit Browserzugang und Eingabemöglichkeiten, wie ein Smartphone oder einen persönlichen Computer, abschließen.
Außerdem wird der Device Flow häufig für CLI-Tools (wie diejenigen von Stripe, Github, Cloudflare bereitgestellt) verwendet, da CLI-Tools oft auf Betriebssystemen ohne grafische Oberfläche ausgeführt werden.
Nutzerinteraktionsfluss beim Verwenden des Device Flows
Wenn ein Benutzer den Device Flow zur Authentifizierung verwendet, umfasst es hauptsächlich die folgenden Schritte:
- Der Geräte-Client fordert die Autorisierung mit einem Client-Identifier vom Auth-Server an (normalerweise die Client-ID auf der Auth-Server-Plattform).
- Der Auth-Server antwortet dem Geräte-Client mit Gerätecode, Benutzercode und Verifizierungs-URI.
- Der Geräte-Client zeigt dem Benutzer die Verifizierungs-URI und den Benutzercode in Form von Text (oder einem QR-Code, usw.) an und weist den Benutzer an, die URI zu besuchen und den Code einzugeben.
- Gleichzeitig mit Schritt 3 beginnt der Geräte-Client mit der Abfrage nach Zugriffstoken mit Gerätecode und Client-Identifier vom Auth-Server und wartet darauf, dass der Benutzer die Autorisierungsanfrage überprüft und die Benutzerautorisierung abschließt.
- Der Benutzer besucht die vom Auth-Server gehostete Verifizierungs-URI über einen Browser auf einem anderen Gerät und gibt den Benutzercode ein.
- Der Auth-Server leitet den Benutzer zur Anmeldeseite weiter und fordert den Benutzer auf, sich anzumelden.
- Der Benutzer hat den Anmeldefluss abgeschlossen und sich erfolgreich angemeldet.
- Der Auth-Server leitet den Benutzer zur Erfolgsseite der Anmeldung weiter und weist ihn an, den Browser zu schließen.
- Gleichzeitig mit Schritt 8 gibt der Auth-Server die Zugriffstoken an den Geräte-Client zurück, da der Client seit Schritt 4 abfragt.
Nach diesen Prozessen kann der Geräte-Client das Zugriffstoken für nachfolgende Dienste erhalten!
Zusammenfassung
Wie du beobachtet hast, bietet der OAuth 2.0 Device Flow eine benutzerfreundliche Anmeldemethode für Geräte, denen einfache Eingabemöglichkeiten oder ein Browser fehlen. Dies ist entscheidend für Geräte wie Smart-TVs, IoT-Geräte und CLI-Tools, die auf Geräten ohne grafische Schnittstellen laufen.
Spannende Neuigkeiten stehen bevor, da Logto gerade dabei ist, die Unterstützung für die Device Flow-Funktion zu erweitern. Bleib dran und wir halten dich mit den neuesten Updates auf dem Laufenden.