【要約】Claude CodeからAgentCore GatewayへのSSO接続を作り直すついでにOAuthのクライアント登録を学ぶ [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が、Claude Codeから社内MCPサーバーへSSO接続する構成において、Cognitoの仕様に起因する運用上のリスクに直面した。以前の構成では、DCR Proxyを用いてクライアントを動的に登録していたが、以下の課題があった。
- ・接続のたびにCognitoのアプリケーションクライアントが増殖する。
- ・クライアント数が上限(1,000件)に達すると、新規接続が不能になる。
- ・DCRエンドポイントを認証なしで公開せざるを得ず、DoS攻撃の標的となる。
- ・DCR Proxyやステータス管理DBなど、自作コンポーネントの運用負荷が高い。
// Approach
開発者は、Claude Codeのアップデートにより追加された事前登録クライアント対応機能を利用し、構成を簡素化した。具体的には、以下のステップで実装を修正した。
- ・管理者がCognito上でアプリケーションクライアントを事前に1つ作成する。
- ・Claude CodeのMCP追加時に
--client-idと--callback-portを指定する。 - ・AgentCore Gatewayの
allowedClients設定により、特定のクライアントIDのみを許可する。 - ・ディスカバリーURLを自作ProxyからCognito公式のものへ差し替える。
// Result
構成の簡素化とセキュリティの向上を実現した。誰にとっても、運用の安定性と堅牢性が向上する成果が得られている。
- ・アプリケーションクライアント数を1つに固定し、上限到達のリスクを排除した。
- ・DCR Proxyや管理用DBなどの自作コンポーネントを完全に撤廃した。
- ・
allowedClientsによる検証を追加し、認可フローの堅牢性を高めた。 - ・利用者の接続手順は、コマンドに引数を追加するのみで、体験の差は最小限に留めた。
Senior Engineer Insight
> DCRは柔軟だが、Cognitoのクライアント数上限という制約と相性が悪い。本記事のように、ツールのアップデートに合わせて事前登録へ回帰する判断は、運用コストとスケーラビリティの観点から極めて合理的だ。自作コンポーネントを排除し、マネージドサービスの標準機能に寄せる設計思想は、大規模運用において鉄則である。実装においてL1リソースを直接触るエスケープハッチの活用も、実戦的で評価できる。