Una breve introduzione al flusso del dispositivo OAuth 2.0
Questo articolo esplora il flusso del dispositivo OAuth 2.0, una soluzione per l'autenticazione dell'identità su dispositivi che o non hanno un browser per eseguire un'autorizzazione basata su user-agent, o sono limitati nell'input, evidenziandone lo scopo e il flusso di interazione con l'utente.
Come framework di autorizzazione, OAuth 2.0 è ampiamente utilizzato in vari scenari. Nei flussi di autenticazione forniti da OAuth, il più comune è il Authorization Code Flow. Quando un utente autentica la sua identità all'interno di un'applicazione utilizzando il Authorization Code Flow, l'app aprirà un browser dal dispositivo per accedere al punto di autorizzazione, e poi l'utente inserirà i suoi identificatori (nome utente, email, ecc.) e credenziali (password, codice di verifica, ecc.) per completare l'autenticazione.
Tuttavia, quando un utente cerca di usare un'app su un dispositivo che manca di un browser o perfino della capacità di inserire le credenziali del proprio account, come possiamo eseguire l'autenticazione dell'identità tramite OAuth 2.0? Ed è qui che entra in gioco il “flusso del dispositivo“.
Che cos'è il flusso del dispositivo OAuth 2.0
Il flusso del dispositivo OAuth 2.0 è un'implementazione del protocollo OAuth 2.0 progettata per supportare dispositivi che hanno capacità di input limitate o non dispongono di un browser adatto. Questi dispositivi includono smart TV, dispositivi IoT, stampanti, ecc..
Il flusso del dispositivo consente agli utenti di avviare richieste di autorizzazione sui dispositivi menzionati; successivamente, l'utente può esaminare la richiesta di autorizzazione e completare l'autorizzazione utente tramite un altro dispositivo con accesso al browser e capacità di input, come uno smartphone o un computer personale.
Inoltre, il flusso del dispositivo è spesso usato per strumenti CLI (come quelli forniti da Stripe, Github, Cloudflare), perché gli strumenti CLI sono spesso eseguiti su sistemi operativi senza interfaccia grafica.
Flusso di interazione dell'utente quando si usa il flusso del dispositivo
Quando un utente utilizza il flusso del dispositivo per l'autenticazione, include principalmente i seguenti passaggi:
- Il client dispositivo richiede l'autorizzazione dal server di autorizzazione con un identificatore del client (di solito l'id del client sulla piattaforma del server di autorizzazione).
- Il server di autorizzazione risponde al client dispositivo con codice dispositivo, codice utente e URI di verifica.
- Il client dispositivo visualizza l'URI di verifica e il codice utente all'utente sotto forma di testo (o un codice QR, ecc.), istruendo l'utente a visitare l'URI e inserire il codice.
- Contemporaneamente al passaggio 3, il client dispositivo inizia il polling per i token di accesso con codice dispositivo e identificatore del client dal server di autorizzazione e inizia ad aspettare che l'utente esamini la richiesta di autorizzazione e completi l'autorizzazione utente.
- L'utente visita l'URI di verifica ospitato dal server di autorizzazione, tramite un browser in un altro dispositivo, e inserisce il codice utente.
- Il server di autorizzazione reindirizza l'utente alla pagina di accesso e istruisce l'utente a completare l'accesso.
- L'utente ha completato il flusso di accesso ed è stato eseguito con successo l'accesso.
- Il server di autorizzazione reindirizza l'utente alla pagina di successo di accesso e istruisce l'utente a chiudere il browser.
- Contemporaneamente al passaggio 8, il server di autorizzazione restituisce i token di accesso al client dispositivo poiché il client sta effettuando il polling sin dal passaggio 4.
Dopo questi processi, il client dispositivo sarà in grado di ottenere il token di accesso per i servizi successivi!
Sommario
Come hai osservato, il flusso del dispositivo OAuth 2.0 fornisce un metodo di accesso user-friendly per dispositivi che mancano di capacità di input facili o di un browser. Questo è cruciale per dispositivi come smart TV, dispositivi IoT e strumenti CLI che funzionano su dispositivi senza interfacce grafiche.
Novità entusiasmanti attendono poiché Logto sta per supportare la funzione di flusso del dispositivo. Rimani sintonizzato e ti terremo aggiornato con le ultime novità.