Passer au contenu principal
La contrainte de l’émetteur est un mécanisme de sécurité d’ et d’ Connect (OIDC) qui lie cryptographiquement les jetons d’accès et les à l’application cliente précise qui les a obtenus, ce qui empêche leur vol et leur utilisation abusive. Auth0 prend en charge la contrainte de l’émetteur mTLS et Demonstrating Proof-of-Possession (DPoP). Si vous activez la contrainte de l’émetteur pour une application cliente, vous devez aussi l’appliquer au sur lequel vous effectuez des appels d’API. Pour configurer la contrainte de l’émetteur dans Auth0, vous devez :

Fonctionnement

sont soumis à une contrainte de l’émetteur dans Auth0 selon la façon dont vous configurez la contrainte de l’émetteur pour votre application cliente et votre serveur de ressources :
  1. Audience demandée : Dans une demande de jeton, le fait que l’audience demandée soit uniquement /userinfo, qu’elle soit destinée à être utilisée seulement avec le point de terminaison /userinfo, ou qu’il s’agisse d’une API personnalisée pouvant inclure /userinfo lorsque vous demandez aussi le scope openid, détermine si les jetons d’accès sont soumis à une contrainte de l’émetteur.
  2. Application cliente : Le fait que vous définissiez la contrainte de l’émetteur sur required pour l’application cliente.
  3. Serveur de ressources : Le fait que vous configuriez la contrainte de l’émetteur pour le serveur de ressources :
    1. none : Vous n’avez pas configuré de contrainte de l’émetteur pour le serveur de ressources.
    2. allowed : Vous avez configuré la contrainte de l’émetteur pour le serveur de ressources en définissant une méthode de contrainte de l’émetteur.
    3. required : Vous avez configuré la contrainte de l’émetteur comme obligatoire pour le serveur de ressources, ce qui signifie que les jetons d’accès doivent être liés à une application par une contrainte de l’émetteur. Vous pouvez exiger la contrainte de l’émetteur pour toutes les applications ou seulement pour les applications publiques. Nécessite une méthode de contrainte de l’émetteur.
Lorsque vous utilisez mTLS comme méthode de contrainte de l’émetteur, la contrainte de l’émetteur est toujours obligatoire pour toutes les applications. Les applications publiques ne sont pas prises en charge avec mTLS; vous ne pouvez donc pas limiter la contrainte de l’émetteur mTLS aux seuls clients publics.
  • Proof-of-Possession : Le fait que l’application cliente ait envoyé une preuve de possession dans la demande de jeton :
    • contrainte de l’émetteur mTLS : La preuve de possession est démontrée par la présentation réussie, par l’application, d’une clé privée précise (associée à un certificat client) pendant la négociation TLS.
    • DPoP : La preuve de possession est établie lorsque l’application crée un JWT de preuve DPoP en le signant de façon cryptographique avec sa clé privée et inclut le JWT de preuve DPoP dans l’en-tête HTTP DPoP de chaque requête où le jeton d’accès associé est utilisé.
Le tableau suivant décrit comment les jetons d’accès sont émis et s’ils sont soumis à une contrainte de l’émetteur selon différents paramètres de demande de l’application cliente et les configurations du serveur de ressources Auth0 :
Type d’audience demandéeL’application exige une PoP ?Proof-of-Possession (PoP) envoyée par l’application ?Stratégie du serveur de ressources Auth0 : NoneStratégie du serveur de ressources Auth0 : Allowed (Not Required)Stratégie du serveur de ressources Auth0 : Required
Userinfo seulementNonNonÉmis, sans contrainte de l’émetteurN/AN/A
Userinfo seulementNonOuiÉmis, soumis à une contrainte de l’émetteurN/AN/A
Userinfo seulementOuiNonNon émisN/AN/A
Userinfo seulementOuiOuiÉmis, soumis à une contrainte de l’émetteurN/AN/A
Audience personnalisée (peut contenir Userinfo)NonNonÉmis, sans contrainte de l’émetteurÉmis, sans contrainte de l’émetteurNon émis
Audience personnalisée (peut contenir Userinfo)NonOuiÉmis, sans contrainte de l’émetteurÉmis, soumis à une contrainte de l’émetteurÉmis, soumis à une contrainte de l’émetteur
Audience personnalisée (peut contenir Userinfo)OuiNonNon émisNon émisNon émis
Audience personnalisée (peut contenir Userinfo)OuiOuiNon émisÉmis, soumis à une contrainte de l’émetteurÉmis, soumis à une contrainte de l’émetteur

Configurer la contrainte de l’émetteur pour une application cliente

Lorsque vous exigez la contrainte de l’émetteur pour une application cliente, les jetons d’accès sont liés à cette application. Auth0 vérifie les requêtes pour s’assurer que seule l’application qui a demandé le jeton peut l’utiliser pour accéder à la ressource associée. Une fois la contrainte de l’émetteur exigée pour une application cliente, vous pouvez définir la méthode de contrainte de l’émetteur, soit mTLS ou DPoP, lors de la configuration de votre serveur de ressources. Vous pouvez configurer la contrainte de l’émetteur pour une application cliente à l’aide de l’ ou de la .
  1. Accédez à Dashboard > Applications > Applications. Sélectionnez l’application que vous souhaitez configurer.
  2. Sous Settings, faites défiler jusqu’à Token Sender-Constraining.
  3. Activez Require Sender Constraining. Désactivez cette option pour ne plus exiger la contrainte de l’émetteur pour l’application.

Configurer la contrainte de l’émetteur pour un serveur de ressources

Les jetons d’accès émis par Auth0 peuvent être liés à l’émetteur (c.-à-d. l’application cliente) qui doit accéder aux API d’un serveur de ressources. Vous pouvez configurer la contrainte de l’émetteur pour un serveur de ressources à l’aide de l’Auth0 Dashboard ou de la Management API.
Pour activer la liaison de jeton ou la contrainte de l’émetteur, configurez les API Settings de votre API.
  1. Accédez à Auth0 Dashboard > Applications > APIs.
  2. Sélectionnez l’API que vous voulez configurer.
  3. Dans l’onglet Settings, repérez la section Token Sender-Constraining.
  4. Configurez les éléments suivants :
    1. Méthode de contrainte de l’émetteur :
      1. None: N’activez aucune méthode de contrainte de l’émetteur pour votre serveur de ressources.
      2. mTLS: Activez mTLS comme méthode de contrainte de l’émetteur pour votre serveur de ressources.
      3. DPoP: Activez DPoP comme méthode de contrainte de l’émetteur pour votre serveur de ressources.
    2. Exiger la contrainte de l’émetteur du jeton : sélectionnez la stratégie de contrainte de l’émetteur qui s’applique à cette API :
      1. Always: Exigez la contrainte de l’émetteur pour toutes les applications. C’est la seule option offerte lorsque vous utilisez mTLS.
      2. For Public Applications: Exigez la contrainte de l’émetteur uniquement pour les applications publiques. Cette option n’est pas offerte lorsque vous utilisez mTLS.
      3. Never: La contrainte de l’émetteur n’est pas requise.
Auth0 Dashboard > APIs > Settings > liaison de jeton