Search the alley

記事を検索

2文字以上でタイトル・カテゴリ・タグを検索できます。

MCP EMAとは?Enterprise-Managed AuthorizationのIdP・SSO・ID-JAG設計

MCPのEnterprise-Managed Authorization(EMA)を、IdP・SSO・ID-JAG・組織ポリシー・中央失効の順に整理。通常OAuthやClient Credentialsとの違い、client・server・管理者の確認点を解説します。

公開 2026.08.09 / 更新 2026.08.09

この記事のポイント

  • EMAは組織のIdPをMCP serverアクセスの判断主体にし、ユーザーごとの個別OAuthを減らす
  • SSOのIdentity Assertionを使ってID-JAGを取得し、MCP Authorization Serverのaccess tokenへ交換する
  • client・server・Authorization Server・IdP・管理者の責務を分け、scope・group・role・conditional accessを確認する
  • 便利なzero-touch setupだけでなく、中央失効・監査・personal/enterprise account混同防止を設計する

先に結論:EMAはMCPの認証を組織のIdPへ寄せる拡張

MCPのEnterprise-Managed Authorization(EMA)は、各ユーザーが各MCP serverへ個別にauthorizeする代わりに、組織のIdentity Provider(IdP)をアクセス判断の中心に置く拡張です。会社のSSOでユーザーがMCP clientへログインし、IdPがgroup、role、conditional accessなどのポリシーに基づいて接続可否を決めます。MCP公式ブログでは2026-06-18にEMAがstableになったと発表されていますが、実際に使えるclient・server・IdPの組み合わせは個別に確認が必要です。

EMAが解決する企業MCPの4つの負担

  • 新しい社員が多数のMCP serverを一つずつauthorizeする負担
  • security teamがユーザーごとの許可を追いかけ、統一したpolicyを適用しにくい問題
  • 入社・異動・退職時に、各client・各serverのaccessを個別に変更する負担
  • 仕事用と個人用のaccountが混ざり、意図しないdata経路ができるリスク

EMAでは、組織の管理者が承認済みMCP serverとアクセスpolicyをIdP側で管理します。ユーザーは会社のidentityでログインし、IdPの判断により接続できるserverだけが利用可能になります。個人開発者が単一serverを自分だけで使う場合は、EMAの導入コストがメリットを上回る可能性があります。

通常OAuth・Client Credentials・EMAの違い

方式アクセス主体管理の中心向く状況
通常MCP OAuth個人ユーザーユーザーのconsentとserver単位のgrant個人が自分のdataへ接続する対話型作業
Client Credentialsサービス / applicationclient credential、scope、token lifecycleCI/CD、daemon、server-to-server
EMA組織に所属するユーザー企業IdPのgroup、role、conditional access複数serverを組織で一元管理するenterprise

EMAを導入しても、MCP server側のtool権限、scope、data classification、監査はなくなりません。IdPが接続可否を決める層と、MCP Authorization Serverがtokenとresourceを検証する層を分けて設計します。

EMAの登場人物と責務

役割責務レビュー項目
Enterprise IdP組織identity、access policy、approved server、ID-JAGを管理group、role、conditional access、revocation、audit
MCP clientSSOで得たIdentity Assertionを使い、ID-JAGをaccess tokenへ交換capability、設定面、token scope、redirectしないflow
MCP serverEMAを要求することをauthorization metadataで示す必須拡張、resource、tool scope、client対応
MCP Authorization ServerID-JAGを検証し、MCP server向けaccess tokenを発行signature、audience、issuer、expiry、claims mapping
組織管理者IdP admin consoleでserverとpolicyを承認・変更onboarding、offboarding、least privilege、監査

基本フロー:SSOからID-JAG、access tokenへ

  • ユーザーがenterprise IdPを使ってMCP clientへSSOする
  • clientがIdentity Assertion(OpenID ID TokenまたはSAML assertion)を保持する
  • MCP serverがenterprise-managed authを要求したら、clientがIdPのauthorization endpointへID-JAGを要求する
  • clientがID-JAGをMCP Authorization Serverへ渡し、MCP server向けaccess tokenへ交換する
  • clientがscopeとresourceを確認し、MCP serverへtool requestを送る
  • IdPのgroup、role、conditional accessにより、許可されないserverのtokenは発行されない
{
  "io.modelcontextprotocol/clientCapabilities": {
    "extensions": {
      "io.modelcontextprotocol/enterprise-managed-authorization": {}
    }
  }
}

