概要
AWS Machine Learning Blogにて、Amazon Bedrock AgentCore Gatewayを使ったマルチテナント向けAIエージェントの「on-behalf-of(OBO)トークン交換」実装ガイドが公開されました。複数のテナント(顧客企業など)にまたがってサービスを提供するAIエージェントが、ユーザーの代理として安全に外部APIを呼び出す方法を、Oktaを使った具体例で解説する内容です。
何が発表・更新されたのか
Amazon Bedrock AgentCore Identityが、OAuth 2.0のトークン交換仕様「RFC 8693」をネイティブにサポートしていることが紹介されました。これにより、AgentCore Gatewayは、ユーザーから届いたトークンを、呼び出し先のサービス(オーディエンス)ごとに専用の新しいトークンへ自動的に交換できます。エージェント側でこの交換処理を自前実装する必要はありません。
記事では、架空の旅行予約アシスタント「TravelBot」を題材に、Acme・Globexという2つのテナントに対応する構成を例に、JWT(JSON Web Token)のクレーム(sub・aud・actなど)がどう書き換わるかを段階的に示しています。参照実装は、公開後に「aws-samples/sample-obo-flow-poc」リポジトリで提供される予定とされています。
なぜ重要なのか
1つのエージェントが複数のテナントやユーザーに代わって外部APIを呼び出す場合、「誰の権限で呼び出しているか」が曖昧になりがちです。記事では、次の2つの単純な方法にはそれぞれリスクがあると指摘しています。
- サービスアカウントによるなりすまし:下流のAPIがエージェントを無条件に信頼する必要があり、エージェントが侵害されると誰にでもなりすませてしまう「confused deputy(混乱した代理人)」問題が起きる
- ユーザートークンの単純転送:受け取ったトークンのオーディエンス(対象サービス)が、実際に呼び出す下流APIと一致しない限り機能しない
OBOトークン交換は、元のユーザー(sub)を保持しつつ、呼び出し先ごとにオーディエンス(aud)を絞り込んだトークンを発行するため、テナント間の境界を越えても最小権限を保てる点が重要とされています。
誰に関係があるのか
- 複数の顧客企業(マルチテナント)向けにAIエージェントを提供しているSaaS事業者・開発チーム
- Amazon Bedrock AgentCoreやOktaなどのIDプロバイダーを使ってエージェント基盤を構築しているエンジニア
- 生成AIエージェントのセキュリティ設計・監査ログ管理を担当する担当者
仕事や業務でどう使えるのか
自社サービスで「1つのAIエージェントが複数の取引先企業のシステムに接続する」ような構成を検討している場合、この記事はテナントごとに権限を安全に分離する具体的な設計パターンとして参考になります。特に、監査ログ用に「誰が実行者か(actクレーム)」と「誰の代理か(subクレーム)」を分けて記録する考え方は、権限管理やコンプライアンス対応の設計に役立つ可能性があります。
注意点
本記事はOktaを認可サーバーとして使った実装例であり、他のIDプロバイダーでも同様の機能(カスタムオーディエンス・スコープに対応した認可サーバー)があれば同じ構成が可能とされています。ただし、料金・対象プラン・日本リージョンでの提供状況など、公式情報上では確認できませんでした。導入を検討する際は、必ず公式ドキュメントで最新の対応状況をご確認ください。
公式情報
関連キーワード
- Amazon Bedrock AgentCore
- OAuth 2.0 トークン交換(RFC 8693)
- マルチテナント AIエージェント
- Okta(認証・認可基盤)
- JWT(JSON Web Token)





