Ugrás a tartalomhoz
Dokumentáció · TV-k és parancssori eszközök

TV-k, konzolok és parancssori eszközök

Egy TV nehezen tud bejelentkezési oldalt megjeleníteni, egy parancssori eszköznek pedig nem illik jelszót kérnie. Az eszközfolyamatban az eszköz egy rövid kódot mutat, az illető pedig beírja a környezete Lobbyjában a telefonján vagy a számítógépén, ahol már be van jelentkezve.

Regisztráld az appot

Az Usher Console-ban nyisd meg a környezetet, majd válaszd az Alkalmazások → Új alkalmazás → TV vagy parancssor lehetőséget. Az app ügyfél-azonosítót kap, titkos kulcsot nem: egy eszköz nem tudná titokban tartani.

A folyamat

Terminál
# 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": "…" }
  • Kérdezz le udvariasan. A lekérdezések között várj interval másodpercet. A túl gyakori lekérdezésre a válasz slow_down.
  • Állj meg, ha szólnak. Az access_denied azt jelenti, hogy az illető elutasította; az expired_token azt, hogy letelt a tíz perc. Kérj új kódot.
  • Mutasd a címet is. Nem mindenki tud QR-kódot beolvasni: jelenítsd meg a verification_uri címet és a kódot, tagolva, például 6L95-PBQQ.

A /device oldalon a Lobby megmutatja az illetőnek, melyik app kér hozzáférést, és mihez. Arra kéri, hogy csak akkor folytassa, ha ő maga indította a folyamatot, és az eszköze ugyanazt a kódot mutatja.

Kösd a tokeneket az eszközhöz (DPoP)

Egy eszközről lemásolt token is token. A DPoP-pal (RFC 9449) az eszköz egy privát kulcsot tart magánál, és minden kéréshez friss, aláírt igazolást küld. Az ehhez a kulcshoz kötött token nélküle használhatatlan.

  • Kérj kötött tokeneket: küldj DPoP fejlécet a tokenkéréseiddel, és az Usher a kiadott tokeneket a kulcsodhoz köti (a token_type értéke DPoP).
  • Tedd kötelezővé: az app létrehozásakor kapcsold be a DPoP megkövetelése beállítást. Ezután az Usher igazolás nélkül egyetlen tokent sem ad ki neki.
  • Használd őket az Authorization: DPoP <token> fejléccel, plusz egy igazolással az adott kéréshez.
  • Könyvtárak: a legtöbb DPoP-ot támogató OAuth-könyvtár mindezt elvégzi helyetted (például az openid-client DPoP beállítása).