Skip to main content
Demonstrating Proof-of-Possession (DPoP) による 送信者制約 は、現在 Early Access です。この機能へのアクセスをリクエストするには、Auth0 の担当者にお問い合わせください。
送信者制約 は、アクセストークンと を、それらを取得した特定のクライアントアプリケーションに暗号学的に結び付けることで、トークンの盗難や不正使用を防ぐ および Connect (OIDC) のセキュリティメカニズムです。 Auth0 は、mTLS 送信者制約 と Demonstrating Proof-of-Possession (DPoP) をサポートしています。クライアントアプリケーションで 送信者制約 を有効にする場合は、API 呼び出し先の に対してもこれを強制する必要があります。 Auth0 で 送信者制約 を設定するには、次の作業が必要です。

仕組み

が Auth0 で送信者制約付きになるかどうかは、クライアントアプリケーションとリソースサーバーで送信者制約をどのように設定しているかによって決まります。
  1. 要求するオーディエンス: トークンリクエストで、要求するオーディエンスが /userinfo のみか、/userinfo エンドポイントでのみ使用することを意図しているか、または openid スコープも要求した場合に /userinfo を含む可能性があるカスタム API かによって、アクセストークンが送信者制約付きになるかどうかが変わります。
  2. クライアントアプリケーション: クライアントアプリケーションで送信者制約を required に設定しているかどうか。
  3. リソースサーバー: リソースサーバーで送信者制約を設定しているかどうか。
    1. none: リソースサーバーで送信者制約を設定していません。
    2. allowed: 送信者制約方式を設定して、リソースサーバーで送信者制約を有効にしています。
    3. required: リソースサーバーで送信者制約を必須に設定しています。つまり、アクセストークンはアプリケーションに対して送信者制約付きである必要があります。送信者制約方式の設定が必要です。
  • 所持証明: クライアントアプリケーションがトークンリクエストで所持証明アサーションを送信したかどうか。
    • mTLS 送信者制約: 所持証明は、TLS ハンドシェイク中にクライアントが特定の秘密鍵 (クライアント証明書に関連付けられたもの) を使用できることを正常に示すことで証明されます。
    • DPoP: 所持証明は、クライアントが自身の秘密鍵で暗号学的に署名して DPoP Proof JWT を作成し、関連付けられたアクセストークンを使用するすべてのリクエストの DPoP HTTP ヘッダーに DPoP Proof JWT を含めることで実現されます。
次の表は、さまざまなクライアントリクエストパラメーターと Auth0 リソースサーバーの設定に基づいて、アクセストークンがどのように発行されるか、および送信者制約付きかどうかを示しています。
要求するオーディエンスの種類クライアントで PoP が必須かクライアントが所持証明 (PoP) を送信したかAuth0 リソースサーバーポリシー: NoneAuth0 リソースサーバーポリシー: Allowed (必須ではない)Auth0 リソースサーバーポリシー: Required
Userinfo のみいいえいいえ発行される、送信者制約なしN/AN/A
Userinfo のみいいえはい発行される、送信者制約ありN/AN/A
Userinfo のみはいいいえ発行されないN/AN/A
Userinfo のみはいはい発行される、送信者制約ありN/AN/A
カスタム オーディエンス (Userinfo を含む場合がある)いいえいいえ発行される、送信者制約なし発行される、送信者制約なし発行されない
カスタム オーディエンス (Userinfo を含む場合がある)いいえはい発行される、送信者制約なし発行される、送信者制約あり発行される、送信者制約あり
カスタム オーディエンス (Userinfo を含む場合がある)はいいいえ発行されない発行されない発行されない
カスタム オーディエンス (Userinfo を含む場合がある)はいはい発行されない発行される、送信者制約あり発行される、送信者制約あり

クライアントアプリケーションの 送信者制約 を設定する

クライアントアプリケーションで 送信者制約 を必須にすると、アクセストークンはそのアプリケーションに制約されます。Auth0 はリクエストを検証し、トークンを要求したアプリケーションだけが、そのトークンを使用して関連リソースにアクセスできるようにします。 クライアントアプリケーションで 送信者制約 を必須に設定すると、リソースサーバーの設定時に 送信者制約方式 として mTLS または DPoP を指定できます。 クライアントアプリケーションの 送信者制約 は、 または を使用して設定できます。
  1. Dashboard > Applications > Applications に移動し、設定するアプリケーションを選択します。
  2. Settings で、Token Sender-Constraining までスクロールします。
  3. Require Sender Constraining をオンにします。アプリケーションの 送信者制約 必須設定を解除するには、オフにします。

リソースサーバーの送信者制約を設定する

Auth0 が発行するアクセストークンは、リソースサーバー上の API にアクセスする必要がある送信者 (つまりクライアントアプリケーション) に制約できます。 Auth0 Dashboard または Management API を使用して、リソースサーバーの送信者制約を設定できます。
トークンバインディングまたは送信者制約を有効にするには、API の API Settings を設定します。
  1. Auth0 Dashboard > Applications > APIs に移動します。
  2. 設定する API を選択します。
  3. Settings タブで、Token Sender-Constraining セクションを探します。
  4. 以下を設定します。
    1. Sender Constraining Method:
      1. None: リソースサーバーに対して送信者制約方式を有効にしません。
      2. mTLS: リソースサーバーの送信者制約方式として mTLS を有効にします。
      3. DPoP: リソースサーバーの送信者制約方式として DPoP を有効にします。
B. Require Token Sender Constraining をオンにします。この API 用にアプリケーションに発行されるすべてのアクセストークンは、そのアプリケーションに制約されます。
Auth0 Dashboard > APIs > Settings > トークン バインディング