記事公開日
最終更新日
Microsoft Graph カスタムコネクタを作成してみた

Microsoft Graph コネクタ/カスタムコネクタとは
Microsoft Graph コネクタは、外部サービスからのデータを Microsoft Graph に取り込み、Microsoft 365 のアプリケーションやサービスで利用できるようにする機能です。Microsoft Graph コネクタを使用すると、組織が保有する Microsoft 365 データと同様に、外部から取り込んだ独自のデータを Microsoft 365 Copilot や Microsoft Search で検索ができるようになります。
既存でMicrosoftやパートナー企業から以下のようなサービスに接続できるコネクタがMicrosoft Graph コネクタ ギャラリーにて提供されています。
- Azure サービス
- Google Drive
- Slack
- Amazon S3
- CSV
接続したいサービスへのコネクタがMicrosoft Graph コネクタ ギャラリーに用意されていない場合は、Microsoft Graph コネクタ API または Microsoft Graph コネクタ SDKを使用してカスタムコネクタを作成できます。
今回は、Microsoft Graph コネクタ API を使用してカスタムコネクタを構築してみます。
今回作成するアプリ
Microsoftの公式サイトで紹介されていたサンプルコードを参考に、カスタムコネクタを作成するアプリケーションを作成します。サンプルでは、SQLiteを外部データとしてアイテムを取り込んでいます。
カスタムコネクタは論理コンテナのようなもので、その論理コンテナの中に外部データのアイテムをインデックス化するようなイメージと理解しました。
取り込んだアイテムは、外部アイテムとしてMicrosoft Search サービスを介して各種 Microsoft 365サービスから検索できるようになります。

アプリケーションを作成・実行して、以下を行います。
① カスタムコネクタの作成
外部データのアイテムを格納するためのコネクタを作成します。
② カスタムコネクタのスキーマ登録
カスタムコネクタのスキーマを登録します。
スキーマを構成するための属性については、以下の公式ドキュメントをご参照ください。
Microsoft Graph 接続 のスキーマの登録と更新
③ 外部アイテムのプッシュ
外部データソースのコンテンツを、カスタムコネクタに取り込みます。
アプリケーションからカスタムコネクタを構築後、SharePoint Online から独自のデータが検索できるようになるか試してみたいと思います。
アプリ作成手順
1. Entra ID アプリ登録
作成するアプリからMicrosoft Graphを操作するために、Entra IDにアプリを登録し、以下のアクセス許可を追加します。アクセス許可の名前 | 説明 |
---|---|
ExternalConnection.ReadWrite.OwnedBy | 外部接続の読み取りと書き込み |
ExternalItem.ReadWrite.OwnedBy | 外部アイテムの読み取りと書き込み |
また、[証明書とシークレット]画面より、クライアントシークレットを登録します。
クライアントシークレットはアプリケーション側の設定で必要になりますが、後から確認できないので、登録したタイミングで控えておきます。
2. 取り込みデータCSV用意
取り込みたい外部データをCSVで用意します。データ項目
名前 | 説明 |
---|---|
ProjectNo | 案件番号 |
CustomerName | 顧客名 |
ProjectSubject | 案件名 |
Price | 金額 |
UsageSkills | 案件で使用したスキル(製品・サービス、プログラム言語等) |
CSVデータ
ProjectNo | CustomerName | ProjectSubject | Price | UsageSkills |
---|---|---|---|---|
1001 | 株式会社A | Webアプリ開発 | 500000 | C#;Azure |
1002 | 株式会社B | データベース移行 | 750000 | PowerShell;Azure SQL |
1003 | 株式会社C | クラウドインフラ構築 | 1200000 | Azure;PowerShell |
1004 | 株式会社A | モバイルアプリ開発 | 600000 | C#;Xamarin |
1005 | 株式会社A | セキュリティ強化 | 800000 | Azure;PowerShell |
1006 | 株式会社B | データ分析プラットフォーム | 950000 | C#;Azure Synapse |
1007 | 株式会社D | IoTソリューション | 1100000 | Azure IoT;PowerShell |
1008 | 株式会社E | バックアップソリューション | 700000 | Azure Backup;PowerShell |
1009 | 株式会社C | AIチャットボット開発 | 850000 | C#;Azure Bot Service |
1010 | 株式会社C | DevOps導入支援 | 950000 | Azure DevOps;PowerShell |
3. アプリケーションの作成
サンプルコードを参考に、アプリケーションを作成します。今回は取り込みたいデータの項目に合わせて一部のソースを修正しました。
4. DB初期化
ソースコードのプロジェクトファイル(.csprojファイル)があるディレクトリで以下のコマンドを実行します。以下を実行するとプログラムで定義したモデルの情報からDBに定義が作成されます。
dotnet ef migrations add InitialCreate
dotnet ef database update
5. アプリ実行
ソースコードのディレクトリで以下のコマンドを実行し、アプリのビルドと実行を行います。dotnet build
dotnet run
コンソールが起動したらメニューの選択ができるようになるので、以下の番号の順に選択します。
① [1 (Create a connection)] を選択
カスタムコネクタを作成します。 コネクタの一意の識別子、名前、説明を入力します。
② [4 (Register schema for current connection)] を選択
作成したコネクタのスキーマを登録します。スキーマ登録には数分程度時間がかかります。
③ [7 (Push ALL items to current connection)] を選択
コネクタへDBからすべてのアイテムデータをプッシュします。
6. Microsoft Search の検索結果表示カスタマイズ
Microsoft 365 管理センターにアクセスし、[検索のバーティカル]と[検索の結果の種類]を作成します。検索のバーティカルは検索結果画面にタブ追加を行い、検索の結果の種類は検索した結果のレイアウト表示を変更できます。
結果確認
SharePointサイトの検索ボックスから、独自データの検索ができるか確認してみましょう。試しに「開発」と検索すると、デフォルトの検索結果には表示されません。
タブの右側の[その他]を選択すると、[プロジェクト管理]のタブが選べるようになっています。
このタブを選択すると、検索結果に独自のデータの情報が表示されることを確認できました!
おわりに
いかがだったでしょうか。Microsoft 365で外部データを取り込んで独自のデータを検索できるようになると、使い勝手が向上して様々な場面で活躍しそうですね!
Copilot for Microsoft 365 でも Microsoft Graph コネクタを利用できるようになっているので、Azure AI Searchを使用したRAGシステム等との違い等についても比較していければと思います!
QUICK E-Solutionsでは、Microsoft製品・サービスに関連する様々なアプリケーションの開発・導入を行っております。提供するサービス・ソリューションにつきましては こちら に掲載しております。
直近では「AIチャットボット構築サービス」をはじめとして、各AIサービスを利用したシステム導入にも注力しておりますので、システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。
※このブログで参照されている、Microsoft、Microsoft 365、Microsoft Graph、Microsoft Search、SharePoint Online、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。