Svenska
  • oauth
  • device flow
  • cli
  • authentication
  • device code

En kort introduktion till OAuth 2.0 enhetsflöde

Den här artikeln utforskar OAuth 2.0 enhetsflöde, en lösning för identitetsautentisering på enheter som antingen saknar en webbläsare för att utföra användaragentbaserad auktorisering eller har begränsade inmatningsmöjligheter, och beskriver dess syfte och användarinteraktionsflöde.

Yijun
Yijun
Developer

Som ett auktoriseringsramverk är OAuth 2.0 allmänt använt i olika scenarier. I de autentiseringsflöden som tillhandahålls av OAuth är det vanligaste Authorization Code Flow. När en användare autentiserar sin identitet inom en applikation med Authorization Code Flow kommer appen att öppna en webbläsare från enheten för att komma åt auktoriseringsendpointen, och användaren kommer att ange sina identifierare (användarnamn, e-post, etc.) och referenser (lösenord, verifieringskod, etc.) för att slutföra autentiseringen.

Men när en användare försöker använda en app på en enhet som saknar en webbläsare eller till och med möjligheten att mata in sina kontouppgifter, hur kan vi utföra identitetsautentisering genom OAuth 2.0? Och det är här som “enhetsflödet“ kommer in i bilden.

Vad är OAuth 2.0 enhetsflöde

OAuth 2.0 enhetsflöde är en implementering av OAuth 2.0-protokollet utformad för att stödja enheter som har begränsade inmatningsmöjligheter eller saknar en lämplig webbläsare. Dessa enheter inkluderar smarta TV-apparater, IoT-enheter, skrivare, etc.

Enhetsflödet möjliggör för användare att initiera auktoriseringsförfrågningar på de nämnda enheterna och därefter, kan användaren granska auktoriseringsförfrågan och slutföra användarauktoriseringen via en annan enhet med webbläsartillgång och inmatningsmöjligheter, såsom en smartphone eller personlig dator.

Dessutom används enhetsflödet ofta för CLI-verktyg (som de som tillhandahålls av Stripe, Github, Cloudflare), eftersom CLI-verktyg ofta körs på operativsystem utan ett grafiskt gränssnitt.

Användarinteraktionsflöde när du använder enhetsflöde

När en användare använder enhetsflödet för autentisering, inkluderar det huvudsakligen följande steg:

  1. Enhetsklienten begär auktorisering från auktoriseringsservern med en klientidentifierare (vanligtvis klient-id på auktoriseringsserverplattformen).
  2. Auktoriseringsservern svarar till enhetsklienten med enhetskod, användarkod och verifikations-URI.
  3. Enhetsklienten visar verifikations-URI:n och användarkoden för användaren i form av text (eller en QR-kod, etc.) och instruerar användaren att besöka URI:n och ange koden.
  4. Samtidigt som steg 3, börjar enhetsklienten polling efter åtkomsttoken med enhetskod och klientidentifierare från auktoriseringsservern och börjar vänta på att användaren ska granska auktoriseringsförfrågan och slutföra användarauktoriseringen.
  5. Användaren besöker verifikations-URI:n som är värd av auktoriseringsservern, via en webbläsare på en annan enhet, och anger användarkoden.
  6. Auktoriseringsservern omdirigerar användaren till inloggningssidan och instruerar användaren att slutföra inloggningen.
  7. Användaren slutför inloggningsflödet och loggar in framgångsrikt.
  8. Auktoriseringsservern omdirigerar användaren till inloggningsframgångssidan och instruerar användaren att stänga webbläsaren.
  9. Samtidigt som steg 8, returnerar auktoriseringsservern åtkomsttoken till enhetsklienten eftersom klienten har varit i polling sedan steg 4.

Efter dessa processer kommer enhetsklienten att kunna erhålla åtkomsttoken för efterföljande tjänster!

Sammanfattning

Som du har observerat ger OAuth 2.0 enhetsflöde en användarvänlig inloggningsmetod för enheter som saknar enkla inmatningsmöjligheter eller en webbläsare. Detta är avgörande för enheter som smarta TV-apparater, IoT-enheter och CLI-verktyg som körs på enheter utan grafiska gränssnitt.

Spännande nyheter väntar då Logto är på väg att stödja enhetsflödesfunktionen. Håll utkik så håller vi dig uppdaterad med de senaste nyheterna.