powered by TechFeed
表示モード
Anthropic

ClaudeがIDアサーションを発行し、IdP設定不要でSupabase MCP認証が導入可能に

11月3日、Supabaseが「Enterprise-managed auth for MCP: Claude can now issue the identity assertion」と題した記事を公開した。MCPのエンタープライズ認証では従来、OktaなどのIdPが必須だったが、今回の変更によりClaudeそのものがIDアサーションを署名・発行する役割を担えるようになった。IdP側の設定変更は一切不要で、既存のSSOをそのまま維持しながらエンタープライズ管理認証を導入できるという、実用上のインパクトが大きいアップデートだ。

11月3日、Supabaseが「Enterprise-managed auth for MCP: Claude can now issue the identity assertion」と題した記事を公開した。MCPのエンタープライズ認証では従来、OktaなどのIdPが必須だったが、今回の変更によりClaudeそのものがIDアサーションを署名・発行する役割を担えるようになった。IdP側の設定変更は一切不要で、既存のSSOをそのまま維持しながらエンタープライズ管理認証を導入できるという、実用上のインパクトが大きいアップデートだ。


何が変わったのか

MCP(Model Context Protocol)のエンタープライズ向け認証では、従来、IDプロバイダー(OktaなどのIdP)がID-JAG(Identity Assertion JWT Authorization Grant)と呼ばれる署名済みアサーションを発行する必要があった。ID-JAGはOAuth 2.0の拡張仕様(RFC 9700およびJWT Bearer拡張(RFC 7523)をベースとする)であり、AIエージェントがユーザーの代わりにサービスへアクセスする際の信頼を確立するために設計されたものだ。

この仕組みに対応しているIdPは現状でOktaのみであり、他のIdPを使っている組織はMCPのエンタープライズ管理認証を利用できなかった。今回の変更により、ClaudeがそのID-JAGを自ら署名・発行できるようになった。ClaudeがIdPの代替として機能することで、IdP側の設定変更なしにエンタープライズ管理認証が導入できる。

なお、最終的なアクセストークンを発行するのはあくまでSupabaseだ。ClaudeはIDアサーション(ID-JAG)を発行し、Supabaseはそれを検証したうえで短命のアクセストークンを交付する、という役割分担になっている。


仕組みの核心:ClaudeがIdPの代わりに署名する

Claudeがアサーションを発行するフローは以下の通りだ。

  1. メンバーが通常通りClaudeにサインイン
  2. ClaudeからSupabaseを操作する際、Claudeが短命の署名済みアサーション(ID-JAG)を発行
  3. 発行前にClaudeが確認するのは2点:そのユーザーがClaudeの組織の現役メンバーであること、そのClaudeアカウントのメールアドレス
  4. Supabase側では、署名の一致・組織メンバーシップ・管理者承認の3点を検証
  5. 全項目通過後、Supabaseがそのメンバーに紐づいた短命のアクセストークンを発行

トークンが期限切れになるとClaudeが自動で新しいアサーションを提示するため、メンバーが手動で再接続する必要はない。

ただし、重要な制限がある。ClaudeはIdPへの問い合わせを行わないため、IdP側でメンバーを無効化してもSupabaseへのアクセスは即時には切れない。オフボーディング時はSupabase組織とClaude組織の両方からメンバーを削除する必要がある。既に発行済みのトークンは有効期限まで生き続ける点にも注意が必要だ。

また、SupabaseはSSOプロバイダーごとに信頼するissuerを1つしか設定できない。ClaudeのissuerURLを登録すると、既存のIdPのURLは無効化される。他のAIツールがそのIdPを通じて管理認証を使っていた場合、そちらも使えなくなる点は事前に確認しておきたい。


セットアップ:SSOが設定済みなら約10分

前提条件として、SupabaseのTeamまたはEnterprise organizationでSSOが設定済みであること、各メンバーがClaudeと同じメールアドレスでSupabaseにSSO経由でサインインした実績があることが必要だ。

手順は4ステップだ。

  1. Claudeを承認する — SupabaseのDashboard上でClaudeをAuthorized Appとして承認
  2. Claude側でidentity sourceを選択 — Claude組織設定の「Connectors」→Supabaseコネクターの「Managed authorization」でClaude-issuedを選択し、issuer URLをコピー
  3. SupabaseにissuerURLを登録 — DashboardのSSO設定「Advanced settings」の「ID-JAG Issuer」フィールドにペースト
  4. テストして有効化 — Claude側で「Run test」を実行し、全チェック通過後に「Enable and continue」

有効化後は、対象ロールのメンバーはClaude上でSupabaseがサインインもコンセント画面もなく自動接続された状態で使えるようになる。


利用条件

  • Supabase: TeamおよびEnterprise organizationが対象(SSO設定済みが条件)
  • Claude: Claude TeamおよびEnterprise organizationが対象。Claude auto-connect betaはClaude管理者が有効化できる

既存のIdPがID-JAG発行に対応している場合は変更不要で、従来の構成のままで問題ない。今回の機能はあくまで対応IdPを持たない組織向けの代替手段として位置づけられる。


詳細はEnterprise-managed auth for MCP: Claude can now issue the identity assertionを参照していただきたい。