コンテンツにスキップ

Microsoft 365 連携

Microsoft 365 と連携すると、AI メンバーが Outlook でメールを送受信したり、Teams のチャネルに投稿・閲覧できます。

  • 「@結衣 田中部長に進捗レポートをメールで送って」
  • 「先週 Outlook に届いた契約書関連のメールを要約して」
  • 「Teams の #engineering チャネルにビルド完了通知を投げて」
  • 「Teams の昨日の議論を取得して議事録にまとめて」

LinkPoint は Microsoft Graph API を アプリケーション権限(Client Credentials Flow)で利用します。Azure AD でアプリ登録が必要です。

  1. Azure Portal にサインイン
  2. Microsoft Entra ID(旧 Azure AD)→ アプリの登録「+ 新規登録」
  3. 設定:
    • 名前: LinkPoint Chat(任意)
    • サポートされるアカウントの種類: 「この組織ディレクトリのみに含まれるアカウント(シングル テナント)」
    • リダイレクト URI: 不要(アプリ専用フロー)
  4. 「登録」 → 概要画面に遷移

概要画面で以下をコピー:

項目LinkPoint の入力欄
アプリケーション (クライアント) IDClient ID
ディレクトリ (テナント) IDTenant ID

3. クライアントシークレットを発行

Section titled “3. クライアントシークレットを発行”
  1. 左メニュー 「証明書とシークレット」クライアント シークレット タブ
  2. 「+ 新しいクライアント シークレット」
  3. 説明(例: LinkPoint Production)と有効期限を設定 → 追加
  4. 「値」 列に表示される文字列をコピー(ID 列ではないので注意)
  1. 左メニュー 「API のアクセス許可」「+ アクセス許可の追加」
  2. Microsoft Graphアプリケーションの許可 を選択
  3. 以下を追加:
Permission用途
Mail.ReadOutlook メール一覧・取得
Mail.Sendメール送信
ChannelMessage.Read.AllTeams チャネル投稿の取得
ChannelMessage.SendTeams チャネルへの投稿
User.Read.AllUPN(ユーザー名)解決
  1. <組織名>に管理者の同意を与えます」をクリック(管理者権限が必要)
  2. ステータスがすべて 「付与されています」 になっていることを確認
  1. LinkPoint Chat → プロフィール → 外部連携 → Microsoft 365
  2. 入力:
    • Tenant ID: 手順 2 のディレクトリ ID
    • Client ID: 手順 2 のアプリケーション ID
    • Client Secret: 手順 3 でコピーした値
    • 既定の UPN(任意): 例 alice@example.onmicrosoft.com — Outlook ツールで userPrincipalName を毎回指定したくない場合
  3. 保存接続テスト
Tool 名用途
ms365_outlook_list_messagesOutlook 受信トレイ一覧(query / limit)
ms365_outlook_send_messageOutlook メール送信(to / subject / body)
ms365_teams_list_channel_messagesTeams チャネルの投稿一覧(teamId / channelId)
ms365_teams_send_channel_messageTeams チャネルへ投稿

Teams の TeamId / ChannelId を取得する

Section titled “Teams の TeamId / ChannelId を取得する”

Teams クライアントで対象チャネルを右クリック → 「チャネルへのリンクを取得」 → URL 末尾のクエリ:

https://teams.microsoft.com/l/channel/19%3a...%40thread.tacv2/...?groupId=<TeamId>&tenantId=<TenantId>
  • groupId= の値が TeamId
  • URL 中の 19:....@thread.tacv2ChannelId(URL デコード必要)

「API のアクセス許可」で 管理者の同意 が付与されていません。Azure Portal で同意ボタンをクリックしてください。

Authentication_MissingOrMalformed エラー

Section titled “Authentication_MissingOrMalformed エラー”

Client Secret が間違っているか、有効期限切れ。Azure Portal で新しいシークレットを発行して LinkPoint 側を更新。

Outlook ツールで明示的に UPN を渡していない場合、LinkPoint 連携設定の「既定の UPN」を埋めるか、ツール呼び出し時に AI に UPN を指示してください。

Client Secret は AES-256-GCM で暗号化して Firestore に保存。テナント境界を構造的に強制し、別テナントから API キーは見えません。

Microsoft Graph 経由の全リクエストは LinkPoint 側でログ記録 + Azure 側 Sign-in logs にも記録されます。

プロフィール → 外部連携 → Microsoft 365 → 削除 で LinkPoint 側の保存情報を完全削除。Azure 側でアプリ自体を無効化したい場合は、Azure Portal でアプリ登録を削除してください。