BLOGサブスレッドの日常
2025.07.31
Microsoft 365 Copilot Search
tama
tama です。
先週から一般提供が始まった Microsoft 365 Copilot Search を早速設定して試してみました。
設定時にいくつかハマりポイントがあったので、対策も含めて紹介します。

長いので要約を添えておきます
Microsoft 365 Copilot Search とは
いろんなところに散らばる業務情報を、こぱさん(私の手元の Copilot の愛称)のAIパワーを借りて横断検索する機能です。
※要 Microsoft 365 Copilot ライセンス
この 横断 に魅力を感じています。
Microsoftが用意してくれている Copilot コネクタを使えば、10年近く蓄積されてきた Google Drive 上にある GoogleDocs のドキュメントやスプレッドシート、Googleフォームのデータ、GitHub 上にある Markdown や Issue、Pull Request の情報も一緒に検索してくれます。
このプロジェクトのあの仕様について書かれているのはどのファイルだっけ、Teams のメッセージだっけ、Pull Request の description だったかな、、?
みたいなときに、Microsoft 365 Copilot Search を使えば関連しそうな情報を横断検索してくれます。
くれるはず…!(試す限りうまくいっていますが、設定して以降探しものをしていないのでまだ実践できていません💦)

前提
サブスレッドが契約している関連サービス(SaaS)を整理しておきます。
創業間もない頃からオフィススイートとして Google Apps(→ G Suite → Google Workspace)を使ってきました。
近年は Microsoft 365 も使っており、主たる情報の集積場所を Microsoft 365(SharePoint)に寄せようとしています。
現在の契約内容はこんな感じです。
| Google Workspace | Microsoft 365 | GitHub | |
|---|---|---|---|
| 契約プラン | Google Workspace Business Standard | Microsoft 365 Business Premium | GitHub Team |
| 利用ドメイン | subthread.co.jp | subthread.ms | subthread.co.jp |
長く @subthread.co.jp のメールアドレスで Gmail を使っていたので、これをそのまま継続しつつ競合しない形で Microsoft 365 を使うため、こちらは @subthread.ms という別ドメインのメールアドレスを Exchange Server に割り当てています。
(アカウントの紐づけができるようにネーム部分(@より前)は同じものにしています)
Google Drive との連携
そんな Copilot コネクタの設定にちょっぴりハマったのでポイントを紹介しておきます。
ここからは、Microsoft 365 のテナント管理者向けの情報です。
Google Drive との連携は(ファイル量によっては)時間がかかりますが、それ以外につまづきポイントはありません。
このあたりを参考にして、Microsoft 365 管理センター > Copilot > コネクタ の + 接続の追加 から進めていけば連携できます。
Google Workspace と Microsoft 365 で異なるメールアドレスを使っていますが、Entra ID のエイリアス(メールアドレス)として Google Workspace の @subthread.co.jp のアドレスも登録しているので、これを頼りにアクセス可能な範囲を絞ってもらえているのだと思います。
いつまでたっても同期が終わらないときは、同期を一時停止して、しばらくした後再開したら素直に終わってくれました🙌
GitHub との連携
GitHub との連携は、リポジトリのMarkdownファイル、Issue、Pull Request がそれぞれ別のコネクタに別れています。
GitHub 側で GitHub Apps を作っておく必要がありますが、必要な permissions が充足していれば GitHub Apps はひとつで大丈夫です。

