Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MCPのあれこれを認証込みで使いたい
Search
takas
May 25, 2025
Technology
0
13
MCPのあれこれを認証込みで使いたい
2025年の.NETラボLTで発表した資料
デモのコード:
https://github.com/Takas0522/dotnetlab-demos/tree/main/2025/05
takas
May 25, 2025
Tweet
Share
More Decks by takas
See All by takas
MCPのResourceにBlob Storageを使いたい
takas0522
0
7
Microsoft Season of Agent AI エージェントの使用開始
takas0522
0
110
AzureでFeature Flagの運用をしてみよう
takas0522
0
15
(今更)WingetでPC移行をしたお話
takas0522
0
28
Microsoft Playwright TestingのReporting機能を使ってみる
takas0522
0
9
Windows TerminalでAIを使おう!
takas0522
0
19
Semantic KernelとStructured OutputsでAI Orchestrationしてみる
takas0522
0
190
Semantic KernelとBingサーチ-202405
takas0522
0
45
Microsoft Playwright Testingを使ってみよう
takas0522
0
370
Other Decks in Technology
See All in Technology
OCI Database Management サービス詳細
oracle4engineer
PRO
1
4.5k
Oracle Database オプティマイザ・ヒントの活用
oracle4engineer
PRO
1
120
初めてのGoogle Cloud by AWS出身者
harukasakihara
1
710
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
1
780
エッジ活用の最適解とは? 新しいエッジ処理アーキテクチャ「Edge-as-a-Service」構想について
kakerucom
0
110
バックエンドのコードファーストなOpenAPIスキーマ駆動開発 - TSKaigi2025
yujitorii
1
250
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
2
160
勘違いから始まったProxmox on ProxmoxでGPUパススルー【JPmoxs勉強会#7】/JPmoxs7_GPU_Passthrough_on_Proxmox_on_Proxmox-A_Journey_That_Started_with_a_Misunderstanding
tsukimi_site
1
180
会社員しながら本を書いてきた知見の共有
sat
PRO
2
630
AIに実況させる / AI Streamer
motemen
1
1.1k
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
650
CSS polyfill とその未来
ken7253
0
110
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Gamification - CAS2011
davidbonilla
81
5.3k
How to train your dragon (web standard)
notwaldorf
92
6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
14
870
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
A Tale of Four Properties
chriscoyier
159
23k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Speed Design
sergeychernyshev
30
960
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
How to Ace a Technical Interview
jacobian
276
23k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Transcript
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい MCPのあれこれを認証込みで使いたい 2025.05.NETラボ
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 誰? Takas(@DevTakas) Angular / Azure / .NET /
CICD / Microsoft Graph Microsoft MVP M365 and Developer Technologies
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 認証欲しくね…?
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい ユースケースとして • MCPサーバーの提供側になる場合 • ウチのサービスを元ネタにする場合は公開して良いデータはない • ウチのサービスを使える人が使える •
その人が見れるデータを参照できる • チャットツールをウチが提供する場合 • MCPを利用することで外部サービスの情報を簡単に享受できる • ただし、上記の通り認証で保護されているリソースの可能性有
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい MCP Serve/Clientを作ろう 認証ができる
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい ベース • 基本的にかずきさんのZenn見ればベースラインはできる • Kazuki Otaさんの記事一覧 | Zenn
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい ここからの内容 • 公式で提供されているやり方ではない • GitHubのテストコードや実装見て予想して構築した • 実装時にべスプラが提供されている可能性があるので公式リポ ジトリは一回見てみましょう
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 認証をどのように実装するか(Server) • ASP.NETをベースに実装されているので、問答無用で通信時に 認証を行うミドルウェアを差し込んでやる • なのでASP.NETの一般的な方法で保護可能 • 多くはAuthorization属性使うので一般的かは微妙かもだけど…
• Functionsの実装も同様 • 今回のデモはASP.NETのほうベースで作成した
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 認証をどのように実装するか(Client) • MCP Client作成時にTransportを指定する • csharp-sdk/src/ModelContextProtocol/Protocol/Transport/SseClientTransport.cs at main
· modelcontextprotocol/csharp-sdk • TransportクラスのコンストラクタでHttpClientがnewされているが引 数としても受け取ることができる
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 認証をどのように実装するか(Client) • テストでもHttpClientを食わせているのを確認できる • csharp- sdk/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpTests. cs at
c750f09e9770ccc8c98b61d1b0f21ae159793042 · modelcontextprotocol/csharp-sdk • 実態もただの(?)HttpClientのSendAsyncっぽい • csharp- sdk/src/ModelContextProtocol/Protocol/Transport/StreamableHttp ClientSessionTransport.cs at main · modelcontextprotocol/csharp- sdk
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 認証をどのように実装するか(Client) • つまり通信時に認証のための処理を実施する処理をHttpClient 作成時にDelegateHandlerで指定すればよさそう • そのHttpClientをTrasportクラス利用時に指定する • ASP.NETとかAzureサーバー上でドキュメントのサンプル通りに作成
するとHttpソケットの枯渇が発生しそうというのがわかる
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい デモ
Takas(@DevTakas) MCPのあれこれを認証込みで使いたい 参考文献 • https://modelcontextprotocol.io/ • https://zenn.dev/okazuki • https://learn.microsoft.com/ja- jp/aspnet/core/security/authorization/policies?view=aspnetcore-
9.0 • https://philippbauknecht.medium.com/authentication- authorization-in-azure-functions-with-azure-active-directory- using-c-net-aad52c8de925 • https://learn.microsoft.com/ja- jp/aspnet/core/fundamentals/middleware/write?view=aspnetcor e-9.0