Device Flow (OAuth 2.0 Device Authorization Grant)

Table of Contents

O que é Device flow?

RFC 8628 (Concessão de autorização de dispositivo OAuth 2.0) é um padrão proposto, publicado pela IETF em agosto de 2019. Ele define um fluxo de autorização (Fluxo de dispositivo) para emitir tokens de acesso para clientes API em execução em dispositivos sem navegadores da Web e / ou que têm capacidade limitada para inserir texto, com o consentimento do usuário final.

Como funciona

O fluxo do dispositivo implica as seguintes pré-condições.

  • O usuário pode usar dispositivos com navegadores da Web (por exemplo, PC, smartphones, tablets)
  • Cliente (por exemplo, TV, aparelhos) é um dispositivo que pode estabelecer uma conexão de saída com a Internet
  • Servidor de autorização (por exemplo, provedores de serviços de streaming) expõe o endpoint de autorização do dispositivo aos clientes

Aqui está uma visão geral do fluxo:

  1. Cliente (dispositivo) envia uma solicitação de autorização do dispositivo para o endpoint de autorização do dispositivo no servidor de autorização.
  2. O Authorization Server responde uma resposta de autorização do dispositivo ao Cliente. A resposta contém os seguintes parâmetros principais:
    • user_code: um valor a ser enviado do usuário para o servidor de autorização.
    • device_code: um valor para o cliente enviar uma solicitação de token ao servidor de autorização.
  3. Cliente apresenta user_code ao usuário.
  4. Os seguintes processos são executados simultaneamente.
    • Cliente envia uma solicitação de token que inclui device_code para o Authorization Server. As mesmas solicitações são feitas periodicamente (ou seja, pesquisa) para o Authorization Server até que um token de acesso (ou um erro) seja retornado.
    • Usuário vai para o servidor de autorização usando um navegador da Web, autentica-se, envia user_code e concede acesso ao cliente.
  5. Authorization Server verifica o user_code, emite um token de acesso e envia uma resposta de token incluindo o token contra a solicitação de token que contém o device_code que corresponde ao user_code.

Como resultado do fluxo acima, o Cliente obtém o token de acesso para solicitações de API autorizadas.

Authlete e fluxo do dispositivo

Authlete [versão 2.1 e posterior suporta o fluxo do dispositivo] (https://docs.authlete.com/#device-flow). Os desenvolvedores podem simplesmente implementar seus servidores de autorização que suportam o fluxo do dispositivo, usando as seguintes APIs Authlete adicionadas ou aprimoradas a seguir.

  • API [/device/authorization] (https://docs.authlete.com/#device-authorization-api) (Novo)
    • Processando um pedido de autorização de dispositivo. Depois que um servidor de autorização recebe a solicitação de um cliente, ele encaminha o conteúdo da solicitação como um valor para esta API. Authlete inspeciona o conteúdo. Se for válido, Authlete cria outro conteúdo de uma resposta de autorização de dispositivo e o envia de volta ao servidor de autorização. O servidor de autorização passa a resposta de autorização do dispositivo de volta ao cliente.
  • API /device/verification (Novo)
    • Verificando user_code.
  • API [/device/complete] (https://docs.authlete.com/#device-complete-api) (Novo)
    • Processamento de aprovação / negação do fluxo contínuo do dispositivo. O resultado do processamento afeta uma resposta da API / auth / token.
  • API [/auth/token] (https://docs.authlete.com/#auth-token-api) (aprimorado)
    • Processamento de solicitações de token. Ele foi aprimorado para suportar grant_type = urn: ietf: params: oauth: grant-type: device_code e o parâmetro device_code correspondente.

Você pode gerenciar as configurações do fluxo do dispositivo usando o Console do proprietário do serviço.

Informação detalhada