Televizorji, konzole in orodja ukazne vrstice
Televizor težko prikaže stran za prijavo, orodje ukazne vrstice pa ne bi smelo zahtevati gesla. S potekom za naprave naprava prikaže kratko kodo, oseba pa jo vnese v Lobby svojega okolja v telefonu ali računalniku, kjer je že prijavljena.
Registrirajte aplikacijo
V Usher Console odprite okolje, nato Aplikacije → Nova aplikacija → Televizor ali ukazna vrstica. Aplikacija dobi ID odjemalca in nobene skrivnosti: naprava je ne more varno hraniti.
Potek
# 1. the device asks for a code
curl -s -X POST https://acme.usherid.com/api/auth/device/code \
-d client_id=YOUR_CLIENT_ID -d scope='openid email offline_access'
# → { "device_code": "…", "user_code": "6L95PBQQ",
# "verification_uri": "https://acme.usherid.com/device",
# "verification_uri_complete": "https://acme.usherid.com/device?user_code=6L95PBQQ",
# "expires_in": 600, "interval": 5 }
# 2. it shows the code (and a QR code of verification_uri_complete), then polls
curl -s -X POST https://acme.usherid.com/api/auth/oauth2/token \
-d grant_type=urn:ietf:params:oauth:grant-type:device_code \
-d device_code=… -d client_id=YOUR_CLIENT_ID
# → { "error": "authorization_pending" } until the person allows it,
# then { "access_token": "…", "id_token": "…", "refresh_token": "…" }- Sprašujte vljudno. Med poizvedbami počakajte
intervalsekund. Na hitrejše poizvedovanje je odgovorslow_down. - Ustavite se, ko vam rečejo.
access_deniedpomeni, da je oseba zavrnila;expired_tokenpomeni, da je minilo deset minut. Zahtevajte novo kodo. - Prikažite tudi naslov. Ne more vsak skenirati kode QR: prikažite
verification_uriin kodo, razmaknjeno kot6L95-PBQQ.
Na /device Lobby osebi pokaže, katera aplikacija sprašuje in za kaj. Pove ji, naj nadaljuje samo, če je postopek začela sama in njena naprava prikazuje isto kodo.
Vežite žetone na napravo (DPoP)
Žeton, kopiran z naprave, je še vedno žeton. Z DPoP (RFC 9449) naprava hrani zasebni ključ in z vsako zahtevo pošlje svež podpisan dokaz. Žeton, vezan na ta ključ, je brez njega neuporaben.
- Zahtevajte vezane žetone: z zahtevami za žetone pošljite glavo
DPoPin Usher tisto, kar izda, veže na vaš ključ (token_typejeDPoP). - Obvezno jih zahtevajte: ko ustvarite aplikacijo, vklopite Zahtevaj DPoP. Usher ji nato ne izda nobenega žetona brez dokaza.
- Uporabljajte jih z
Authorization: DPoP <token>in dokazom za to zahtevo. - Knjižnice: večina knjižnic OAuth s podporo za DPoP vse to naredi namesto vas (na primer možnost
DPoPvopenid-client).