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.

Schéma illustrant le type d'autorisation d'authentification de client TLS.
Dans ce flux OAuth :
Note

Préalable : Chargez le certificat de client dans le magasin de certificats de client.
  1. 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.
  2. 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.
  3. Le serveur d'autorisation retourne 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 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.

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

  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
    Note

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