Type d'octroi des informations d'identification client

Utilisez ce type d'octroi lorsque la portée d'autorisation est limitée aux ressources protégées sous le contrôle du client, ou aux ressources protégées inscrites auprès du serveur d'autorisation OAuth.

Le diagramme suivant présente le flux Client Credentials Grant Type.

Diagramme illustrant le flux Client Credentials Grant Type.

Dans ce flux OAuth :

  1. Un événement lancé par le client (par exemple, une mise à jour en arrière-plan programmée pour une application sur votre appareil mobile) demande l'accès à une ressource protégée à partir d'une application client OAuth.

  2. L'application client présente ses propres informations d'identification pour obtenir un jeton d'accès et souvent un jeton d'actualisation. Ce jeton d'accès est associé aux propres ressources du client et non au propriétaire d'une ressource en particulier, ou à un propriétaire de ressource pour lequel l'application client est autorisée à agir autrement.

  3. Le serveur d'autorisation renvoie le jeton d'accès à l'application client.

  4. L'application client utilise le jeton d'accès dans un appel d'API pour mettre à jour l'application sur votre appareil.

Fonction Disponibles
Nécessite une authentification client Oui
Le client doit connaître les informations d'identification utilisateur Non
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é Non
Le jeton d'accès se trouve dans le contexte de l'application client Oui

Pour obtenir un exemple de flux, reportez-vous à Exemple de flux d'autorisation de type d'octroi d'informations d'identification client.

Exemple de flux d'autorisation de type d'octroi des informations d'identification client

Le type d'octroi Informations d'identification client fournit un flux d'octroi spécifique dans lequel le propriétaire de la ressource n'est pas impliqué. Dans cet exemple de scénario, l'application client exécute des processus qui n'ont pas la participation du propriétaire des ressources, par exemple un processus en mode batch ou une tâche serveur à serveur.

Lors de l'utilisation de cet octroi, l'application client demande un jeton d'accès avec ses propres informations d'identification (ID et clé secrète) ou une assertion, et utilise le jeton d'accès pour le compte de l'application client elle-même. Ce flux d'octroi est le plus adapté lorsqu'un fournisseur de services veut fournir certaines méthodes d'API qui doivent être utilisées par l'application client en général, au lieu de méthodes qui s'appliquent à un propriétaire de ressource donné, par exemple, les méthodes d'API pour la maintenance.

Lorsque vous créez une application à l'aide du type d'octroi Informations d'identification client dans la console du domaine d'identité :

  • Indiquez le type d'application Application sécurisée car une application mobile/navigateur n'a pas de clé secrète client et ne peut pas utiliser l'octroi Informations d'identification client.

  • Sélectionnez Informations d'identification client comme type d'octroi.

Pour plus d'informations sur le type d'octroi des informations d'identification client et un diagramme de flux d'autorisation, reportez-vous à Type d'octroi des informations d'identification client.

Flux d'autorisation

  1. Un événement lancé par le client (par exemple, une tâche planifiée) demande l'accès aux ressources protégées à partir d'une application client OAuth.

    L'URL de l'événement 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=client_credentials&scope=<scope value>'

    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=client_credentials&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'
  2. L'application client demande un jeton d'accès au serveur d'autorisation OAuth.
  3. 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 renvoie un jeton d'accès contenant toutes les portées applicables en fonction des privilèges représentés par les rôles d'application accordés à l'application client à l'origine de la demande.
  4. L'application client utilise le jeton d'accès pour effectuer une demande.