Amazon Bedrock AgentCore Gatewayによるマルチテナントエージェントの代理トークン交換の実装
サマリー
Amazon Bedrock AgentCore Gatewayを使用して、マルチテナントエージェントのための代理トークン交換を実装する方法を解説します。OAuth 2.0トークン交換仕様に基づき、ユーザーのアイデンティティを保護しつつ、下流APIとの安全な通信を実現します。具体的な実装例としてTravelBotを紹介し、Oktaとの連携方法を詳述します。
本文
生成AIエージェントをマルチテナントの生産アーキテクチャに展開する際、特定のアイデンティティ問題に直面します。エージェントがユーザーの代わりに下流APIを呼び出すとき、誰のアイデンティティがその呼び出しに伴うのかという問題です。エージェントのサービスアイデンティティで呼び出すと、監査のトレイルが崩れ、すべての下流システムがエージェントを無条件に信頼しなければなりません。ユーザーのトークンを変更せずに転送すると、すべての下流ツールが混乱した代理人になってしまいます。この問題を解決するのがOAuth 2.0トークン交換仕様(RFC 8693)であり、Amazon Bedrock AgentCore Identityはこれをネイティブにサポートしています。この投稿では、Oktaに対するマルチテナントOBOセットアップの完全な実装ガイドを提供し、各ホップでのJSON Web Token(JWT)クレームの変換を示し、オーディエンスバインディングがどのようにテナント間でスケールする防御を提供するかを示します。参考実装として、TravelBotというマルチテナントの予約アシスタントがあり、2つのテナント(AcmeとGlobex)にサービスを提供します。この投稿の参考実装は、公開後にaws-samples/sample-obo-flow-pocリポジトリで入手可能です。