Type d'octroi d'authentification client TLS

Utilisez le type d'octroi 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 inscrites auprès du serveur d'autorisation OAuth.

Le diagramme suivant présente le flux TLS Client Authentication Grant Type.

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 dans la banque de certificats client.
  2. Ce jeton d'accès demandé est associé aux propres ressources du client et non au propriétaire d'une ressource en particulier, ou à un propriétaire de ressource pour lequel 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 Disponibles
Nécessite une authentification client Oui
Le client doit connaître les informations d'identification utilisateur Non
Interaction de l'utilisateur final basée sur un navigateur Non
Peut utiliser un fournisseur d'identités externe pour l'authentification Non
Jeton d'actualisation 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 processus qui n'ont pas la participation du propriétaire des ressources, par exemple un processus en mode batch ou une tâche 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 pour le compte de l'application client elle-même. Ce flux d'octroi est le plus adapté lorsqu'un fournisseur de services veut fournir certaines méthodes d'API qui doivent être utilisées par l'application client en général, au lieu des 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é, procédez comme suit :
  • Indiquez le type d'application Confidential Application. 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 Authentification du client TLS comme type d'octroi.
  • Sélectionnez Sécurisé ou Confidentiel 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 à la section TLS Client Authentication Grant Type.

  1. Un événement lancé par le client (par exemple, une tâche planifié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 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 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 à l'origine de la demande.
  4. L'application client utilise le jeton d'accès pour effectuer une demande.