Uma breve introdução ao fluxo de dispositivos OAuth 2.0
Este artigo explora o fluxo de dispositivos OAuth 2.0, uma solução para autenticação de identidade em dispositivos que ou carecem de um navegador para realizar uma autorização baseada em agente de usuário ou têm limitações de entrada, delineando seu propósito e fluxo de interação do usuário.
Como uma estrutura de autorização, o OAuth 2.0 é amplamente utilizado em vários cenários. Nos fluxos de autenticação fornecidos pelo OAuth, o mais comum é o Fluxo de Código de Autorização. Quando um utilizador autentica a sua identidade numa aplicação usando o Fluxo de Código de Autorização, a app irá abrir um navegador a partir do dispositivo para acessar o endpoint de autorização, e então o utilizador irá inserir os seus identificadores (nome de utilizador, email, etc.) e credenciais (senha, código de verificação, etc.) para completar a autenticação.
No entanto, quando um utilizador tenta usar uma app num dispositivo que carece de um navegador ou até mesmo da capacidade de inserir as suas credenciais de conta, como podemos realizar a autenticação de identidade através do OAuth 2.0? É aqui que o “fluxo de dispositivos” entra em cena.
O que é o fluxo de dispositivos OAuth 2.0
O fluxo de dispositivos OAuth 2.0 é uma implementação do protocolo OAuth 2.0 projetada para suportar dispositivos que têm capacidades de entrada limitadas ou carecem de um navegador adequado. Esses dispositivos incluem TVs inteligentes, dispositivos IoT, impressoras, etc.
O fluxo de dispositivos permite que os utilizadores iniciem pedidos de autorização nos dispositivos mencionados, subsequentemente, o utilizador pode rever o pedido de autorização e completar a autorização do utilizador através de outro dispositivo com acesso ao navegador e capacidades de entrada, como um smartphone ou computador pessoal.
Além disso, o fluxo de dispositivos é frequentemente usado para ferramentas CLI (como aquelas fornecidas pela Stripe, Github, Cloudflare), porque ferramentas CLI geralmente são executadas em sistemas operativos sem uma interface gráfica.
Fluxo de interação do utilizador ao usar o fluxo de dispositivos
Quando um utilizador utiliza o fluxo de dispositivos para autenticação, inclui principalmente os seguintes passos:
- O cliente do dispositivo solicita autorização do servidor de autenticação com um identificador de cliente (geralmente o id do cliente na plataforma do servidor de autenticação).
- O servidor de autenticação responde ao cliente do dispositivo com código do dispositivo, código do utilizador e URI de verificação.
- O cliente do dispositivo exibe a URI de verificação e o código do utilizador para o utilizador na forma de texto (ou um código QR, etc.), instruindo o utilizador a visitar a URI e inserir o código.
- Ao mesmo tempo que o passo 3, o cliente do dispositivo começa a verificar periodicamente por tokens de acesso com código de dispositivo e identificador de cliente do servidor de autenticação e começa a esperar que o utilizador revise o pedido de autorização e complete a autorização do utilizador.
- O utilizador visita a URI de verificação hospedada pelo servidor de autenticação, através de um navegador em outro dispositivo, e insere o código do utilizador.
- O servidor de autenticação redireciona o utilizador para a página de login e instrui o utilizador a completar o login.
- O utilizador completa o fluxo de login e inicia sessão com sucesso.
- O servidor de autenticação redireciona o utilizador para a página de sucesso de login e instrui o utilizador a fechar o navegador.
- Ao mesmo tempo que o passo 8, o servidor de autenticação retorna tokens de acesso ao cliente do dispositivo, uma vez que o cliente está verificando desde o passo 4.
Após estes processos, o cliente do dispositivo será capaz de obter o token de acesso para serviços subsequentes!
Resumo
Como observaste, o fluxo de dispositivos OAuth 2.0 fornece um método de login amigável para dispositivos que carecem de capacidades de entrada fáceis ou um navegador. Isto é crucial para dispositivos como TVs inteligentes, dispositivos IoT, e ferramentas CLI que executam em dispositivos sem interface gráfica.
Novidades emocionantes aguardam à medida que o Logto está em processo de suportar a funcionalidade de fluxo de dispositivos. Fica atento e manter-te-emos atualizado com as últimas novidades.