mTLS dans OAuth/OIDC
- L’utilisation d’un partagé comme mécanisme d’authentification de l’application.
- La possibilité qu’un soit utilisé par des tiers non autorisés.

/oauth/token sur le serveur d’autorisation au moyen d’une connexion mTLS, le jeton d’accès obtenu contient des informations que le serveur de ressources utilise pour vérifier que le certificat TLS de l’application correspond à celui associé au jeton d’accès.

mTLS chez Auth0
cname-api-key appropriée, conformément à la fonctionnalité des domaines personnalisés.

https://<custom-domain>/.well-known/openid-configuration
Si la requête réussit, elle renvoie le document de découverte OIDC, c’est-à-dire un objet JSON qui répertorie les propriétés et les points de terminaison du serveur d’autorisation, y compris ceux liés à mTLS.
Si l’authentification de l’application par mTLS est activée, le document de découverte OIDC inclut la propriété token_endpoint_auth_methods_supported, qui contient soit tls_client_auth, soit self_signed_tls_client_auth :
tls_client_certificate_bound_access_tokens sur true :
mtls_endpoint_aliases, qui contient une liste des points de terminaison compatibles avec mTLS. Pour les applications qui prennent en charge mTLS, les points de terminaison listés sous mtls_endpoint_aliases prévalent sur les mêmes points de terminaison exposés en dehors de mtls_endpoint_aliases.
Dans l’exemple de code suivant, la propriété token_endpoint est exposée deux fois. Le point de terminaison à utiliser pour les appels mTLS est celui indiqué sous mtls_endpoint_aliases, soit https://mtls.auth.bank.com/oauth/token :
mtls_endpoint_aliases, utilisez le même point de terminaison indiqué à l’extérieur de mtls_endpoint_aliases. Dans l’exemple ci-dessus, pushed_authorization_request_endpoint n’est pas répertorié dans mtls_endpoint_aliases. Par conséquent, utilisez le pushed_authorization_request_endpoint exposé à l’extérieur de mtls_endpoint_aliases, soit https://auth.bank.com/oauth/par.
Pour en savoir plus, consultez la section sur les alias de points de terminaison de la RFC 8705.
Appeler le serveur de ressources
tls_client_certificate_bound_access_tokens.
Lorsque l’application appelle le serveur de ressources avec un jeton d’accès lié à mTLS, le serveur de ressources demande un certificat mTLS à l’application pendant la négociation TLS. Le serveur de ressources doit rejeter les requêtes dont le jeton d’accès ne correspond pas au certificat client, avec un code d’état HTTP 401 et un code d’erreur invalid_token. Pour en savoir plus, consultez Configurer le serveur de ressources pour le sender constraining.