Type d'autorisation d'authentification de client TLS
Utilisez le type d'autorisation TLS (Transport Layer Security) lorsque la portée d'autorisation est limitée aux ressources protégées sous le contrôle du client ou pour protéger les ressources enregistrées auprès du serveur d'autorisation OAuth.
Le diagramme suivant présente le flux TLS Client Authentication Grant Type.
Préalable : Chargez le certificat de client dans le magasin de certificats de client.
- Dans le cadre de l'établissement d'une liaison TLS, l'application client présente son propre certificat et son propre ID client pour obtenir un jeton d'accès. Note : Ce certificat doit correspondre au certificat dans le magasin de certificats client.
- Ce jeton d'accès demandé 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 uniquement après la validation du certificat.
- L'application client utilise le jeton d'accès dans un appel d'API pour mettre à jour l'application.
| 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 d'autorisation pour l'authentification de client TLS pour un exemple de flux.
Exemple de flux d'autorisation de type d'autorisation pour l'authentification de client TLS
Le type d'autorisation Authentification de client TLS (Transport Layer Security) fournit un flux d'autorisation spécifique dans lequel le responsable de la ressource n'est pas impliqué. Dans ce 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 ce type d'autorisation, l'application client demande un jeton d'accès avec son propre certificat (certificat chargé dans le profil de client) ainsi que l'ID client 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 d'API qui s'appliquent à un responsable de ressource donné, par exemple des méthodes d'API pour la maintenance.
- Spécifiez l'application confidentielle comme type d'application. Les applications mobiles/de navigateur n'ont pas de certificat de client et ne peuvent pas utiliser le type d'autorisation Authentification de client TLS.
- Sélectionnez Authentification de client TLS comme type d'autorisation.
- Sélectionnez Approuvé ou Confidentiel comme type de client.
- Importez le certificat de client. Ce certificat est utilisé pour valider la demande de jeton. Note : Le client doit utiliser ce même certificat dans la demande de jeton.
Voir Type d'autorisation d'authentification de client TLS pour plus d'informations sur le type d'autorisation Authentification de client TLS et un diagramme de 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'autorisationNote
cacert.crt est le certificat de l'autorité de certification qui a signé le certificat du serveur pour ce protocole TLS.
client.key est une clé privée de client.
client.crt est un certificat client.
curl -i --cacert cacert.crt --key client.key --cert client.crt -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=tls_client_auth&client_id=<client ID>&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 du certificat envoyé dans le cadre de l'établissement d'une liaison TLS.
- Retourne un jeton d'accès contenant toutes les étendues applicables en fonction des privilèges spécifié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.