clientはper-request capabilitiesでEMA対応を宣言します。宣言できることは、IdP policyが正しいことやMCP serverへの権限があることを意味しません。client、server、Authorization Serverが同じextension identifierを扱い、必要なscopeとfallbackを確認します。

IdP側で設計するpolicy

policy軸注意点
Server registry組織が承認したMCP serverだけを一覧化似た名前の未承認serverを混ぜない
Group部署・project・環境で利用対象を分ける異動時の剥奪が遅れないか
Roleread-only、operator、adminを分けるrole名だけでtool権限が広がらないか
Conditional accessdevice、network、risk、時間帯で条件を追加例外と緊急時のfallbackを記録
Lifecycleonboarding、offboarding、休職、委託終了中央revokeがclientへ反映されるか
Audit誰がどのserverへいつ接続したかtoken実値や個人dataを過剰に保存しない

EMAの便利さは、ユーザーが一度ログインすれば多くのserverへ接続できることより、管理者が承認・変更・失効を組織単位で扱えることにあります。承認済みserverのregistry、group・roleの棚卸し、offboardingのrevoke、監査ログを運用に組み込みます。

ID-JAGとMCP access tokenを同じものにしない

ID-JAGはenterprise IdPからMCP Authorization Serverへ渡すためのIdentity Assertion JWT Authorization Grantです。MCP serverへ最終的に送るaccess tokenとは役割が違います。Authorization ServerはID-JAGのsignature、audience、issuer、expiration、scope・resource情報を検証し、MCP server向けtokenを発行します。受け取ったassertionやtokenを別のserverへ転送しない境界を保ちます。

token / assertion発行・利用する場所確認すること
Identity Assertionenterprise IdPからMCP clientへSSO、subject、期限、保存場所
ID-JAGIdPからMCP Authorization Serverへsignature、audience、issuer、expiration、claims
MCP access tokenMCP Authorization Serverからclientへ、serverが受け取るresource、scope、expiry、server audience

scopeはEMAでも狭く、組織policyとtool権限を合わせる

  • IdPのgroupやroleが許可されても、MCP serverのtool scopeを自動で全許可にしない
  • organization、project、environment、read/write/deleteを別のscopeまたはpolicyとして表にする
  • standard MCP OAuthと異なるscope制限が出る可能性をclient側で扱う
  • scope不足をユーザーへ再同意させるのではなく、IdP policyと管理者承認の不足として切り分ける
  • access tokenがあることと、全toolを安全に実行できることを分ける

中央失効とアカウント混同を検証する

EMAの中心的な効果は、ユーザーの退職や権限変更をIdPで処理し、MCP serverへのaccessを中央でrevokeできることです。管理者がgroupを外したあと、既存session、refresh、cache、client表示、server側token検証がどのタイミングで拒否に変わるかをテストします。アカウント連携では、公式ガイドがsubjectを主な安定識別子とし、既存アカウントの照合にemailを補助的に使う考え方を示しています。email文字列だけを恒久IDにしない設計が安全です。

テスト期待する確認
Groupから削除新しいtokenが発行されず、既存accessもpolicyに従って拒否される
Roleをreadからwriteへ変更必要なscopeだけが増え、無関係なtoolは広がらない
User offboarding全client・serverで中央revokeが反映される
個人account混入corporate identityとpersonal identityを同じsubjectとして扱わない
IdP停止・metadata変更接続を止め、管理者へ通知し、無理なfallbackをしない

client・server・Authorization Serverの導入チェック

  • clientがEMA extensionをcapabilityで宣言し、企業IdPのSSOとIdentity Assertionを扱える
  • serverがauthorization metadataでenterprise-managed flowを要求する条件を示す
  • Authorization ServerがID-JAGのsignature、audience、issuer、expirationを検証する
  • IdP claimsをMCPのscope、resource、accountへ安全にmappingする
  • 組織管理者がper-userではなくorganization-level settingsでserverとpolicyを管理できる
  • scope不足、未承認server、IdP失敗、revoke、account linkingをテストできる
  • client matrixで、使うclient・server・IdPの対応状況とversionを確認する

