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.](../../Resources/Images/diag4_assertion_granttype.png)
Neste fluxo OAuth:
-
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 -
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.
-
O Servidor de Autorização retorna o token de acesso ao aplicativo cliente.
-
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).
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.-
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
-
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.
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'
-
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.
-
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.
-
O usuário pode acessar um aplicativo OPC de outro aplicativo OPC.