スキル Microsoft 365 Agents SDK (.NET)
📦

Microsoft 365 Agents SDK (.NET)

安全

Build Microsoft 365 Agents with .NET

Microsoft 365用のマルチチャネルエージェントを構築するには、Microsoft.Agents SDKホスティングモデル、認証パターン、ルーティングアーキテクチャを理解する必要があります。このスキルでは、ASP.NET Coreホスティング、MSAL認証、Copilot Studio統合のための本番対応コード例を提供します。

対応: Claude Codex Code(CC)
🥉 72 ブロンズ
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「Microsoft 365 Agents SDK (.NET)」を使用しています。 ユーザー入力をエコーするメッセージハンドラーを持つAgentApplicationサブクラスを作成します

期待される結果:

OnActivity(ActivityTypes.Message, OnMessageAsync)を登録するコンストラクタと、エコーメッセージをを含むturnContext.SendActivityAsyncを呼び出すOnMessageAsyncメソッドを持つAgentApplicationを継承するC#クラスを生成します。

「Microsoft 365 Agents SDK (.NET)」を使用しています。 TokenValidationとServiceConnectionを含むappsettings.jsonを生成します

期待される結果:

TokenValidationセクション(Enabled、Audiences配列、TenantIdを含む)とapi.botframework.com用のAuthType、ClientId、ClientSecret、AuthorityEndpoint、Scopesを含むConnectionsセクションを持つJSON設定を生成します。

「Microsoft 365 Agents SDK (.NET)」を使用しています。 本番環境で/api/messagesエンドポイントに認可を追加する方法を示す

期待される結果:

開発環境以外で認証を強制するために、if (!app.Environment.IsDevelopment()) { incomingRoute.RequireAuthorization(); }でPOSTルートをラップすることを示します。

セキュリティ監査

安全
v1 • 2/25/2026

Documentation-only skill with no executable code. Contains C# code examples and configuration templates for Microsoft 365 Agents SDK. No scripts, network operations, file system access, or external commands detected. Static analysis correctly identified this as a prompt-only skill with zero security risk.

1
スキャンされたファイル
296
解析された行数
0
検出結果
1
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
50
コミュニティ
100
セキュリティ
74
仕様準拠

作れるもの

認証付きTeamsボットの作成

MSALでユーザーを認証し、Microsoft Teamsチャネルでメッセージに応答する本番対応ASP.NET Core botを生成します。

Copilot Studioとの統合

委任トークンを使用した直接エンジンクライアントパターンでCopilot Studioに接続するコンソールまたはWebアプリケーションを構築します。

エージェントエラー処理の実装

適切なクリーンアップと会話終了フローを備えたAgentApplicationサブクラスに包括的なエラー処理と状態管理を追加します。

これらのプロンプトを試す

基本的なASP.NET Coreエージェントホストの作成
Microsoft.Agents SDK bot用のASP.NET Core Minimal APIホストを生成します。AddAgentApplicationOptions、MyAgentクラスのAddAgent、MemoryStorage、AddAgentAspNetAuthentication、IAgentHttpAdapterを含むPOST /api/messagesエンドポイントを含めます。
ルーティング付きAgentApplicationの追加
歓迎メッセージ用のOnConversationUpdate、アクティビティハンドラーメソッドにルーティングされるOnActivity(ActivityTypes.Message)、状態クリーンアップ付きのOnTurnErrorを持つSupportAgentというAgentApplicationサブクラスを作成します。
MSAL認証ハンドラーの設定
MSAL PublicClientApplicationでトークンを取得し、AcquireTokenSilentからAcquireTokenInteractiveにフォールバックするDelegatingHandler called AddTokenHandlerを作成します。Bearerヘッダー注入とCopilotClient.ScopeFromSettingsの使用を含めます。
Copilot Studioコンソールクライアントのセットアップ
AddHttpClientでCopilotClientを登録し、カスタムDelegatingHandler for tokensを使用し、StartConversationAsyncとAskQuestionAsyncでCopilot Studioと対話するHostApplicationBuilderコンソールアプリケーションを生成します。

ベストプラクティス

  • ルーティングロジック、イベントハンドラー、エラー処理を1つの場所に集中させるためにAgentApplicationベースクラスを使用し、ミドルウェアに散らばることを避けてください。
  • 本番デプロイでは、サーバー再起動間で会話状態を維持するために、MemoryStorageの代わりにBlobStorageやCosmosDbStorageなどの永続化ストレージを使用してください。
  • appsettings.jsonでTokenValidationを有効にし、/api/messagesエンドポイントにRequireAuthorizationを適用して、エージェントへの不正アクセスを防止してください。

回避

  • Azure Key Vault、環境変数、マネージドIDなどの構成プロバイダーの代わりに、ClientSecretやその他の認証情報をコードに直接格納すること。
  • IHttpClientFactoryを使用してHTTP接続を効率的に登録して再利用する代わりに、各リクエストに対して新しいHttpClientインスタンスを作成すること。
  • 非同期SDKメソッドを適切にawaitし、CancellationTokenを渡す代わりに、.Resultや.Wait()を使用して非同期呼び出しを同期的にブロックすること。

よくある質問

AddAgentApplicationOptionsとAddAgentの違いは何ですか?
AddAgentApplicationOptionsはStartTypingTimerやRemoveRecipientMentionなどのコア構成設定を登録します。AddAgentは特定のAgentApplicationサブクラス(MyAgentなど)を依存関係注入コンテナに登録します。
MemoryStorageと永続化ストレージプロバイダーはいつ使用すべきですか?
開発とテストのためにのみMemoryStorageを使用してください。本番では、アプリケーションの再起動とスケールアウトシナリオ間で会話状態を維持するために、BlobStorage、CosmosDbStorage、またはその他の永続化ストレージプロバイダーを使用してください。
構成用のClientIdとClientSecretを取得方法は?
Azure Active Directoryにアプリケーションを登録します。ClientIdはアプリ登録の概要ブレードから取得します。 Certificates & secretsセクションでクライアントシークレットを作成します。TenantIdにはディレクトリ(テナント)IDを使用します。
Copilot Studio統合にはどのような認証フローを使用すべきですか?
コンソールアプリやインタラクティブなシナリオには、PublicClientApplicationとAcquireTokenInteractiveを使用します。Web APIなどのサーバー間シナリオには、 client credentialsフローでConfidentialClientApplicationを使用します。
/api/messagesエンドポイントがapp.Environment.IsDevelopment()をチェックしてから認可を要求するのはなぜですか?
これにより、開発モードでは認証なしでローカルテストが可能になり、本番では認可が強制されます。デプロイ前にトークン検証設定が正しく動作することを確認するために、常に認証を有効にしてテストしてください。
このエージェントを他のASP.NET Coreエンドポイントと一緒にホストできますか?
はい、Microsoft.Agents SDKは標準ASP.NET Coreルーティングと統合されます。ハイブリッドアプリケーションのために、/api/messagesエンドポイントに加えて、追加のコントローラー、Minimal API、またはミドルウェアを追加できます。

開発者の詳細

ファイル構成

📄 SKILL.md