Nederlands
  • oauth
  • apparaatstroom
  • cli
  • authenticatie
  • apparaatcode

Een korte introductie tot OAuth 2.0-apparaatstroom

Dit artikel verkent de OAuth 2.0-apparaatstroom, een oplossing voor identiteitsauthenticatie op apparaten die ofwel geen browser hebben om een op user-agent gebaseerde autorisatie uit te voeren, of beperkingen hebben in de invoer, waarbij het doel en het gebruikersinteractiestroom worden uitgelegd.

Yijun
Yijun
Developer

Als een autorisatieframework wordt OAuth 2.0 veelvuldig gebruikt in verschillende scenario's. In de authenticatiestromen die door OAuth worden geboden, is de meest voorkomende de Authorization Code Flow. Wanneer een gebruiker zijn identiteit binnen een applicatie authenticeren met de Authorization Code Flow, zal de app een browser openen vanaf het apparaat om toegang te krijgen tot het autorisatie-eindpunt, en vervolgens zal de gebruiker zijn identificatiegegevens (gebruikersnaam, e-mail, etc.) en referenties (wachtwoord, verificatiecode, etc.) invoeren om de authenticatie te voltooien.

Echter, wanneer een gebruiker probeert een app te gebruiken op een apparaat dat geen browser heeft of zelfs de mogelijkheid mist om hun accountgegevens in te voeren, hoe kunnen we dan identiteitsauthenticatie uitvoeren via OAuth 2.0? En dit is waar de "apparaatstroom" om de hoek komt kijken.

Wat is OAuth 2.0-apparaatstroom

De OAuth 2.0-apparaatstroom is een implementatie van het OAuth 2.0-protocol dat is ontworpen om apparaten te ondersteunen die beperkte invoercapaciteiten hebben of geen geschikte browser hebben. Deze apparaten omvatten smart-tv's, IoT-apparaten, printers, etc.

Apparaatstroom stelt gebruikers in staat om autorisatieaanvragen te starten op de genoemde apparaten, waarna de gebruiker de autorisatieaanvraag kan beoordelen en de gebruikersautorisatie kan voltooien via een ander apparaat met browsertoegang en invoercapaciteiten, zoals een smartphone of persoonlijke computer.

Bovendien wordt apparaatstroom vaak gebruikt voor CLI-tools (zoals die van Stripe, Github, Cloudflare), omdat CLI-tools vaak draaien op besturingssystemen zonder een grafische interface.

Gebruikersinteractiestroom bij gebruik van apparaatstroom

Wanneer een gebruiker de apparaatstroom gebruikt voor authenticatie, omvat dit voornamelijk de volgende stappen:

  1. De apparaatclient vraagt autorisatie van de auth-server met een client-identificatie (meestal het client-id op het auth-serverplatform).
  2. De auth-server reageert naar de apparaatclient met apparaatcode, gebruikercode en verificatie-URI.
  3. De apparaatclient toont de verificatie-URI en gebruikercode aan de gebruiker in de vorm van tekst (of een QR-code, etc.), en instrueert de gebruiker om de URI te bezoeken en de code in te voeren.
  4. Tegelijkertijd met stap 3, begint de apparaatclient te polleren voor toegangstokens met apparaatcode en client-identificatie van de auth-server en begint de gebruiker te wachten om de autorisatieaanvraag te beoordelen en de gebruikersautorisatie te voltooien.
  5. De gebruiker bezoekt de verificatie-URI gehost door de auth-server, via een browser op een ander apparaat, en voert de gebruikercode in.
  6. De auth-server leidt de gebruiker om naar de inlogpagina en instrueert de gebruiker om in te loggen.
  7. De gebruiker voltooide de inlogprocedure en is succesvol ingelogd.
  8. De auth-server leidt de gebruiker om naar de inlogsuccespagina en instrueert de gebruiker om de browser te sluiten.
  9. Tegelijkertijd met stap 8, geeft de auth-server toegangstokens terug aan de apparaatclient aangezien de client sinds stap 4 heeft gepoll.

Na deze processen zal de apparaatclient in staat zijn om het toegangstoken te verkrijgen voor volgende diensten!

Samenvatting

Zoals je hebt kunnen zien, biedt de OAuth 2.0-apparaatstroom een gebruiksvriendelijke inlogmethode voor apparaten die niet eenvoudig kunnen invoeren of geen browser hebben. Dit is cruciaal voor apparaten zoals smart-tv's, IoT-apparaten en CLI-tools die draaien op apparaten zonder grafische interfaces.

Spannend nieuws wacht, want Logto is bezig met het ondersteunen van de apparaatstroomfunctie. Blijf op de hoogte en we zullen je op de hoogte houden van de laatste updates.