Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso

Use este tipo de concessão quando o proprietário do recurso tiver uma relação de confiança com o cliente, como um sistema operacional de computador ou um aplicativo altamente privilegiado, porque o cliente deve descartar a senha depois de usá-la para obter o token de acesso.

O diagrama a seguir exibe o fluxo Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso.

Um diagrama que ilustra o fluxo do Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso.

Neste fluxo OAuth:

  1. O usuário clica em um link no aplicativo cliente solicitando acesso a recursos protegidos.

  2. O aplicativo cliente solicita o nome de usuário e a senha do proprietário do recurso.

  3. O usuário se conecta com seu nome de usuário e senha.

  4. O aplicativo cliente troca essas credenciais por um token de acesso e, geralmente, um token de atualização, do Servidor de Autorização.

  5. O Servidor de Autorização retorna o token de acesso ao aplicativo cliente.

  6. O aplicativo cliente usa o token de acesso em uma chamada de API para obter dados protegidos, como uma lista de usuários.

Função Disponíveis
Requer autenticação de cliente Número
Requer que o cliente tenha conhecimento das credenciais do usuário Sim
Interação do usuário final baseada em navegador Número
Pode usar um Provedor de Identidades externo para autenticação Número
O token de atualização é permitido Sim
O token de acesso está no contexto do usuário final Sim

Consulte um exemplo Exemplo de Fluxo de Autorização do Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso.

Exemplo de Fluxo de Autorização do Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso

Este exemplo de fluxo de autorização orienta você na obtenção de um token de acesso usando as credenciais do proprietário (usuário) do recurso.

Quando você cria um aplicativo usando o tipo de concessão Proprietário do Recurso na Console do domínio de identidades:

  • Especifique Aplicativo Confiável como o tipo de aplicativo.

  • Selecione Proprietário do Recurso como o tipo de concessão.

  • Especifique o URI de Redirecionamento, onde as respostas às solicitações de autenticação são enviadas.

Consulte Tipo de Concessão de Credenciais de Senha do Proprietário do Recurso para obter mais informações sobre o tipo de concessão Credenciais de Senha do Proprietário do Recurso e um fluxograma de autorização.

Fluxo de Autorização

  1. Um usuário clica em um link no aplicativo cliente do servidor Web, solicitando acesso a recursos protegidos de um aplicativo de servidor Web de terceiros.

  2. O aplicativo cliente coleta o nome de usuário e a senha do usuário e solicita um token de acesso do Servidor de Autorização (AS) OAuth.

    O URL da solicitação contém parâmetros de consulta que indicam o tipo de acesso que está sendo solicitado:

    Exemplo de Solicitação Usando o Cabeçalho de Autorização

       curl -i
       -H 'Authorization: Basic <base64Encoded clientid:secret>'
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&scope=<scope value>'

    Exemplo de Solicitação Usando o Cabeçalho de Autorização Incluindo o Token de Atualização na Solicitação

       curl -i
       -H 'Authorization: Basic <base64Encoded clientid:secret>'
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&scope=<Resource Server Scope>%20offline_access'

    Exemplo de Solicitação Usando uma Asserção de Cliente JWT

       curl -i
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'

    Exemplo de Solicitação Usando uma Asserção de Cliente JWT Incluindo o Token de Atualização na Solicitação

       curl -i
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<Resource Server Scope>%20offline_access'
  3. O Servidor de Autorização OAuth retorna o token de acesso. O token de acesso contém todos os escopos aplicáveis com base nos privilégios representados pelas atribuições de aplicativo do domínio de identidades concedidas ao aplicativo cliente solicitante e ao usuário que está sendo especificado pela solicitação do cliente (se presente).

    Observação

    Se uma solicitação tiver sido feita para um escopo inválido, um erro será retornado em vez do token de acesso.
  4. O site solicitante usa o token de acesso em uma chamada de API para obter dados protegidos.