Tipo de Concessão Implícita

Use esse tipo de concessão quando o aplicativo personalizado não puder manter as credenciais do cliente confidenciais e receber um token de acesso diretamente de uma solicitação de autorização, em vez de por meio de um código de autorização intermediário.

O diagrama a seguir exibe o fluxo Tipo de Concessão Implícita.

Um diagrama que ilustra o fluxo Tipo de Concessão Implícita.

Neste fluxo OAuth:

  1. Um aplicativo personalizado, por exemplo, é implementado em um aplicativo do cliente usando uma linguagem de script, como JavaScript, ou implementado para um dispositivo móvel. O usuário solicita autenticação e autorização por meio do aplicativo.

  2. O aplicativo cliente solicita que o usuário forneça suas credenciais.

  3. O usuário informa suas credenciais.

  4. Se autorizado, o usuário será redirecionado para um URL que contenha o token de acesso em um fragmento de URL.

  5. O aplicativo extrai o token de acesso do URL.

  6. O aplicativo usa o token de acesso em uma solicitação de recursos protegidos, como uma lista de usuários.

Função Disponíveis
Requer autenticação de cliente No
Exige que o cliente saiba as credenciais do usuário No
Interação do usuário final baseada em navegador Sim
Pode usar um Provedor de Identidades externo para autenticação Sim
O token de atualização é permitido No
O token de acesso está no contexto do usuário final Sim

Consulte um exemplo de fluxo de autorização Tipo de Concessão Implícito.

Exemplo de Fluxo de Autorização do Tipo de Concessão Implícita

Este exemplo de autorização de tipo de concessão Implícita descreve o fluxo de autorização para aplicativos implementados em um navegador da Web usando uma linguagem de script como JavaScript ou implementados em um dispositivo móvel. Um token de acesso é retornado ao cliente por meio de um redirecionamento do browser em resposta à solicitação de autorização do proprietário do recurso (em vez de um código de autorização intermediário).

Quando você cria um aplicativo para autorização de aplicativo do cliente na Console do domínio de identidades:

  • Especifique se este é um tipo de Aplicativo Móvel.

  • Selecione Implícito como o tipo de concessão. Este tipo de aplicativo não pode manter um segredo e é executado em um navegador da Web não autenticado ou em um dispositivo móvel.

Consulte Tipo de Concessão Implícita para obter mais informações sobre o tipo de concessão Implícita e um fluxograma de autorização.

Etapas de Processamento

  1. Um usuário clica em um link de acesso em seu aplicativo de navegador ou toca em um botão de acesso em seu dispositivo, solicitando acesso a recursos protegidos de um aplicativo cliente.

  2. O cliente redireciona o browser para o Servidor de Autorização OAuth com uma solicitação de autorização.

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

    Exemplo de Solicitação https://acme.identity.us.oraclecloud.com/oauth2/v1/authorize?client_id=<client-id>&response_type=token&redirect_uri=<client-redirect-uri>&scope=<scope>&nonce=<nonce-value>
    Observação

    Um valor nonce é uma string aleatória criptograficamente forte que você usa para evitar que respostas interceptadas sejam reutilizadas.
  3. Se o usuário ainda não tiver feito log-in, o Servidor de Autorização OAuth desafiará o usuário a se autenticar. O Servidor de Autorização OAuth autentica o usuário e fornece uma página de consentimento para o usuário autorizar o compartilhamento de informações.

  4. Depois que o usuário autoriza, o Servidor de Autorização OAuth redireciona o navegador para o site solicitante com um token de acesso.
    Observação

    Se o usuário não fizer a autenticação, será retornado um erro em vez do token de acesso.
  5. O token de acesso é retornado contendo todos os escopos aplicáveis com base nos privilégios representados pelas atribuições de aplicativo concedidas ao aplicativo cliente solicitante e o usuário que está sendo especificado pela solicitação do cliente (se presente).

  6. O site solicitante usa o token de acesso em uma chamada de API para obter dados protegidos.