Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MCPから考えるOAuth/OIDCの現状と展望

 MCPから考えるOAuth/OIDCの現状と展望

Prepared for OAuth & OpenID Connect勉強会 ー MCPとOAuth/OIDCの相互作用 https://www.authlete.com/ja/resources/videos/20250827/

MCPの認可へのOAuth採用を契機に、OAuth/OIDCの新たな仕様策定やプラクティス確立の動きが活発化しています。本プレゼンテーションでは、MCP + OAuthの現状と MCP/AIエージェントのユースケースに向けたOAuth/OIDCの今後について概説します。

Avatar for Tatsuo Kudo

Tatsuo Kudo

August 27, 2025
Tweet

More Decks by Tatsuo Kudo

Other Decks in Technology

Transcript

  1. Copyright © 2025 Authlete, Inc. All Rights Reserved. Copyright ©

    2025 Authlete, Inc. All Rights Reserved. MCPから考える OAuth/OIDCの現状と展望 工藤達雄 Authlete OAuth & OpenID Connect勉強会 ー MCPとOAuth/OIDCの相互作用
  2. Copyright © 2025 Authlete, Inc. All Rights Reserved. 2 •

    MCPの認可へのOAuth採用を契機に、OAuth/OIDCの新たな仕様策定や プラクティス確立の動きが活発化しています。 • 本プレゼンテーションでは、MCP + OAuthの現状と MCP/AIエージェントの ユースケースに向けたOAuth/OIDCの今後について概説します。 本セッションの内容
  3. Copyright © 2025 Authlete, Inc. All Rights Reserved. 3 •

    AIアプリケーション(モデル)と 外部データソース・ツール (コンテクスト)間の連携を 標準化するオープンプロトコル – 「AI界のUSB-C」 – 「SDK for LLM」 – 「新たなHTML」 – 「ブラウザの拡張機能みたいなもの」 MCP (Model Context Protocol) Source: https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained/ Source: https://www.linkedin.com/posts/erikwilde_api-apidesign-llm-activity-7354374870811516928-7bob/
  4. Copyright © 2025 Authlete, Inc. All Rights Reserved. 4 •

    MCP Host – いわゆるAIツール – MCP Clientを介して外部の データソース/ツールを利用 • MCP Client – Host内に組み込まれた コンポーネント – JSON-RPCベースの通信プロトコルを 使用してMCP Serverに機能をリクエスト • MCP Server – データソースやツールへのアクセスを 提供する軽量サーバー – リソース、ツール、プロンプトの 3つの主要機能を提供 MCPを構成するコンポーネント Source: https://modelcontextprotocol.io/docs/learn/architecture
  5. Copyright © 2025 Authlete, Inc. All Rights Reserved. 5 •

    MCP ClientがリモートのMCP Serverとの接続を確立する際の トークン授受の作法 – セキュリティプラクティス • OAuth 2.1 • Resource Indicator – メタデータによる発見 • PR Metadata • AS Metadata – 動的なクライアント登録 • DCR (Dynamic Client Registration) MCP + OAuth Source: https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/introduction.mdx
  6. Copyright © 2025 Authlete, Inc. All Rights Reserved. 6 認可フローの例

    Internet Your Computer MCP Protocol Web APIs Host with MCP Client MCP Server Remote Service
  7. Copyright © 2025 Authlete, Inc. All Rights Reserved. 7 認可フローの例

    Host with MCP Client (クライアント) MCP Server (リソース サーバー) Remote Service Internet Your Computer 認可サーバー ブラウザ ユーザー ユーザー認証・ 同意取得 トークン 授受 トークン 利用
  8. Copyright © 2025 Authlete, Inc. All Rights Reserved. 8 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ Remote Service
  9. Copyright © 2025 Authlete, Inc. All Rights Reserved. 9 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 2 Remote Service MCPリクエスト
  10. Copyright © 2025 Authlete, Inc. All Rights Reserved. 10 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 3 2 Remote Service HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm=”…“, resource_metadata=“https://example.com/.well-known/oauth-protected-resource”
  11. Copyright © 2025 Authlete, Inc. All Rights Reserved. 11 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 3 2 4 Remote Service PRM要求
  12. Copyright © 2025 Authlete, Inc. All Rights Reserved. 12 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 3 5 2 4 Remote Service { "resource": "https://example.com/mcp", "authorization_servers": ["https://auth.example.com"], "scopes_supported": ["mcp:tools", "mcp:resources"] }
  13. Copyright © 2025 Authlete, Inc. All Rights Reserved. 13 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー 5 2 4 6 ブラウザ Remote Service ASM要求
  14. Copyright © 2025 Authlete, Inc. All Rights Reserved. 14 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 7 Remote Service { "issuer": "https://auth.example.com", "authorization_endpoint": "https://auth.example.com /authorize", "token_endpoint": "https://auth.example.com /token", "registration_endpoint": "https://auth.example.com/register" }
  15. Copyright © 2025 Authlete, Inc. All Rights Reserved. 15 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 7 Remote Service { "client_name": "MCP Client", "redirect_uris": ["http://localhost:3000/callback"], "grant_types": ["authorization_code", "refresh_token"], "response_types": ["code"] }
  16. Copyright © 2025 Authlete, Inc. All Rights Reserved. 16 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 7 9 Remote Service DCR完了
  17. Copyright © 2025 Authlete, Inc. All Rights Reserved. 17 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 10 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 7 9 Remote Service 認可 リクエスト
  18. Copyright © 2025 Authlete, Inc. All Rights Reserved. 18 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 11 10 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 7 9 Remote Service 認証・ 同意
  19. Copyright © 2025 Authlete, Inc. All Rights Reserved. 19 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 11 10 12 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 7 9 Remote Service 認可 レスポンス
  20. Copyright © 2025 Authlete, Inc. All Rights Reserved. 20 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 13 7 9 11 10 12 Remote Service トークン リクエスト
  21. Copyright © 2025 Authlete, Inc. All Rights Reserved. 21 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 6 8 13 7 9 14 11 10 12 Remote Service トークン レスポンス
  22. Copyright © 2025 Authlete, Inc. All Rights Reserved. 22 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 3 11 10 12 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 15 6 8 13 7 9 14 Remote Service MCPリクエスト w/ AT
  23. Copyright © 2025 Authlete, Inc. All Rights Reserved. 23 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 16 3 11 10 12 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 2 4 15 6 8 13 7 9 14 Remote Service サービス連携
  24. Copyright © 2025 Authlete, Inc. All Rights Reserved. 24 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 認可フローの例 Internet Your Computer 1 16 3 11 10 12 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 17 2 4 15 6 8 13 7 9 14 Remote Service レスポンス 返却
  25. Copyright © 2025 Authlete, Inc. All Rights Reserved. 25 1.

    MCP Server利用を試行 2. アクセストークン (AT) 無しでリクエスト 3. 401 Unauthorized & 保護リソースメタデータ (PRM) の場所を返却 4. PRMをリクエスト 5. 認可サーバー (AS) の場所を含むPRMを返却 6. ASメタデータ (ASM) をリクエスト 7. 登録エンドポイントの場所を含むASMを返却 8. 動的クライアント登録 (DCR) をリクエスト 9. DCR完了 10. 認可リクエストを送信 11. ユーザー認証・同意取得 12. 認可レスポンスを返却 13. トークンリクエスト 14. トークンレスポンス 15. AT付きでリクエスト 16. AT検証後、サービスと連携 17. レスポンス返却 「ふつうのOAuth」と、なにかが違う… Internet Your Computer 1 16 3 11 10 12 ユーザー Host with MCP Client (クライアント) MCP Server (リソース サーバー) 認可サーバー ブラウザ 5 17 2 4 15 6 8 13 7 9 14 Remote Service
  26. Copyright © 2025 Authlete, Inc. All Rights Reserved. 26 ポイント

    ふつうのOAuth MCP + OAuth リソースサーバー・ MCP Serverの選定 クライアントプロバイダー。サービス提供 に必要なAPIを呼び出す機能を実装 ユーザー。自分が使いたいMCP Serverを 登録 認可フローの起点 クライアントが認可サーバーに 認可リクエストを送信 MCP ClientがMCP Serverに リクエストを送信 クライアントにおける 認可サーバーの発見 基本は事前設定。認可サーバーを信頼 MCP Serverから動的に選択肢を取得 認可サーバーにおける クライアントの登録 基本は事前設定。クライアントを信頼 動的登録も許容。スケーラビリティ重視 種類の多さ クライアント多 > サーバー少 クライアント少 < サーバー多 インスタンスの多さ クライアント多 > サーバー少 クライアント多大 >> サーバー少 「ふつうのOAuth」と、なにがどう違う? → 使われている仕様は共通だが、やりたいことがかなり違う
  27. Copyright © 2025 Authlete, Inc. All Rights Reserved. 27 ポイント

    ふつうのOAuth MCP + OAuth リソースサーバー・ MCP Serverの選定 クライアントプロバイダー。サービス提供 に必要なAPIを呼び出す機能を実装 ユーザー。自分が使いたいMCP Serverを 登録 認可フローの起点 クライアントが認可サーバーに 認可リクエストを送信 MCP ClientがMCP Serverに リクエストを送信 クライアントにおける 認可サーバーの発見 基本は事前設定。認可サーバーを信頼 MCP Serverから動的に選択肢を取得 認可サーバーにおける クライアントの登録 基本は事前設定。クライアントを信頼 動的登録も許容。スケーラビリティ重視 種類の多さ クライアント多 > サーバー少 クライアント少 < サーバー多 インスタンスの多さ クライアント多 > サーバー少 クライアント多大 >> サーバー少 変化の兆し
  28. Copyright © 2025 Authlete, Inc. All Rights Reserved. Source: https://github.com/modelcontextprotocol/modelcontextprotocol/pull/646

    28 MCPサーバー接続の一元管理 • “Enterprise-Managed Authorization Profile for MCP” https://github.com/modelcontextprotocol/modelcontextprotocol/pull/646 – 企業のIdPが「利用可能なMCP Serverのリスト」を管理 – ユーザーはMCP Host (w/ MCP Client) 利用時にIdPで認証 • IDトークン(or SAMLアサーション)がクライアントに渡る – MCP ClientはMCP Serverにアクセスするために: • IDトークン(or SAMLアサーション)を用いてIdPからID-JAG (Identity Assertion JWT Authorization Grant) を取得 – Token Exchange (RFC 8693) – Identity Assertion Authorization Grant (まもなくWG Draftになりそう) • ID-JAGを用いてMCP認可サーバーからATを取得 – JWT Authorization Grant (RFC 7523 2.1) – 最終的に、MCP ClientはATを用いてMCP Serverにアクセス At Identiverse 2025
  29. Copyright © 2025 Authlete, Inc. All Rights Reserved. 29 •

    “Evolving OAuth Client Registration in the Model Context Protocol” https://blog.modelcontextprotocol.io/posts/client_registration/ – オープン環境における動的クライアント登録の運用上の制限 • 課題: 登録情報の増大、クライアントの有効性管理、クライアント インスタンス単位の登録、DoS脆弱性 • ソリューション:クライアントはクライアントIDとしてメタデータ URLを送信。認可サーバーはそれを用いて「クライアントID メタデータドキュメント(CIMD)」を取得 – クライアントのアイデンティティとなりすましのリスク • 課題: 悪意のあるコールバックURIの登録、 localhostの なりすまし、アテステーションの詐取 • ソリューション: デスクトップクライアントが自身のバックエンド から「ソフトウェアステートメント」を取得し、クライアント 登録時に提出。将来的にはプラットフォームアテステーションを 用いて保護を強化 クライアント登録 Source: https://blog.modelcontextprotocol.io/posts/client_registration/
  30. Copyright © 2025 Authlete, Inc. All Rights Reserved. 30 •

    SEP-1046: Support OAuth client credentials flow in authorization https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1046 – Client Credentials Grantのサポート – 併せてJWT Client Authentication (RFC 7523 2.2) を推奨 • SEP-1036: URL Mode Elicitation for secure out-of-band interactions https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1036 – エリシテーション(MCP Serverがユーザーに追加情報を求める しくみ)を、MCP ServerとユーザーがMCP Clientを介さずに直接 インタラクションできるように拡張 – MCP ServerがAPIクライアントとなって、その先のAPIサーバーに、 ユーザーの同意に基づいて接続するユースケースに有用(OAuthに 限らず) • SEP-988: High Security Profile & Profile Integration w/Clients https://github.com/modelcontextprotocol/modelcontextprotocol/issues/988 SEP-1004: Server Profiles https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1260 – MCP ServerとMCP Clientが「プロファイル」を宣言する方法を定義 そのほかのMCP界隈での動き Host with MCP Client (クライアント) MCP Server (リソース サーバー) Remote Service Internet Your Computer 認可サーバー ブラウザ ユーザー ユーザー認証・ 同意取得 トークン 授受 トークン 利用
  31. Copyright © 2025 Authlete, Inc. All Rights Reserved. 31 •

    OAuth Pushed Client Registration https://datatracker.ietf.org/doc/draft-richer-oauth-pushed-client-registration/ – PAR (Pushed Authorization Requests) を利用したクライアント登録 • OAuth Client Registration on First Use with SPIFFE https://datatracker.ietf.org/doc/draft-kasselman-oauth-spiffe/ – SPIFFEによって動的発行されたワークロードの認証情報をクライアント認証に利用しクライアント登録 • OAuth 2.0 Dynamic Client Registration with Trusted Issuer Credentials https://datatracker.ietf.org/doc/draft-kasselman-oauth-dcr-trusted-issuer-token/ – DCR時のソフトウェアステートメントとしてSPIFFE JWT-SVIDまたはVerifiable Credential (VC-JWT) を使用 • OAuth2.0 Extention for AI Agent: Authorization on Target https://datatracker.ietf.org/doc/draft-song-oauth-ai-agent-authorization/ – どのAIエージェントやモデルがリソースアクセスを試みているのかを明示的に指定 • OAuth 2.0 Extension: On-Behalf-Of User Authorization for AI Agents https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/ – AI エージェントがユーザーの代理としてアクセストークンを取得 MCPを意識したOAuth拡張仕様 (Personal Draft) の例
  32. Copyright © 2025 Authlete, Inc. All Rights Reserved. 32 •

    結局のところ、MCP Clientの対応状況に依存 – 今後、新たなOAuth/OIDC拡張や、OAuth/OIDCとはまったく異なる仕組みが提案されうる – しかしMCP Clientがサポートしないことにはどうにもならない • OAuth 2.1 + α のセキュリティ対策がベースライン – PKCE、Resource Indicators、トークンライフサイクル管理、クライアント認証、… • 現時点でDCRに対応するべきかは微妙 – MCP ClientとMCP Serverの連携をユーザーの自由意志に任せるのも、ひとつの考えかた – その上でDCRに対応するのであれば、最大限のセキュリティ対策を講じるべき • スコープやRAR (Rich Authorization Requests) による適切な粒度の権限付与は必須 – Host (w/ MCP Client) が思わぬ動作をした場合のガードレールにもなりうる いま認可サーバーがMCP Serverにできること
  33. Copyright © 2025 Authlete, Inc. All Rights Reserved. 33 •

    Authorization - Model Context Protocol https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization • Issues (label:"auth") https://github.com/modelcontextprotocol/modelcontextprotocol/issues?q=label%3Aauth • Discord (#auth, #auth-wg-client-registration, #auth-wg-improve-devx, #auth-wg-profiles) https://modelcontextprotocol.io/community/communication#discord 参考情報
  34. Copyright © 2025 Authlete, Inc. All Rights Reserved. Thank You

    www.authlete.com [email protected] Copyright © 2025 Authlete, Inc. All Rights Reserved.
  35. Copyright © 2025 Authlete, Inc. All Rights Reserved. Copyright ©

    2025 Authlete, Inc. All Rights Reserved. We Are Hiring!! https://www.authlete.com/ja/careers/