EMAを導入しない方がよいケース

状況理由候補になる考え方
個人が一つのMCP serverを試すIdP registryや管理者運用のコストが大きい通常OAuthを小さく試す
ユーザー不在のjobユーザーのgroupではなくサービスidentityが主体Client Credentialsを検討する
ユーザーごとに別のconsentが必要組織一括の許可では意図と合わない通常OAuthとserver側scopeを使う
clientがEMA非対応extensionがopt-inで自動fallbackしない対応clientを確認し、通常flowへ戻す
IdPのpolicy・監査が未整備centralized controlの前提がない承認・revoke・ログの運用を先に作る

client supportは『EMAがstable』だけで判断しない

EMAの公式拡張ページでは、client supportはclientごとに異なり、extensionはopt-inで自動有効ではないと説明されています。公式ブログのstable発表は拡張の状態を示すもので、あなたのCodex、Claude Code、MCP host、server、IdPの組み合わせがすぐ利用できるという意味ではありません。support matrix、clientの管理者設定、serverのauthorization metadataを同じ日付で確認します。

確認先確認項目
MCP extension pageflow、capability、client/server/ASの責務
Client support matrix使うhost・CLI・IDEのEMA対応と条件
IdP管理画面approved server、group、role、conditional access、revoke
MCP serverEMA要求、resource descriptor、scope、tool allowlist
運用ログsubject、server、decision、scope、revoke結果。token実値は除外

企業MCP導入前の最小チェックリスト

  • EMAが必要な組織課題(server数、onboarding、offboarding、監査、account混同)を言語化した
  • 承認済みMCP serverのregistryと、IdPで管理するgroup・role・conditional accessを作った
  • client・server・Authorization ServerがEMAの同じextension identifierを扱うと確認した
  • SSO、Identity Assertion、ID-JAG、MCP access tokenの保存場所と有効期限を分けた
  • ID-JAGのsignature、audience、issuer、expiration、claims mappingをテストした
  • MCP tool scopeと組織policyをread/write/delete、environment、project単位で最小化した
  • group変更・offboarding・IdP障害・scope不足・未承認serverをテストした
  • client support matrixと管理者設定の確認日・versionを記録した

MCP EMAのFAQ

MCP EMAとは何ですか?

Enterprise-Managed Authorizationの略で、組織のIdPをMCP serverアクセスの判断主体にする拡張です。ユーザーが各serverへ個別にOAuth同意する代わりに、SSO、group、role、conditional access、中央revokeで管理します。

EMAは通常のOAuthやClient Credentialsと同じですか?

違います。通常OAuthは個人ユーザーのserver単位の同意、Client Credentialsはユーザー不在のサービスidentity、EMAは組織ユーザーのアクセスをIdPで一元管理する仕組みです。

ID-JAGはMCP access tokenですか?

同じものではありません。ID-JAGはenterprise IdPからMCP Authorization Serverへ渡すIdentity Assertion JWT Authorization Grantで、その検証後にMCP server向けaccess tokenが発行されます。

EMAならユーザーごとの権限確認は不要ですか?

不要にはなりません。IdPのgroup、role、conditional accessと、MCP serverのresource・scope・tool権限を合わせて確認します。中央管理は権限レビューの代替ではありません。

EMAはすべてのMCP clientで使えますか?

使えるとは限りません。公式拡張はopt-inで、client supportは異なります。利用するhost・CLI・IDE、server、IdPの対応と管理者設定を個別に確認してください。

個人開発でもEMAを使うべきですか?

一人で単一serverを試す段階では、通常OAuthの方が運用しやすい可能性があります。複数server、組織アカウント、onboarding・offboarding、監査、中央revokeが必要になったらEMAを検討します。

まとめ:zero-touchの前に、central policyとrevokeを作る

MCP EMAは、SSOで接続を簡単にするだけの機能ではなく、組織のIdPを承認済みserver、group、role、conditional access、監査、中央失効の中心へ置く拡張です。ID-JAGとMCP access tokenを分け、client・server・Authorization Server・管理者の責務を確認し、最初はread-onlyと小さなserver registryから始めます。公式ブログでstableと案内されていても、client・server・IdPの実装対応は別に検証してください。