- Repository permissions
- Administration ⇒ Read-only
- Contents ⇒ Read-only
- Metadata ⇒ Read-only
- Issues ⇒ Read-only
- Pull Requests ⇒ Read-only
- Organization permissions
- Administration ⇒ Read-only
- Members ⇒ Read-only
- Account permissions
- Email addresses ⇒ Read-only
設定のハマりポイントは GitHub ユーザーと Entra ID のマッチングです。
Microsoft 365 Copilot Search を使う Entra ID と、GitHub ユーザーとを紐づけることで、どのプライベートリポジトリにアクセスできるか判断できるようにしないといけません。
① GitHub ユーザー側の設定
GitHub ユーザーと Entra ID を紐づけるためには、GitHub ユーザーが Public email を持っている必要があります。
GitHub のログインIDや名前をマッチングに使うこともできますが、なりすましを防ぎ間違いなく Entra ID と一致すると同定できるのはメールアドレスです。
このため、Microsoft 365 Copilot Search で検索結果に GitHub の情報を含めたい人は、GitHub 側で @subthread.co.jp(従来のメールアドレス)か @subthread.ms(Outlook(Exchange)のメールアドレス)を公開しなくてはいけません。
(個々に設定してもらう必要がありますが、GitHub 情報を連携したい人だけが設定すればよく、他の人に Public email 設定を強制する必要はありません)
② IDマッピングの編集タイミング
GitHubユーザーが公開している Public email は @subthread.co.jp、
Entra ID の User Principal Name は @subthread.ms という状態で、これを紐づける必要があります。
Copilot コネクタのカスタムセットアップで IDマッピングができる、とドキュメントに書かれていますが、変更できるタイミングは極めて限定的です。
一度 Copilot コネクタを作ってしまうと、後から編集(変更)することはできません。
しかし、アクセス許可やIDマッピングの変更は、GitHub との接続(認可)後しかできません。
すなわち
- GitHub系のコネクタのセットアップ(追加)を始める
- コネクタの認証をする(ユーザーの代理、インストール、どちらでも)
- カスタムセットアップリンクを押してユーザータブを開き、IDマッピングを変更
- 保存して同期開始
この 3. で設定する必要があります。
③ IDマッピングの設定方法
IDマッピング、設定方法がよくわかりません…
Microsoftのドキュメントには「正規表現を使ってデータを変換」くらいのことしか書いてありません。

Microsoft Entra ユーザー プロパティ UserPrincipalName と
Microsoft Entra 以外のユーザー プロパティ(GitHubの)Email をマッピングしたいのですが、式に正規表現を書いて、数式を $1@subthread.ms のような前方参照にしても
「少なくとも 1 つの Microsoft Entra 以外のソース プロパティを数式で使用する必要があります」
とエラーされ悩んでいました。
結局 Microsoft Learn をさまよい続けて ここ に答えが載っているのを見つけました。
ユーザーIDプロパティを {0} のような形で参照する必要があるようです…!
そんなわけでサブスレッドでの設定は、
・ユーザーIDプロパティ:Email
・式:^.+(?=@subthread\.co\.jp$|@subthread\.ms$)
・マッピングする数式:{0}@subthread.ms
こんな風になりました。

式の正規表現のうち、(?=...) は先読みアサーション(lookahead assertion)で、数式が参照する {0} の部分にドメインが入らないようにしています。
ドメイン部分を無視したいだけなら ^[^@]+ でもよいと思いますが、Gmailなど個人のメールアドレスのネーム部分が他の Entra ID と一致するとややこしいしめんどくさいので、@subthread.co.jp と @subthread.ms のメールアドレスに限定しています。
プレビューボタンを押せば GitHub から取得したユーザー情報と、数式で変換した値が表示され、Entra ID とのマッピングの成否が確認できます。
インデックスの確認
同期がある程度進めば、Copilot コネクタ設定画面で接続を選択してステータスを開くと、インデックスブラウザーというタブがあります。
Google Drive のファイルや Pull Request など適当なURLを入れて検索すると、そのファイルがいつインデックスされたか、誰にアクセス許可されているかを確認することができます。

また、「ユーザーアクセスの確認」を使えば人ごとに、その情報にアクセスできるかどうかを確認することもできます。
ちゃんとアクセス制限が反映されているか確認できるので安心ですね。
まとめ
以上、長文になってしまいましたが Microsoft 365 Copilot Search の設定の紹介でした。
Microsoft 365 Copilot の魅力がまた増した気がします!
この記事を書いた人
tama
