Agent ID Guard が RFC 8693 のトークン交換メカニズムを使用して、エージェントのコールチェーン全体でアイデンティティを伝播し、エンドツーエンドの監査追跡を可能にする方法を説明します。設定手順については、「エージェントのトークン交換の設定」をご参照ください。
アイデンティティ伝播の重要性
コンプライアンスおよびセキュリティ監査は、「誰が、いつ、どのパスを通じて、どのデータに、何をしたか」という 1 つの問いに答えることを目的としています。
エージェントベースのアーキテクチャでは、この問いは非常に複雑になります。「休暇残高の確認」のような単一のアクションに、1 人のエンドユーザー、1 つのクライアントアプリケーション、1 つのエージェント、複数のダウンストリームサービス、そしてその過程における数回のトークン交換操作が関わる場合があります。標準的なアクセスログでは、この保管の連鎖を捉えることはできません。Alibaba Cloud IDaaS のアイデンティティ管理機能である Agent ID Guard は、トークン交換の各ホップで元のユーザーアイデンティティを維持することでこの問題を解決します。これにより、リクエストが通過する中間者の数に関係なく、各ダウンストリームの API 呼び出しが個々のユーザーまで追跡可能になります。
ユースケース
典型的なコンプライアンス要件は、以下のとおりです:
-
金融システムでは、すべてのデータアクセスが個々のユーザーまで追跡可能である必要があります。
-
セキュリティチームは、「任意のダウンストリーム API 呼び出しに対して、どのフロントエンドエントリポイント、どのエージェントインスタンス、およびどのアップストリームトークンがそれをトリガーしたか」という問いに答える必要があります。
-
規制の枠組みでは、不正アクセスを 90 日以内に特定し、実証できる必要があります。
「user = アリス」を示すアクセスログだけでは不十分です。アリスに代わってリクエストを開始したエージェントとクライアントも特定する必要があります。
アイデンティティ伝播の仕組み
Agent ID Guard は、RFC 8693 のトークン交換で発行されるアウトバウンドアクセストークンに含まれる、以下の 4 つの主要なフィールドを維持、拡張します:
|
フィールド |
意味 |
ユースケース |
|
|
インバウンドアクセストークン内の識別子と同一の一意のユーザー識別子。 |
バックエンドでの行レベルの認可と監査を可能にします。サービスの境界を越えてアイデンティティが失われないことを保証します。 |
|
|
現在トークンを保持しているクライアント。トークン交換を開始したエージェントのアプリ ID に相当します。 |
ダウンストリームサービスが、どのエージェントが自身を呼び出しているかを識別できるようにします。 |
|
|
アップストリームのソース情報。アップストリームトークンの |
逆追跡を可能にします。このアウトバウンドトークンがどのインバウンドアクセストークンとどのアップストリームクライアントから派生したかを追跡できます。 |
|
|
交換深度カウンター。トークン交換のホップごとに 1 ずつ増加します。 |
無限の委任を防ぎます。Agent ID Guard は、設定された交換深度の上限を超えたリクエストを拒否できます。 |
監査のトレーサビリティ
アウトバウンドアクセストークンには、派生元のインバウンドアクセストークンのトークン ID (jti) とクライアント ID が含まれています。構造は次のようになります:
{
"_idaas_imp": {
"jti": "ATTU...(jti of the original inbound token)...",
"client_id": "app_nfiiybmikzo2fnmabpectnxxxx"
}
}
これらのフィールドを Agent ID Guard の監査ログと組み合わせることで、完全なコールチェーンを再構築できます。

Agent ID Guard は、発行時にダウンストリームトークンにアップストリームの証跡を直接埋め込むため、エージェントやダウンストリームサービスでカスタムロジックを実装する必要はありません。
エージェントがアイデンティティを偽装できない理由
エージェントがダウンストリームサービスを自由に呼び出したとしても、任意の sub 値を偽造することはできません。以下のセーフガードがなりすましを防ぎます。
-
アウトバウンドアクセストークンは、有効なインバウンドアクセストークンをサブジェクトトークンとして送信する必要がある RFC 8693 のトークン交換を通じてのみ発行されます。
-
Agent ID Guard がアウトバウンドアクセストークンを発行する際、
subクレームは、サブジェクトトークンのsubから強制的に設定されます。Agent ID Guard は自身のプライベートキーでトークンに署名し、要求されたダウンストリームサービスの権限とsubとの間に有効な認可関係が存在する必要があります。 -
エージェントのクライアントシークレットや秘密鍵は、「自身がこのエージェントである」ことのみを証明するものであり、ユーザー トークンに直接署名するために使用することはできません。
-
ダウンストリームサービスは、Agent ID Guard の JWKS 公開鍵を使用して発行者 (
iss)、オーディエンス (aud)、および署名を検証することで、エージェント自体を信頼することなくsubクレームを信頼します。
検証
以下のチェック項目で、アイデンティティ伝播とコールチェーン監査が正しく機能していることを確認してください。
|
チェック項目 |
期待される結果 |
|
アウトバウンドアクセストークンを (例: jwt.io または JWT CLI ツールを使用して) デコードし、 |
ログインしているユーザーと一致します。 |
|
アウトバウンドアクセストークンをデコードし、 |
呼び出しを開始したクライアントのアプリ ID と一致します。 |
|
アウトバウンドアクセストークンをデコードし、 |
通常、シングルホップチェーンの場合は |
|
エージェントのコードを修正して |
Agent ID Guard はリクエスト内の不正な |
|
クライアントからエージェントへのインバウンド認可を取り消し、トークン交換を試してください。 |
基礎となるインバウンドアクセストークンが利用できなくなったため、トークン交換は失敗します。 |