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.

Diagramme illustrant le type d'octroi d'authentification client TLS.
Dans ce flux OAuth :
Remarque

Prérequis : téléchargez le certificat client vers la banque de certificats client.
  1. 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.
  2. 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.
  3. Le serveur d'autorisation renvoie le jeton d'accès à l'application client uniquement après la validation du certificat.
  4. 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.

Lorsque vous créez une application à l'aide du type d'octroi Authentification client TLS dans la console du domaine d'identité :
  • 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.

  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 de requête qui indiquent le type d'accès demandé :

    Exemple de demande utilisant l'en-tête d'autorisation
    Remarque

    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_'
  2. L'application client demande un jeton d'accès à partir du serveur d'autorisation OAuth.
  3. Serveur d'autorisation OAuth :
    1. Authentifie l'application client en fonction du certificat envoyé dans le cadre de l'établissement de liaison TLS.
    2. 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.
  4. L'application client utilise le jeton d'accès pour effectuer une demande.