Krótkie wprowadzenie do przepływu urządzeń OAuth 2.0
Ten artykuł bada przepływ urządzeń OAuth 2.0, rozwiązanie do uwierzytelniania tożsamości na urządzeniach, które albo nie mają przeglądarki do przeprowadzania autoryzacji opartej na agencie użytkownika, albo mają ograniczone możliwości wprowadzania danych. Opisuje jego cel i przepływ interakcji użytkownika.
Jako framework autoryzacyjny, OAuth 2.0 jest szeroko stosowany w różnych scenariuszach. W procesach uwierzytelniania oferowanych przez OAuth najczęściej stosowanym jest Authorization Code Flow. Gdy użytkownik uwierzytelnia swoją tożsamość w aplikacji za pomocą Authorization Code Flow, aplikacja otwiera przeglądarkę z urządzenia, aby uzyskać dostęp do punktu końcowego autoryzacji, a następnie użytkownik wprowadza swoje identyfikatory (nazwę użytkownika, e-mail itp.) i poświadczenia (hasło, kod weryfikacyjny itp.), aby zakończyć uwierzytelnianie.
Jednak gdy użytkownik próbuje użyć aplikacji na urządzeniu, które nie ma przeglądarki ani nawet możliwości wprowadzania danych konta, jak możemy przeprowadzić uwierzytelnianie tożsamości za pomocą OAuth 2.0? I tutaj pojawia się „przepływ urządzeń“.
Czym jest przepływ urządzeń OAuth 2.0
Przepływ urządzeń OAuth 2.0 to implementacja protokołu OAuth 2.0 zaprojektowana w celu wsparcia urządzeń z ograniczonymi możliwościami wprowadzania danych lub brakiem odpowiedniej przeglądarki. Te urządzenia to m.in. smart TV, urządzenia IoT, drukarki itp..
Przepływ urządzeń umożliwia użytkownikom inicjowanie żądań autoryzacji na wspomnianych urządzeniach, a następnie użytkownik może przeglądać żądanie autoryzacji i zakończyć autoryzację użytkownika na innym urządzeniu z dostępem do przeglądarki i możliwościami wprowadzania, takim jak smartfon lub komputer osobisty.
Ponadto przepływ urządzeń jest często używany dla narzędzi wiersza poleceń (jak te oferowane przez Stripe, Github, Cloudflare), ponieważ narzędzia wiersza poleceń są często uruchamiane na systemach operacyjnych bez interfejsu graficznego.
Przepływ interakcji użytkownika podczas korzystania z przepływu urządzeń
Gdy użytkownik korzysta z przepływu urządzeń do uwierzytelniania, obejmuje on głównie następujące kroki:
- Klient urządzenia żąda autoryzacji od serwera autoryzacji z identyfikatorem klienta (zwykle identyfikatorem klienta na platformie serwera autoryzacji).
- Serwer autoryzacji odpowiada klientowi urządzenia kodem urządzenia, kodem użytkownika i URI weryfikacji.
- Klient urządzenia wyświetla URI weryfikacji i kod użytkownika użytkownikowi w formie tekstu (lub kodu QR itp.), instruując użytkownika, aby odwiedził URI i wprowadził kod.
- Jednocześnie w kroku 3 klient urządzenia rozpoczyna polling dla tokenów dostępu z kodem urządzenia i identyfikatorem klienta z serwera autoryzacji, zaczynając czekać na przegląd żądania autoryzacji i zakończenie autoryzacji użytkownika.
- Użytkownik odwiedza URI weryfikacji hostowane przez serwer autoryzacji za pomocą przeglądarki na innym urządzeniu i wprowadza kod użytkownika.
- Serwer autoryzacji przekierowuje użytkownika na stronę logowania i instruuje użytkownika, aby zakończył logowanie.
- Użytkownik zakończył proces logowania i zalogował się pomyślnie.
- Serwer autoryzacji przekierowuje użytkownika na stronę sukcesu logowania i instruuje użytkownika, aby zamknął przeglądarkę.
- Jednocześnie w kroku 8 serwer autoryzacji zwraca tokeny dostępu do klienta urządzenia, ponieważ klient wykonuje polling od kroku 4.
Po tych procesach klient urządzenia będzie w stanie uzyskać token dostępu do kolejnych usług!
Podsumowanie
Jak zauważyłeś, przepływ urządzeń OAuth 2.0 zapewnia przyjazny dla użytkownika sposób logowania dla urządzeń pozbawionych łatwych możliwości wprowadzania danych lub przeglądarki. Jest to kluczowe dla takich urządzeń jak smart TV, urządzenia IoT i narzędzia wiersza poleceń działające na urządzeniach bez interfejsu graficznego.
Czekają cię ekscytujące wiadomości, ponieważ Logto jest w trakcie wspierania funkcji przepływu urządzeń. Bądź na bieżąco, a będziemy cię informować o najnowszych aktualizacjach.