OAuth/OIDC における mTLS
- クライアント認証の手段として、共有の を使用すること。
- が意図しない第三者に使用される可能性があること。

/oauth/token エンドポイントを呼び出すと、生成されるアクセストークンには、クライアントの TLS 証明書がアクセストークンに対応する証明書と一致していることをリソースサーバーが検証するための情報が含まれます。

Auth0 における mTLS
cname-api-key とともに HTTP ヘッダーに含められます。

https://<custom-domain>/.well-known/openid-configuration
リクエストが成功すると、OIDC ディスカバリー ドキュメント、つまり mTLS 関連の項目を含む認可サーバーのプロパティとエンドポイントを一覧化した JSON オブジェクトが返されます。
mTLS クライアント認証が有効な場合、OIDC ディスカバリー ドキュメントには token_endpoint_auth_methods_supported プロパティが含まれ、その値は tls_client_auth または self_signed_tls_client_auth のいずれかです:
tls_client_certificate_bound_access_tokens プロパティが true に設定されます:
mtls_endpoint_aliases が公開されます。mTLS をサポートするクライアントでは、mtls_endpoint_aliases に記載されているエンドポイントが、mtls_endpoint_aliases の外部に公開されている同じエンドポイントよりも優先されます。
次のコードサンプルでは、token_endpoint プロパティが 2 回公開されています。mTLS 呼び出しに使用するエンドポイントは mtls_endpoint_aliases に記載されている https://mtls.auth.bank.com/oauth/token です。
mtls_endpoint_aliases に記載されていない場合は、mtls_endpoint_aliases の外側に記載されている同じエンドポイントを使用します。上記の例では、pushed_authorization_request_endpoint は mtls_endpoint_aliases に記載されていません。そのため、mtls_endpoint_aliases の外側で公開されている pushed_authorization_request_endpoint (https://auth.bank.com/oauth/par) を使用します。
詳細については、RFC 8705 のエンドポイントエイリアスに関するセクションを参照してください。
リソースサーバーを呼び出す
tls_client_certificate_bound_access_tokens プロパティを含む OIDC ディスカバリードキュメントを返します。
クライアントが mTLS にバインドされたアクセストークンを使用してリソースサーバーを呼び出すと、リソースサーバーは TLS ハンドシェイク中にクライアントに mTLS 証明書の提示を要求します。リソースサーバーは、クライアント証明書と一致しないアクセストークンを使用したリクエストを、HTTP ステータスコード 401 と invalid_token エラーコードで拒否する必要があります。詳しくは、送信者制約のためにリソースサーバーを設定するを参照してください。