Português (Brasil)
  • oauth
  • fluxo de dispositivo
  • cli
  • autenticação
  • código do dispositivo

Uma breve introdução ao fluxo de dispositivo OAuth 2.0

Este artigo explora o fluxo de dispositivo OAuth 2.0, uma solução para autenticação de identidade em dispositivos que, ou não possuem 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.

Yijun
Yijun
Developer

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 usuário autentica sua identidade dentro de um aplicativo usando o Fluxo de Código de Autorização, o aplicativo abrirá um navegador do dispositivo para acessar o ponto de acesso de autorização, e então o usuário irá inserir seus identificadores (nome de usuário, e-mail, etc.) e credenciais (senha, código de verificação, etc.) para completar a autenticação.

No entanto, quando um usuário tenta usar um aplicativo em um dispositivo que não possui um navegador ou mesmo a capacidade de inserir suas credenciais de conta, como podemos realizar a autenticação de identidade através do OAuth 2.0? E é aí que o “fluxo de dispositivo“ entra em ação.

O que é o fluxo de dispositivo OAuth 2.0

O fluxo de dispositivo OAuth 2.0 é uma implementação do protocolo OAuth 2.0 projetada para dar suporte a dispositivos que têm capacidades limitadas de entrada ou carecem de um navegador adequado. Estes dispositivos incluem TVs inteligentes, dispositivos IoT, impressoras, etc..

O fluxo de dispositivo permite aos usuários iniciar pedidos de autorização nos dispositivos mencionados, e, posteriormente, o usuário pode revisar o pedido de autorização e completar a autorização do usuário através de outro dispositivo com acesso a navegador e capacidades de entrada, como um smartphone ou computador pessoal.

Além disso, o fluxo de dispositivo é frequentemente usado por ferramentas CLI (como aquelas fornecidas pelo Stripe, Github, Cloudflare), porque ferramentas CLI geralmente são executadas em sistemas operacionais sem interface gráfica.

Fluxo de interação do usuário ao usar o fluxo de dispositivo

Quando um usuário usa o fluxo de dispositivo para autenticação, ele inclui principalmente os seguintes passos:

  1. O cliente do dispositivo solicita autorização ao servidor de autorização com um identificador de cliente (geralmente o id do cliente na plataforma do servidor de autorização).
  2. O servidor de autorização responde ao cliente do dispositivo com código do dispositivo, código do usuário e URI de verificação.
  3. O cliente do dispositivo exibe a URI de verificação e o código do usuário para o usuário na forma de texto (ou um código QR, etc.), instruindo o usuário a visitar a URI e inserir o código.
  4. Ao mesmo tempo que o passo 3, o cliente do dispositivo começa a pesquisar por tokens de acesso com código do dispositivo e identificador de cliente no servidor de autorização e começa a esperar que o usuário revise a solicitação de autorização e complete a autorização do usuário.
  5. O usuário visita a URI de verificação hospedada pelo servidor de autorização, por meio de um navegador em outro dispositivo, e insere o código do usuário.
  6. O servidor de autorização redireciona o usuário para a página de login e instrui o usuário a completar o login.
  7. O usuário completou o fluxo de login e fez login com sucesso.
  8. O servidor de autorização redireciona o usuário para a página de sucesso do login e instrui o usuário a fechar o navegador.
  9. Ao mesmo tempo que o passo 8, o servidor de autorização retorna tokens de acesso para o cliente do dispositivo já que o cliente tem estado pesquisando desde o passo 4.

Após esses processos, o cliente do dispositivo estará apto a obter o token de acesso para serviços subsequentes!

Resumo

Como você observou, o fluxo de dispositivo OAuth 2.0 fornece um método de login amigável para dispositivos que não têm capacidades de entrada fácil ou um navegador. Isso é crucial para dispositivos como TVs inteligentes, dispositivos IoT, e ferramentas CLI que funcionam em dispositivos sem interface gráfica.

Novidades empolgantes estão por vir, pois o Logto está no processo de dar suporte ao recurso de fluxo de dispositivo. Fique atento e manteremos você atualizado com as últimas novidades.