【要約】Claude CodeからAgentCore GatewayにEntra ID × CognitoでSSO接続するついでに認証認可の勉強をする [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が、組織向けMCPサーバーを安全に提供したいと考えた際、認証方式の選択において以下の問題に直面した。
- ・APIキーや長期トークンの配布によるセキュリティリスク。
- ・Claude Codeが使用する動的なループバックポートへの手動登録の困難さ。
- ・クライアント数が増大した際の、手動によるアプリケーションクライアント管理の運用負荷。
// Approach
開発者は、Entra IDとAmazon Cognitoを連携させ、その間にDCR Proxy(Lambda)を配置する構成を採用した。
- ・Entra IDをSAML IdP、CognitoをSAML SP兼OAuth認可サーバーとして機能させる。
- ・DCR Proxyにより、Claude Codeからの登録リクエストをCognitoのApp Client作成へ自動変換する。
- ・PKCEを実装し、認可コードの横取り攻撃を防御する。
- ・AgentCore GatewayでJWTの署名、有効期限、
cognito:groupsを検証する。
// Result
この構成により、ユーザーは会社のSSOを利用して、セキュアにMCPサーバーへアクセス可能となった。
- ・Claude Codeに長期的な認証情報を保持させる必要がなくなった。
- ・動的なポートを使用するクライアントでも、自動登録によりシームレスな接続が可能になった。
- ・一方で、CognitoのApp Client数上限(1000)によるスケーラビリティの課題が明確になった。
Senior Engineer Insight
> 実戦的な構成だが、スケーラビリティに懸念がある。DCR Proxyが標準のIssuer検証ルールを一部回避している点や、Cognitoのクォータ制限は、大規模運用時に致命的な障害となる可能性がある。本番環境では、独自の認可サーバー構築や、カスタムスコープによる厳格な権限管理を検討すべきだ。