Lab · 08 / 16
Accedere senza tastiera.
Smart TV, console e CLI non possono mostrare una vera pagina di login. Mostrano invece un codice breve e l’utente approva da telefono o computer.
- TV
- un dispositivo senza tastiera
- IdP
- emette codici e token
- Phone
- dove l’utente fa l’accesso
- POST /device_authorization
Passo 1 di 5
La TV chiede un codice
In parole semplici La TV prende un numero, come al banco della gastronomia.
Il dispositivo si identifica con il suo client_id e gli scope che gli servono. Non può aprire un browser, quindi avvia un flusso diverso.
POST https://idp.example.com/device_authorization client_id=tv-app &scope=openid profile offline_access - user_code · device_code
Passo 2 di 5
Tornano due codici
In parole semplici Un codice è per te da leggere, l’altro resta segreto dentro la TV.
Lo user_code è breve e appare sullo schermo. Il device_code resta nella TV e serve dopo per ritirare i token. Entrambi scadono in pochi minuti.
{ "device_code": "GmRhmhcxhwAzkoEqiMEg_DnyEysNkuNhszIySk9eS", "user_code": "WDJB-MJHT", "verification_uri": "https://idp.example.com/device", "expires_in": 600, "interval": 5 } - inserisci WDJB-MJHT · approva
Passo 3 di 5
L’utente approva dal telefono
In parole semplici Vai allo sportello con il telefono, dai il numero e confermi che sei tu.
L’utente apre il link, digita il codice, accede con MFA e vede cosa chiede la TV. Gli attaccanti abusano di questo passo: mandano un codice vero e convincono la vittima ad approvarlo. Approva solo codici avviati da te.
- POST /token (polling)
Passo 4 di 5
La TV continua a chiedere
In parole semplici La TV continua a guardare il banco: "È pronto il mio numero?"
Ogni pochi secondi la TV chiede i token con il device_code. Finché l’utente non approva, l’IdP risponde authorization_pending; se la TV chiede troppo spesso, slow_down.
POST https://idp.example.com/token grant_type=urn:ietf:params:oauth:grant-type:device_code &device_code=GmRhmhcxhwAzkoEqiMEg_DnyEysNkuNhszIySk9eS &client_id=tv-app ← 400 { "error": "authorization_pending" } ← 400 { "error": "authorization_pending" } ← 200 { "access_token": "…", "refresh_token": "…" } - access_token + refresh_token
Passo 5 di 5
La TV ha fatto l’accesso
In parole semplici Chiamano il tuo numero: la TV riceve le chiavi e tu metti via il telefono.
Dopo l’approvazione, il polling successivo restituisce i token. Il refresh token permette alla TV di restare connessa per settimane senza chiedere di nuovo.
Flusso completato.
Domini e valori d’esempio. Nulla esce dal tuo browser.