Tipo de Concessão de Asserção

Use este tipo de concessão quando quiser usar uma relação de confiança existente expressa como asserção e sem uma etapa de aprovação direta do usuário no Servidor de Autorização OAuth.

O diagrama a seguir exibe o fluxo Tipo de Concessão de Asserção.

Um diagrama que ilustra o fluxo Tipo de Concessão de Asserção.

Neste fluxo OAuth:

  1. Um usuário tenta acessar um aplicativo cliente, enviando uma asserção de usuário gerada.
    Observação

    O processo de aquisição da asserção está fora do escopo desta explicação
  2. O aplicativo cliente solicita um token de acesso e, geralmente, um token de atualização, fornecendo uma declaração do usuário ou uma declaração de usuário de terceiros e as credenciais do cliente.

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

  4. 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 Sim
Exige que o cliente saiba as credenciais do usuário Número
Interação do usuário final baseada em navegador

Observação: O processo para gerar a asserção pode envolver a interação do usuário.

Número
Pode usar um Provedor de Identidades externo para autenticação Sim
O token de atualização é permitido Sim
O token de acesso está no contexto do usuário final

Um token de acesso estará no contexto do assunto da asserção, que pode ser um usuário final, um serviço ou o próprio cliente.

Talvez

Consulte um exemplo de fluxo de autorização do Tipo de Concessão de Asserção.

Exemplo de Fluxo de Autorização do Tipo de Concessão de Asserção

Neste fluxo de exemplo, Example.com se inscreveu em vários aplicativos PaaS e SaaS do Oracle Cloud. Os usuários do Example.com desejam poder acessar as propriedades do Oracle Cloud sem precisar passar pelo próprio processo de autorização (autorização delegada).

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
Quando você cria um aplicativo usando o tipo de concessão Asserção na Console do domínio de identidades:
  • Especifique Aplicativo Móvel como o tipo de aplicativo.

  • Selecione Asserção como o tipo de concessão.

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

Fluxo de Autorização

  1. Um usuário tenta acessar um aplicativo cliente (como JCS).

    O URL contém parâmetros de consulta que indicam o tipo de acesso que está sendo solicitado. A asserção SAML2 é codificada em Base64 e o valor do destinatário na asserção SAML deve ser um dos seguintes:

    • O emissor no campo Emissor das Configurações OAuth na interface do usuário.
    • Ou https://<domainURL>/.
    • Ou o valor de secure_saml_sp_sso_endpoint na resposta de descoberta.
    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 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'
  2. Um agente do Oracle Web Services Manager (lado do cliente) intercepta o aplicativo cliente fazendo uma chamada de API REST para o Servidor de Recursos (aplicativos Fusion) para obter um token de acesso.

  3. O Servidor de Autorização OAuth autentica o aplicativo cliente com base no cabeçalho de Autorização ou na asserção enviada e retorna um token de acesso contendo todos os escopos aplicáveis com base nos privilégios representados pelas atribuições de aplicativo concedidas ao aplicativo cliente solicitante.

  4. O usuário pode acessar um aplicativo OPC de outro aplicativo OPC.