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 d'approbation 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 Type d'autorisation d'accès aux données d'identification du mot de passe du responsable de la ressource.

Diagramme illustrant le flux de type d'octroi de données d'identification par mot de passe du responsable de la ressource.

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 d'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 Disponibles
Nécessite l'authentification client Nombre
Nécessite que le client ait connaissance des données d'identification de l'utilisateur Oui
Interaction avec l'utilisateur final à partir d'un navigateur Nombre
Peut utiliser un fournisseur d'identités externe pour l'authentification Nombre
Le jeton d'actualisation 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 (utilisateur) du responsable de la ressource.

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'octroi.

  • 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 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_'
  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 de domaine d'identité accordés à l'application client requérante et à l'utilisateur spécifié par la demande du client (le cas échéant).

    Note

    Si une demande a été soumise pour une portée 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.