- クライアントの資格情報フロー:エージェントがサブジェクトになります。そのアイデンティティはトップレベルの
subクレームに示されます。 - 標準のログインフロー:ユーザーがサブジェクトになります。エージェントのアイデンティティは単一階層の
actクレームに示されます。 - On-Behalf-Of (OBO) トークン交換:ユーザーがサブジェクトのままです。エージェントのアイデンティティは
actクレームに示され、その中に発信元のクライアントを示すネストされたactが含まれます。
Auth0は、エージェントに紐づくクライアントでの
jwt_bearer付与をサポートしていません。sub_profileクレームとclient_profileクレームを導入しています。
エージェントのサブジェクトクレーム
sub_profile クレームと client_profile クレームは、エージェントに紐づくクライアントが発行するトークンにおいて、エンティティタイプを示します:
発行されたトークンで
sub_profile クレームと client_profile クレームを受け取るには、リソースサーバーの設定が必要です。クレーム内にエージェントの ID が現れる箇所 (トップレベルの sub または act.sub) では、作成時に設定されていれば external_agent_id が、設定されていなければ agent_id が使われます。
エージェントのサブジェクトクレームを受け取るようにリソースサーバーを構成する
sub_profile クレームと client_profile クレームを受け取るには、対象のリソースサーバーに agent_subject_claims: 'auth0-v1' を設定します。これはリソースサーバーごとのオプトイン方式です。
sub_profile クレーム は、トークンに正式なエンティティ型を導入するものです。トークンを受け取るサービス側で、sub_profile が常に user であると想定しないようにしてください。sub_profile が存在しない場合 (リソースサーバーでオプトインが有効になっていない場合) 、従来の動作がそのまま維持されます。有効化する前に、ダウンストリームのサービスでの sub の解析処理を確認してください。sub クレーム の形式を検証または解析しているサービスでは、client credentials グラントで ai_agent を有効なエンティティ型として扱えるよう、更新が必要になる場合があります。標準のログインフロー
エージェントに紐づくクライアントは、認可コード、インプリシット、CIBA、デバイス、MFA、パスワード、パスキー、またはリフレッシュトークンの各グラントを使用して、標準のログインフローを実行できます。サブジェクトはユーザーのままです。エージェントのアイデンティティはトップレベルのsub クレームには現れません。代わりに単一レベルの act クレームが追加され、トークン内でエージェントを識別できるようになります。
次の例では、エージェントに紐づくクライアントが標準のログインフローを実行し、以下のエージェントのサブジェクトクレームを含むトークンを発行します。
sub: ユーザー IDsub_profile:userclient_profile:ai_agent(クライアントがエージェントに紐付けられていることを示す)act: エージェントを識別する単一レベルのアクタークレーム ("sub": "agt_1a2b3c", "sub_profile": "ai_agent")
クライアントの資格情報フロー
エージェントに紐づくマシンツーマシン (M2M) クライアントは、クライアントの資格情報フローを実行します。この場合、エージェント自身がサブジェクトとなって認証され、ユーザーは関与しません。 次の例では、エージェントに紐づく M2M クライアントがクライアントの資格情報フローを実行し、以下のエージェントのサブジェクトクレームを含むトークンを発行します。sub: 作成時に設定されている場合はエージェントのexternal_agent_id、設定されていない場合はagent_idsub_profile:ai_agentclient_profile:service ai_agent(エージェントに紐づく M2M クライアントを表します)
On-Behalf-Of (OBO) トークン交換
OBOトークン交換では、ユーザーが認証を行い、エージェントのリソースサーバーをオーディエンスとするアクセストークンを受け取ります。続いて、エージェントに紐づくクライアントが、On-Behalf-Ofトークン交換を使用して、このトークンを委任トークンと交換します。この間、サブジェクトは一貫してユーザーのままです。エージェントはact クレーム内でアクターとして識別されます。
トークン交換の前に、ユーザーはブラウザーアプリ経由で認証を行い、アクセストークンを受け取ります。
sub: ユーザーIDsub_profile:userclient_profile: 発信元のクライアントをbrowser_appとして識別しますaud: エージェントのリソースサーバー
sub: ユーザー ID (変更なし)sub_profile:user(変更なし)client_profile:service ai_agent。エージェントに紐づくクライアントを表しますaud: 新しいリソースサーバーact: 直接のアクターはエージェントで、ネストされたactにフローを開始した元のクライアントが示されます。委任の最大深度は 5 ホップ、つまりネストされたact4 階層です。
OBO トークン交換ではリフレッシュトークンはサポートされていません。設定方法や制限事項の詳細は、On-Behalf-Of トークン交換をお読みください。
次のステップ
- Actionsを使用してアクセストークンにエージェントコンテキストを追加する
- エージェントIDの特定とトレーサビリティのために、テナントログ内のエージェントIDをクエリする