Tipo de Concessão de Asserção
Use este tipo de concessão quando quiser usar um relacionamento de confiança existente expresso como uma asserção e sem uma etapa direta de aprovação do usuário no Servidor de Autorização OAuth.
O diagrama a seguir exibe o fluxo Tipo de Concessão de Asserção.
Neste fluxo OAuth:
-
Um usuário tenta acessar um aplicativo cliente, enviando uma asserção de usuário gerada.Observação
O processo de como a asserção é adquirida está fora do escopo desta explicação -
O aplicativo cliente solicita um token de acesso e, geralmente, um token de atualização, fornecendo uma asserção de usuário ou uma asserção de usuário de terceiros e credenciais de 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ível |
|---|---|
| Requer autenticação do cliente | Sim |
| Exige que o cliente saiba as credenciais do usuário | Não |
| 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ão |
| 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 será 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 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 querem poder acessar as propriedades do Oracle Cloud sem precisar passar pelo processo de autorização propriamente dito (autorização delegada).
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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 diagrama de fluxo 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_endpointna 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'Exemplo de Solicitação Usando mTLS
Para saber como obter o
secureDomainURL, consulte Tipos de Concessão de Acesso.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_' -
Um agente do Oracle Web Services Manager (cliente) intercepta o aplicativo cliente que faz 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 que contém 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.