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 auprès du serveur d'autorisation OAuth.
Le diagramme suivant présente le flux Client Credentials Grant Type.
Dans ce flux OAuth :
-
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.
-
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.
-
Le serveur d'autorisation retourne le jeton d'accès à l'application client.
-
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 l'authentification client | Oui |
| Requiert que le client connaisse les données d'identification de l'utilisateur | Nombre |
| Interaction de l'utilisateur final basée sur un navigateur | Nombre |
| Peut utiliser un fournisseur d'identités externe pour l'authentification | Nombre |
| Le jeton d'actualisation est autorisé | Nombre |
| Le jeton d'accès se trouve 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 d'octroi de données d'identification de client
Le type d'autorisation Données d'identification du client fournit un flux d'autorisation 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 la participation du responsable de la 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 des 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 responsable de ressource donné, 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 sécurisé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 d'accès aux données d'identification de client.
-
Sélectionnez Données d'identification de 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
-
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_' - L'application client demande un jeton d'accès au serveur d'autorisation OAuth.
- 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.
- L'application client utilise le jeton d'accès pour effectuer une demande.