Type de droit Données d'identification du client

Utilisez ce type d'autorisation 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 enregistrées avec le serveur d'autorisation OAuth.

Le diagramme suivant présente le flux Client Credentials Grant Type (Type d'octroi de données d'identification de client).

Diagramme qui illustre le flux de type d'octroi de données d'identification de client.

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 données d'identification pour obtenir un jeton d'accès et souvent un jeton d'actualisation. Ce jeton d'accès est associé aux ressources propres du client, et non à un responsable de ressource particulier, ou est associé à un responsable de ressource pour lequel l'application client est autorisée à agir.

  3. Le serveur d'autorisation retourne 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 Disponible
Nécessite l'authentification client Oui
Nécessite que le client connaisse les données d'identification de l'utilisateur Non
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é Non
Le jeton d'accès est dans le contexte de l'application client Oui

Voir Exemple de flux d'autorisation de type de droit Données d'identification du client pour un exemple de flux.

Exemple de flux d'autorisation de type de droit Données d'identification du client

Le type d'octroi Données d'identification du client fournit un flux d'octroi spécifique dans lequel le responsable de la ressource n'est pas impliqué. Dans cet exemple de scénario, l'application client exécute des processus qui n'ont pas de participation de responsable de ressource, par exemple, un processus par lots ou une tâche serveur-serveur.

Lors de l'utilisation de cette autorisation, l'application client demande un jeton d'accès avec ses propres données 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 mieux adapté lorsqu'un fournisseur de services souhaite fournir certaines méthodes d'API qui doivent être utilisées par l'application client en général, plutôt que des méthodes qui s'appliquent à un certain propriétaire de ressource, par exemple, des méthodes d'API pour la maintenance.

Lorsque vous créez une application à l'aide du type d'autorisation Données d'identification de client dans la console du domaine d'identité :

  • Spécifiez Application approuvée comme type d'application, car une application mobile/navigateur n'a pas de clé secrète client et ne peut pas utiliser l'autorisation Données d'identification de client.

  • Sélectionnez Données d'identification du client comme type d'autorisation.

Voir Type d'octroi de données d'identification de client pour plus d'informations sur le type d'octroi de données d'identification de client et un diagramme de flux d'autorisation.

Flux d'autorisation

  1. Un événement lancé par le client (par exemple, une tâche programmé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 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=client_credentials&scope=<scope value>'

    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=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>'

    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_'
  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 retourne un jeton d'accès contenant toutes les étendues applicables en fonction des privilèges représentés par les rôles d'application accordés à l'application client requérante.
  4. L'application client utilise le jeton d'accès pour effectuer une demande.