Type d'octroi d'authentification client TLS
A utiliser le type d'octroi TLS (Transport Layer Security) lorsque la portée d'autorisation est limitée aux ressources couvertes par le contrôle du client, ou aux ressources inscrites auprès du serveur d'autorisation OAuth.
Le diagramme suivant présente le flux de type d'octroi d'authentification client TLS.
Prérequis : téléchargez le certificat client vers la banque de certificats client.
- Dans le cadre de l'établissement de liaison TLS, l'application client présente son propre certificat et son propre ID client pour obtenir un jeton d'accès. Remarque : Ce certificat doit correspondre au certificat du magasin de certificats client.
- Ce jeton d'accès est associé à des ressources propres du client et non pas à un propriétaire de ressource particulier, ou à un propriétaire de ressource pour le compte duquel l'application client est autorisée à agir autrement.
- Le serveur d'autorisation renvoie 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 | Disponible |
|---|---|
| Requiert l'authentification client | Oui |
| Le client doit connaître les informations d'identification utilisateur | Non |
| Interaction avec l'utilisateur final via navigateur | Non |
| Peut utiliser un fournisseur d'identités externe pour l'authentification | Non |
| Le jeton d'actualisation est 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'authentification client TLS.
Exemple de flux d'autorisation de type d'octroi d'authentification client TLS
Le type d'octroi Authentification client TLS (Transport Layer Security) fournit un flux d'octroi spécifique dans lequel le propriétaire de la ressource n'est pas impliqué. Dans ce scénario, l'application client exécute des traitements qui n'ont pas de participation de propriétaire de ressource, par exemple un traitement par lots ou une tâche de serveur à serveur.
Lorsque vous utilisez ce type d'octroi, l'application client demande un jeton d'accès avec son propre certificat (le certificat téléchargé dans le profil client) ainsi que l'ID client et utilise le jeton d'accès au nom 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, au lieu de méthodes d'API qui s'appliquent à un propriétaire de ressource donné, par exemple, les méthodes d'API pour la maintenance.
- Indiquez le type d'application Application confidentielle. Les applications mobiles/de navigateur n'ont pas de certificat client et ne peuvent pas utiliser le type d'octroi Authentification client TLS.
- Sélectionnez le type d'octroi Authentification client TLS.
- Sélectionnez Trusted ou Confidential comme type de client.
- Importez le certificat client. Ce certificat est utilisé pour valider la demande de jeton. Remarque : le client doit utiliser ce même certificat dans la demande de jeton.
Pour plus d'informations sur le type d'octroi d'authentification client TLS et un diagramme de flux d'autorisation, reportez-vous à Type d'octroi d'authentification client TLS.
-
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 de requête qui indiquent le type d'accès demandé :
Exemple de demande utilisant l'en-tête d'autorisationRemarque
cacert.crt est le certificat CA qui a signé le certificat du serveur pour ce TLS.
client.key est la clé privée du 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 avec mTLS
Pour savoir comment obtenir le fichier
secureDomainURL, reportez-vous à Types d'octroi 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 à partir du serveur d'autorisation OAuth.
- Serveur d'autorisation OAuth :
- Authentifie l'application client en fonction du certificat envoyé dans le cadre de l'établissement de liaison TLS.
- Renvoie un jeton d'accès contenant toutes les portées 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.