Type de droit Assertion
Utilisez ce type d'autorisation lorsque vous souhaitez utiliser une relation de confiance existante exprimée en tant qu'assertion et sans étape d'approbation directe de l'utilisateur sur le serveur d'autorisation OAuth.
Le diagramme suivant présente le flux Assertion Grant Type (Type d'octroi d'assertion).

Dans ce flux OAuth :
-
Un utilisateur tente d'accéder à une application client en envoyant une assertion utilisateur générée.Note
Le processus d'acquisition de l'assertion n'est pas inclus dans cette explication -
L'application client demande un jeton d'accès, et souvent un jeton d'actualisation, en fournissant une assertion d'utilisateur ou une assertion d'utilisateur de tierce partie et des données d'identification de client.
-
Le serveur d'autorisation retourne le jeton d'accès à l'application client.
-
L'application client utilise le jeton d'accès dans un appel d'API pour obtenir des données protégées, telles qu'une liste d'utilisateurs.
Fonction | Disponible |
---|---|
Nécessite l'authentification client | Oui |
Nécessite que le client connaisse les données d'identification de l'utilisateur | Non |
Interaction de l'utilisateur final basée sur le navigateur Note : Le processus de génération de l'assertion peut impliquer une interaction de l'utilisateur. |
Non |
Peut utiliser un fournisseur d'identités externe pour l'authentification | Oui |
Actualiser le jeton est autorisé | Oui |
Le jeton d'accès est dans le contexte de l'utilisateur final Un jeton d'accès sera dans le contexte de l'objet de l'assertion, qui peut être un utilisateur final, un service ou le client lui-même. |
Peut-être |
Voir un exemple de flux d'autorisation Type d'octroi d'assertion.
Exemple de flux d'autorisation de type d'octroi d'assertion
Dans cet exemple de flux, Example.com s'est abonné à plusieurs applications Oracle Cloud PaaS et SaaS. Les utilisateurs Example.com veulent pouvoir accéder aux propriétés Oracle Cloud sans avoir à passer par le processus d'autorisation eux-mêmes (autorisation déléguée).
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser.-
Spécifiez Application mobile comme type d'application.
-
Sélectionnez Assertion comme type d'autorisation.
Voir Type d'autorisation d'assertion pour plus d'informations sur le type d'autorisation d'assertion et un diagramme de flux d'autorisation.
Flux d'autorisation
-
Un utilisateur tente d'accéder à une application client (telle que JCS).
L'URL contient des paramètres d'interrogation qui indiquent le type d'accès demandé. L'assertion SAML2 est encodée à Base64 et la valeur de destinataire dans l'assertion SAML doit être l'une des suivantes :
- Émetteur dans le champ Émetteur des paramètres OAuth de l'interface utilisateur.
- Ou,
https://<domainURL>/
. - Ou, la valeur de
secure_saml_sp_sso_endpoint
dans la réponse de détection.
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>'
Exemple de demande utilisant l'en-tête d'autorisation incluant le jeton d'actualisation dans la demande
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'
Exemple de demande utilisant une assertion de client 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>'
Exemple de demande à l'aide d'une assertion de client JWT incluant un jeton d'actualisation dans la demande
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'
Exemple de demande utilisant mTLS
Pour savoir comment obtenir
secureDomainURL
, voir Types d'autorisation d'accès.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_'
-
Un agent Oracle Web Services Manager (côté client) intercepte l'application client effectuant un appel d'API REST au serveur de ressources (applications Fusion) pour obtenir un jeton d'accès.
-
Le serveur d'autorisation OAuth authentifie l'application client en fonction de l'en-tête d'autorisation ou de l'assertion envoyée et retourne un jeton d'accès contenant toutes les étendues applicables en fonction des privilèges représentés par les rôles d'application accordés à l'application client requérante.
-
L'utilisateur peut accéder à une application OPC à partir d'une autre application OPC.