前提条件
- クライアントはファーストパーティ クライアントである必要があります。つまり、
is_first_party propertyがtrueである必要があります。 - クライアントは、有効な認証方式を備えたコンフィデンシャルクライアントである必要があります。つまり、
token_endpoint_auth_methodプロパティをnoneに設定してはいけません。 - クライアントは OIDC 準拠である必要があります。つまり、
oidc_conformantがtrueである必要があります。
- クライアント アプリケーションで Token Vault のグラントタイプを有効にします。
- クライアント アプリケーションに Private Key JWT または 相互 TLS 認証 を設定します。
クライアントアプリケーションを設定する
- サブジェクトトークンとして使用する署名付き JWT を検証するための公開鍵を指定します。
- クライアントがリクエストを送信できる IP アドレスを制限します。
- クライアントを、リクエストを許可する接続とスコープに関連付けます。
- Auth0 Dashboard
- Management API
- アプリケーション > アプリケーション に移動し、対象のアプリケーションを選択します。
- 設定 タブを選択し、Privileged Worker セクションまでスクロールして、Enable Privileged Worker をオンにします。モーダルで既存の公開鍵資格情報を選択するか、新しい資格情報をアップロードしてから、保存 を選択します。
- 資格情報を保存したら、IP Allowlist フィールドに少なくとも 1 つの IP アドレスまたは CIDR 範囲を入力します。
- Permissions で、Add Permission を選択します。ウィンドウで 接続 を選択し、この接続でリクエストできる スコープ を入力してから、保存 を選択します。許可する接続ごとに繰り返します。設定できるのは、合計で最大 5 つの権限と 20 個のスコープです。
- 変更を保存 を選択します。
- Permissions で参照されている各接続を、このアプリケーション用に有効にします。Authentication > [接続タイプ] に移動し、接続を選択して アプリケーション タブを開き、対象のアプリケーションに対して接続をオンにします。

ip_allowlist (Auth0 Dashboard では IP Allowlist) は、Privileged Worker の交換リクエストを送信できる IP アドレスを制限します。これにより、クライアント資格情報は既知のサーバー送信元 IP に関連付けられるため、資格情報が漏洩しても任意の IP アドレスから使用することはできません。IPv4 および IPv6 アドレスと CIDR 範囲がサポートされ、最大 10 件まで設定できます。
grants (Auth0 Dashboard ではPermissions) では、クライアントに対して特定の接続セットと、各接続で使用できる特定のスコープセットを指定します。grantsに記載されていない接続を対象とする Privileged Worker トークン交換リクエストは拒否されます。また、付与されたスコープよりも狭いスコープをリクエストした場合、アイデンティティプロバイダーがダウンスコーピングをサポートしていれば、Token Vault はその狭いスコープに制限されたトークンを返します。サポートしていない場合、付与済みのすべてのスコープを暗黙的に返すのではなく、リクエストは失敗します。設定できる接続は最大 5 件、スコープは全接続の合計で最大 20 件です。前述のとおり、記載する接続はクライアントで有効化されている必要があります。
クライアント設定の保存に
ip_allowlistとgrantsは必須ではありませんが、Privileged Worker Token Exchange を機能させるには両方を設定する必要があります。ip_allowlistに含まれない IP アドレスからのリクエスト、またはgrantsに含まれない接続やスコープに対するリクエストは拒否されます。署名付きJWTサブジェクトトークンを作成する
ペイロード
以下はJWTの例です。
audit_context には、個人を特定できる情報 (PII) を含めないでください。この値はテナントログに記録され、管理者やログストリーミングの送信先に表示される場合があります。