Type d'octroi des informations d'identification de mot de passe de propriétaire de ressource
Utilisez ce type d'octroi lorsque le propriétaire de la ressource a une relation de confiance avec le client, telle qu'un système d'exploitation d'ordinateur ou une application à privilèges élevés, car le client doit abandonner le mot de passe après l'avoir utilisé pour obtenir le jeton d'accès.
Le diagramme suivant présente le flux Type d'octroi des informations d'identification de mot de passe du propriétaire de la ressource.
Dans ce flux OAuth :
-
L'utilisateur clique sur un lien dans l'application client demandant l'accès aux ressources protégées.
-
L'application client demande le nom utilisateur et le mot de passe du propriétaire de la ressource.
-
L'utilisateur se connecte avec son nom d'utilisateur et son mot de passe.
-
L'application client échange ces informations d'identification pour un jeton d'accès, et souvent un jeton d'actualisation, à partir du serveur d'autorisation.
-
Le serveur d'autorisation renvoie 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 |
|---|---|
| Requiert l'authentification client | Non |
| Le client doit connaître les informations d'identification de l'utilisateur | Oui |
| Interaction utilisateur via navigateur | Non |
| Peut utiliser un fournisseur d'identités externe pour l'authentification | Non |
| Le jeton d'actualisation est autorisé | Oui |
| Le jeton d'accès se trouve dans le contexte de l'utilisateur final | Oui |
Reportez-vous à un exemple Exemple de flux d'autorisation de type Informations d'identification de mot de passe de propriétaire de ressource.
Exemple de flux d'autorisation de type d'octroi des informations d'identification de mot de passe du propriétaire d'une ressource
Cet exemple de flux d'autorisation vous guide tout au long de l'obtention d'un jeton d'accès à l'aide des informations d'identification (utilisateur) du propriétaire de la ressource.
Lorsque vous créez une application à l'aide du type d'octroi Propriétaire de ressource dans la console du domaine d'identité :
-
Indiquez Trusted Application comme type d'application.
-
Sélectionnez le type d'octroi Propriétaire de ressource.
-
Indiquez l'URI de réacheminement où les réponses aux demandes d'authentification sont envoyées.
Pour plus d'informations sur le type d'octroi des informations d'identification de mot de passe du propriétaire d'une ressource et un diagramme de flux d'autorisation, reportez-vous à Type d'octroi des informations d'identification de mot de passe du propriétaire d'une ressource.
Flux d'autorisation
-
Un utilisateur clique sur un lien dans l'application client de serveur Web, demandant l'accès aux ressources protégées à partir d'une application de serveur Web tierce.
-
L'application client collecte le nom utilisateur et le mot de passe de l'utilisateur et demande un jeton d'accès à partir du serveur d'autorisation OAuth.
L'URL de la demande contient des paramètres de requête qui indiquent le type d'accès demandé :
Exemple de demande utilisant l'en-tête d'autorisation
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 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 utilisant une assertion 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 avec mTLS
Pour savoir comment obtenir le fichier
secureDomainURL, reportez-vous à Types d'octroi 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_' -
Le serveur d'autorisation OAuth renvoie le jeton d'accès. Le jeton d'accès contient toutes les portées applicables en fonction des privilèges représentés par les rôles d'application de domaine d'identité accordés à l'application client requérante et de l'utilisateur indiqué par la demande du client (le cas échéant).
Remarque
Si une demande a été faite pour une portée non valide, une erreur est renvoyée à la place du jeton d'accès. -
Le site demandeur utilise le jeton d'accès dans un appel d'API pour obtenir des données protégées.