Type de droit Données d'identification avec mot de passe du responsable de la ressource

Utilisez ce type d'autorisation lorsque le responsable de la ressource a une relation de confiance avec le client, par exemple 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 Resource Owner Password Credentials Grant Type.

Diagramme illustrant le flux Resource Owner Password Credentials Grant Type.

Dans ce flux OAuth :

  1. L'utilisateur clique sur un lien dans l'application client pour demander l'accès aux ressources protégées.

  2. L'application client demande le nom utilisateur et le mot de passe du responsable de la ressource.

  3. L'utilisateur se connecte avec son nom d'utilisateur et son mot de passe.

  4. L'application client échange ces données d'identification contre un jeton d'accès, et souvent un jeton d'actualisation, à partir du serveur d'autorisation.

  5. Le serveur d'autorisation retourne le jeton d'accès à l'application client.

  6. 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 Non
Nécessite que le client ait connaissance des données d'identification de l'utilisateur Oui
Interaction de l'utilisateur final basée sur le navigateur Non
Peut utiliser un fournisseur d'identités externe pour l'authentification Non
Actualiser le jeton est autorisé Oui
Le jeton d'accès est dans le contexte de l'utilisateur final Oui

Voir un exemple de exemple de flux d'autorisation de type d'autorisation pour les données d'identification de mot de passe du responsable de la ressource.

Exemple de flux d'autorisation de type de droit Données d'identification avec mot de passe du responsable de la ressource

Cet exemple de flux d'autorisation vous guide tout au long de l'obtention d'un jeton d'accès à l'aide des données d'identification du responsable de la ressource (utilisateur).

Lorsque vous créez une application à l'aide du type d'autorisation Responsable de ressource dans la console du domaine d'identité :

  • Spécifiez Application approuvée comme type d'application.

  • Sélectionnez Responsable de la ressource comme type d'autorisation.

  • Spécifiez l'URI de redirection où les réponses aux demandes d'authentification sont envoyées.

Voir Type de droit Données d'identification avec mot de passe du responsable de la ressource pour plus d'informations sur le type de droit Données d'identification avec mot de passe du responsable de la ressource et un diagramme de flux d'autorisation.

Flux d'autorisation

  1. Un utilisateur clique sur un lien dans l'application client du serveur Web, demandant l'accès aux ressources protégées à partir d'une application de serveur Web tierce.

  2. L'application client collecte le nom d'utilisateur et le mot de passe de l'utilisateur et demande un jeton d'accès au serveur d'autorisation OAuth.

    L'URL de la demande contient des paramètres d'interrogation qui indiquent le type d'accès demandé :

    Exemple de demande à l'aide de 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 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 le 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_'
  3. Le serveur d'autorisation OAuth retourne le jeton d'accès. Le jeton d'accès contient toutes les étendues applicables en fonction des privilèges représentés par les rôles d'application du domaine d'identité accordés à l'application client requérante et de l'utilisateur spécifié par la demande du client (le cas échéant).

    Note

    Si une demande a été faite pour une étendue non valide, une erreur est retournée au lieu du jeton d'accès.
  4. Le site demandeur utilise le jeton d'accès dans un appel d'API pour obtenir des données protégées.