Configuration du serveur de ressources pour la restriction de l’expéditeur
Lorsque vous activez la restriction de l’expéditeur pour une API, le serveur de ressources doit appliquer la restriction de l’expéditeur chaque fois que le client appelle le serveur de ressources avec un jeton d’accès lié à un certificat. Pour ce faire, le serveur de ressources :
demande le certificat du client à partir de la connexion mTLS établie;
vérifie que l’empreinte du certificat du client correspond à l’empreinte du jeton d’accès;
Pour configurer un serveur de ressources pour la restriction de l’expéditeur, voir Activer la restriction de l’expéditeur pour un serveur de ressources.
Vérification du certificat du client
Contrairement au serveur d’autorisation, le serveur de ressources ne doit vérifier que l’empreinte du certificat du client et non l’ensemble de sa chaîne de certificats. Pour la restriction de l’expéditeur par mTLS, le serveur de ressources examine la demande cnf
du jeton d’accès :
"cnf":{"x5t#S256":"A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0"}
Was this helpful?
Dans notre exemple de demande cnf
, x5t#S256
indique que le jeton d’accès est lié à un certificat client mTLS dont l’empreinte est A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0
. Pour réussir la vérification du certificat du client, le serveur de ressources doit vérifier que le certificat du client a une empreinte correspondante de A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0
. Pour en savoir plus sur la manière dont l’empreinte est calculée, lisez la section de la RFC 8705 Méthode de confirmation de l’empreinte du certificat JWT.
Si le certificat du client n’a pas été envoyé ou si l’empreinte du certificat du client ne correspond pas, le serveur de ressources rejette la demande en utilisant un code d’état HTTP 401
et un code d’erreur invalid_token
. Pour en savoir plus, lisez les sections de RFC 8705 Jetons d’accès liés au certificat du client Mutual-TLS et Serveurs de ressources.
Les serveurs de ressources qui font migrer progressivement leurs clients vers l’utilisation de mTLS peuvent souhaiter exposer leur API dans deux domaines : un domaine non mTLS pour les clients non mTLS et un domaine compatible mTLS pour les clients compatibles mTLS. Une autre solution consiste à créer un serveur de ressources mTLS uniquement entièrement séparé sur un domaine compatible mTLS.
Configuration de la restriction de l’expéditeur pour un serveur de ressources dans Auth0
Les jetons d’accès délivrés par Auth0 peuvent être limités à l’expéditeur (c’est-à-dire l’application cliente) qui doit accéder aux API d’un serveur de ressources.
Utilisez Auth0 Dashboard ou la Management API pour activer la restriction de l’expéditeur pour un serveur de ressources.
Pour activer l’association de jetons ou la contrainte d’expéditeur, configurez les API Settings (Réglages API) de votre API.
Allez à Auth0 Dashboard > Applications > API.
Sélectionnez l’API que vous souhaitez configurer.
Sous l’onglet Settings (Réglages), trouvez la section Token Sender-Constraining (Contrainte d’expéditeur par jeton).
Configurez les éléments suivants :
Méthode de contrainte d’expéditeur : None ou mTLS.
Require Token Sender Constraining (Exiger la contrainte d’expéditeur par jeton) : tous les jetons d’accès délivrés à une application pour cette API seront limités à cette application.

Pour activer la limitation de l’expéditeur avec Management API, envoyez une demande PATCH pour mettre à jour le serveur de ressources. Définissez les paramètres de l’objet proof_of_posession
comme suit :
Paramètre | Description |
---|---|
mechanism |
Définit la méthode de contrainte de l’expéditeur : none ou mtls |
required |
Si défini sur true , tous les jetons d’accès émis vers une application pour cette API seront contraints sur cette application. Si défini sur false , la contrainte de l’expéditeur n’est pas exigée pour l’application. |
L’exemple de code suivant est un exemple de corps de requête qui configure un serveur de ressources pour la limitation de l’expéditeur mTLS :
"proof_of_possession": {
"mechanism": "mtls",
"required": true
}
Was this helpful?