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 d'approbation avec le client, telle qu'un système d'exploitation d'ordinateur ou une application à privilèges élevés, car le client doit supprimer 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 propriétaire de la ressource.

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

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

  5. Le serveur d'autorisation renvoie 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 une authentification client Non
Le client doit connaître les informations d'identification utilisateur Oui
Interaction de l'utilisateur final basée sur un navigateur Non
Peut utiliser un fournisseur d'identités externe pour l'authentification Non
Jeton d'actualisation autorisé Oui
Le jeton d'accès se trouve dans le contexte de l'utilisateur final Oui

Reportez-vous à un exemple de exemple de flux d'autorisation de type d'octroi d'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 de propriétaire de 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é, procédez comme suit :

  • Indiquez Application sécurisée 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 et le diagramme de flux d'autorisation, reportez-vous à Type d'octroi des informations d'identification de mot de passe de propriétaire de ressource.

Flux d'autorisation

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

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

    L'URL de 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 avec 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'
  3. 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 à l'origine de la demande et à l'utilisateur spécifié 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.
  4. Le site demandeur utilise le jeton d'accès dans un appel d'API pour obtenir des données protégées.