仕組み
-
要求された audience: token request で、要求された audience が
/userinfoのみか、/userinfoendpoint でのみ使用することを意図しているか、または openid scope も要求した場合に/userinfoを含む可能性があるカスタム API かによって、アクセストークンが送信者拘束されるかどうかが決まります。 -
クライアントアプリケーション: クライアントアプリケーションで送信者拘束を
requiredに設定しているかどうか。 -
リソースサーバー: リソースサーバーで送信者拘束を設定しているかどうか。
none: リソースサーバーで送信者拘束を設定していません。allowed: 送信者拘束方式を設定することで、リソースサーバーで送信者拘束を有効にしています。required: リソースサーバーで送信者拘束を必須として設定しており、アクセストークンはアプリケーションに送信者拘束されている必要があることを意味します。送信者拘束は、すべてのアプリケーションまたはパブリックアプリケーションのみに対して必須にできます。送信者拘束方式の設定が必要です。
送信者拘束方式として mTLS を使用する場合、送信者拘束は常にすべてのアプリケーションで必須になります。mTLS はパブリックアプリケーションをサポートしていないため、mTLS の送信者拘束をパブリッククライアントのみに限定することはできません。
-
Proof-of-Possession: token request で、クライアントアプリケーションが proof-of-possession アサーションを送信したかどうか。
- mTLS 送信者拘束: TLS ハンドシェイク中に、クライアントが特定の秘密キー (client certificate に関連付けられたもの) を正常に提示することで、proof of possession が示されます。
- DPoP: クライアントが自身の秘密キーで暗号学的に署名して DPoP Proof JWT を作成し、関連するアクセストークンを使用するすべての request の DPoP HTTP header に
DPoPProof JWT を含めることで、proof of possession が実現されます。
クライアントアプリケーションの送信者制約を設定する
- Auth0 Dashboard
- Management API
- Dashboard > Applications > Applications に移動し、設定するアプリケーションを選択します。
- 設定 の Token Sender-Constraining までスクロールします。
- Require Sender Constraining をオンにします。アプリケーションの送信者制約の必須設定を解除するには、オフにします。

リソースサーバーの送信者拘束を設定する
- Auth0 Dashboard
- Management API
トークンバインディングまたは送信者拘束を有効にするには、API の API Settings を設定します。
- Auth0 Dashboard > Applications > APIs に移動します。
- 設定する API を選択します。
- Settings タブで、Token Sender-Constraining セクションを探します。
-
次の項目を設定します。
-
Sender Constraining Method:
- None: リソースサーバーで送信者拘束方式を有効にしません。
- mTLS: リソースサーバーの送信者拘束方式として mTLS を有効にします。
- DPoP: リソースサーバーの送信者拘束方式として DPoP を有効にします。
-
Require Token Sender Constraining: この API に適用する送信者拘束ポリシーを選択します。
- Always: すべてのアプリケーションで送信者拘束を必須にします。mTLS を使用する場合に選択できるのはこのオプションのみです。
- For Public Applications: 公開アプリケーションでのみ送信者拘束を必須にします。このオプションは mTLS 使用時には利用できません。
- Never: 送信者拘束は必須ではありません。
-
Sender Constraining Method:
