Microsoft Graphとは?
Microsoft Graphとは、Microsoft 365やMicrosoft Entraなどのクラウドサービスのデータに統一的にアクセスできるAPIです。単一のエンドポイント(https://graph.microsoft.com)を通じて、メール、ファイル、ユーザー情報など、Microsoft クラウド内の多様なデータを取得・操作できます。
従来、Microsoft 365の各サービス(旧 Exchange Web Services や SharePoint REST API など)には個別のAPIが存在していましたが、Microsoft Graphではこれらを統合し、一貫した認証とクエリでアクセスできる仕組みを提供しています。開発者はREST APIまたはSDKを利用して、組織内のデータを活用するアプリケーションを構築できます。
Microsoft Graphはグラフ構造でデータを管理しており、ユーザー、グループ、メッセージ、ファイルなどのリソースを「ノード」として扱い、それらの関係性を「エッジ」で結びます。この設計により、「特定ユーザー(ノード)の上司(エッジ)が作成したファイル(ノード)」のように、複雑な関連データを効率的にたどることが可能です。
そもそもMicrosoft 365とは?
Microsoft 365は、Microsoftが提供するクラウドベースの生産性向上プラットフォームであり、業務に必要なサービスを包括的に提供しています。
Microsoft 365のサービスには、Excel、Word、PowerPointなどのOfficeアプリケーション群、メールとスケジュール管理を行うOutlook、ファイル共有とストレージのOneDrive、チーム連携ツールのMicrosoft Teams、社内ポータルや文書管理を担うSharePointなどが含まれます。これらのサービスは相互に連携し、組織の業務効率化を支援します。
また、Microsoft 365のID管理・デバイス管理・セキュリティ機能(Microsoft Entra IDやMicrosoft Intuneなど)は、プランや契約形態によって利用できる範囲が異なります。Microsoft Graphはこれらのサービスのデータにもアクセスできます。
次のセクションからは、Microsoft Graphについて詳しく解説します。
Microsoft Graphの主な機能

Microsoft Graph (引用:Microsoft Graphの概要)
Microsoft Graphが提供する機能は多岐にわたります。ここでは、企業での利用を検討する際に把握しておくべき主要な機能をご説明します。
データアクセス機能
Microsoft Graphの中核となるのは、Microsoft 365の各種サービスからデータを取得する機能です。
以下に、アクセス可能な主なサービスを示します。
機能カテゴリ | 代表的なサービス | できることの例 |
生産性 | - Outlook(メール、カレンダー、連絡先) - OneDrive/SharePoint(ファイル) - To Do(タスク) - OneNote(ノート) | - ユーザーの予定表を読み取る。 - SharePointのファイルをダウンロードする。<br>- 重要度の高いメールをフィルタリングする。 |
コラボレーション | - Microsoft Teams(チャット、会議、通話) - Planner(タスク管理) - SharePoint(サイト、リスト) | - チームの会議録を閲覧する。 - チャットのメッセージを取得する。 - プロジェクトのタスク進行状況を取得する。 |
インテリジェンス | - People(連絡先) - Insights(分析) - Profile Card(プロファイルカード) | 次の会議の出席者と、その人が最近関わっているドキュメントやプロジェクトを関連付けて表示する。 |
セキュリティとID管理 | - Microsoft Entra ID(ユーザーとグループの管理) - Microsoft Intune(デバイス管理) - セキュリティAPI | - 組織のユーザー一覧を取得する。 - デバイスのコンプライアンス状態を確認する。<br>- セキュリティアラート情報にアクセスする。 |
レポート | サービス利用状況レポート(Teams、OneDrive、SharePoint等) | 組織内でのTeamsのアクティブユーザー数や、SharePointサイトのストレージ使用量を分析する。 |
データ操作機能
Microsoft Graphは単にデータを取得するだけでなく、作成、更新、削除といった操作も可能です。たとえば、プログラムから自動的にメールを送信したり、予定表にイベントを追加したり、OneDrive上のExcelファイルの内容を更新したりすることができます。
これらの操作はHTTPメソッド(GET、POST、PATCH、DELETE)を使用して実行します。GETは読み取り、POSTは作成、PATCHは更新、DELETEは削除に対応しています。開発者はこれらのメソッドを組み合わせることで、業務プロセスの自動化やカスタムアプリケーションの開発を実現できます。
クエリ機能
Microsoft Graphでは、取得するデータをフィルタリングしたり、並び替えたり、必要な項目だけを選択したりするOData準拠のクエリパラメータを使用できます。
たとえば、特定の条件に合致するメールだけを取得する、ユーザー一覧を表示名順に並べるといった操作が可能です。
代表的なクエリパラメータとして、$filterは条件によるフィルタリング、$selectは取得するプロパティの指定、$orderbyはソート順の指定、$topは取得件数の制限に使用します。
変更通知(Webhook)
Microsoft Graphでは、特定のリソースの変更を監視し、変更が発生した際に通知を受け取る仕組みを提供しています。
この機能を利用すると、新しいメールが届いたとき、予定表のイベントが更新されたとき、ファイルが変更されたときなどに、Webhookでアプリケーションに通知できます。サブスクリプションにはリソースごとに有効期限(最大数日程度)があるため、定期的な更新運用が必要です。
バッチ処理
複数のAPI呼び出しを一つのHTTPリクエストにまとめて実行するバッチ処理機能も提供されています。この機能により、ネットワークの往復回数を削減し、パフォーマンスを向上させることができます。
Microsoft GraphのJSON batchingでは、1回のバッチで最大20件までのリクエストをまとめて実行できます。
たとえば、複数のユーザー情報を一度に取得する、複数のメールを同時に送信するといった処理を効率的に実行できます。
Microsoft Graphの料金
このセクションでは、Microsoft Graphの利用にかかる料金についてご説明します。
基本的な料金体系
Microsoft Graphの多くのAPIは、Microsoft 365のライセンスに含まれており、追加料金なしで利用できます。
組織がすでにMicrosoft 365 Business StandardやMicrosoft 365 E3、E5などのライセンスを保有している場合、そのライセンス範囲内でMicrosoft Graphを使用できます。
従量制課金が適用されるAPI(Metered APIs)
一部の高度な機能やリソース消費の大きい操作には、従量制課金が適用されます。これらを利用するには、Azureサブスクリプションとの紐付けが必要です。
- SharePoint / OneDrive for Business: assignSensitivityLabel(秘密度ラベルの割り当て)機能などには、API呼び出しあたり$0.00185の従量制課金が適用されます。
- Microsoft Teams: 特定の変更通知やエクスポート用APIに課金設定がありましたが、モデルA・モデルBのAPIの一部は2025年8月に課金が終了し、標準利用に含まれるように変更されています(最新情報は公式ドキュメントを参照)。
Microsoft Graph Data Connectの料金
Microsoft Graph Data Connect (MGDC) は、Microsoft Graphのデータを大規模に抽出し、Azure Data Lakeなどのストレージに配信する分析用サービスです。
このサービスは従量制課金で、基本的には抽出されたオブジェクト1,000個ごとに$0.75の料金がかかります。
ただし例外として、SharePoint Files dataset(ファイルデータセット)については、抽出されたオブジェクト50,000個ごとに$0.75の料金設定となっています。
大量のMicrosoft 365データを分析目的で抽出する必要がある場合に利用されますが、通常のAPI利用とは異なる料金体系となるため、導入時にはコストの見積もりが必要です。
上記の内容は2026年1月時点の情報です。最新情報はMicrosoft Graph公式ドキュメントをご覧ください。
Microsoft Graphの利用手順
それでは、実際にMicrosoft Graphを利用するための手順をご説明します。
1. アプリケーションの登録
まずはMicrosoft Entra管理センターにアクセスします。サイドバーの「アプリの登録(App registrations)」から、「新規登録」をクリックしましょう。
アプリケーション名、アカウントの種類などの必要な情報を入力し、アプリケーションの登録を完了します。

アプリケーションの登録
2. アクセス許可の設定
次に、「APIのアクセス許可」セクションから「アクセス許可の追加」を選択し、Microsoft Graphを選択します。
Microsoft Graphでは、「委任されたアクセス許可」と「アプリケーションのアクセス許可」という2種類の権限モデルを提供しています。
- 委任されたアクセス許可 (Delegated permissions):ユーザーがサインインしている状態でアプリケーションを実行する場合に使用します(例:「私のメール」を取得)。
- アプリケーションのアクセス許可 (Application permissions):ユーザーのサインインなしでバックグラウンドアプリなどが独自の権限でAPIを呼び出す場合に使用します(例:全社員のメールをアーカイブ)。これには管理者の同意が必須です。

アクセス許可の設定
3. クライアントシークレットの作成
「証明書とシークレット」セクションを開き、「新しいクライアントシークレット」を選択します。説明と有効期限を設定すると、シークレット値が表示されます。この値は作成直後に一度しか表示されないため、確実にコピーして保管してください。
クライアントシークレット(パスワード)は、アプリケーションがMicrosoft Graphにアクセスするための認証情報として利用されます。

クライアントシークレットの作成
4. アクセストークンの取得
アプリケーションのアクセス許可を使用する場合の例です。以下の形式でHTTPリクエストを送信し、アクセストークンを取得します。
PowerShellでの例:
$clientId = "クライアントID"
$clientSecret = "クライアントシークレット" # 「証明書とシークレット」で作成したもの
$tenantId = "テナントID(GUID)または contoso.onmicrosoft.com"
$body = @{
client_id = $clientId
scope = "https://graph.microsoft.com/.default"
client_secret = $clientSecret
grant_type = "client_credentials"
}
# トークンエンドポイントへリクエスト
$response = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method Post -Body $body
# 取得したアクセストークンを表示
$accessToken = $response.access_token
$accessToken
5. API呼び出しの実行
APIリクエストを送信する際は、Authorizationヘッダーに「Bearer」というプレフィックスを付けてトークンを設定します。
※client_credentials(アプリケーションのアクセス許可)で /users/... などを呼ぶ場合は、事前にUser.Read.All などのアプリケーションアクセス許可を追加し、管理者の同意を与えておく必要があります。
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
Authorization: Bearer {access_token}
Content-Type: application/json
上記のステップでMicrosoft Graphを利用することができます。より詳細な利用手順は、Microsoft Graph公式ドキュメントをご覧ください。
Microsoft Graphの活用デモ
このセクションでは、Microsoft Graphを活用して、アプリケーションから自動的にメールを送信するデモを行います。
業務システムからの通知メール、定期レポートの配信、承認依頼の送信などに活用できます。
Microsoft GraphのAPIリクエストの形式は、Graph Explorerで確認できます。「Search Resources」でAPIを検索し、実際にクエリを送信して結果を確認することも可能です。
メール送信のAPIリクエスト(POST /users/{id}/sendMail)は以下の形式です。

APIリクエストの形式
アプリから上記のリクエストを実際に送信すると、以下のようにメールが配信されました。

送信されたメールの確認
Microsoft Graphの利用時のポイント
このセクションでは、Microsoft Graphを効果的に活用するためのポイントをご説明します。実務での利用において、パフォーマンスやセキュリティ、保守性を確保するためのベストプラクティスを理解することが重要です。
最小限の権限を要求する (Least Privilege)
アプリケーションには、必要最小限のアクセス許可のみを付与することが推奨されます。過剰な権限を要求すると、セキュリティリスクが高まるだけでなく、ユーザーや管理者からの同意を得にくくなります。
たとえば、ユーザー自身のプロファイル情報を読み取るだけであれば、User.Read.All(すべてのユーザー情報を読み取る権限)ではなく、User.Read(自分自身の情報のみを読み取る権限)を使用します。権限の範囲を最小限に抑えることで、万が一アプリケーションに脆弱性があった場合でも、影響範囲を限定できます。
$selectパラメータで必要なプロパティのみを取得する
APIリクエストで$selectパラメータを使用すると、必要なプロパティのみを取得できます。これにより、ネットワークトラフィックを削減し、レスポンス時間を短縮できます。
たとえば、ユーザーの表示名とメールアドレスのみが必要な場合、以下のようにリクエストします。
GET https://graph.microsoft.com/v1.0/users?$select=displayName,mail
すべてのプロパティを取得するのではなく、実際に使用するプロパティのみを指定することで、パフォーマンスの向上とデータ転送量の削減を実現できます。
エラーハンドリングとリトライ処理
Microsoft Graph APIの利用時には、適切なエラーハンドリングとリトライ処理の実装が重要です。ネットワークの一時的な問題やサーバー側の負荷により、リクエストが失敗する場合があります。
特に注意すべきは、HTTPステータスコード429(Too Many Requests)のスロットリング(レート制限)エラーです。このエラーが返された場合、レスポンスヘッダーのRetry-Afterに示された時間(秒数)だけ待機してから、リクエストを再試行する必要があります。これを無視してリクエストを続けると、制限期間が延長される可能性があります。
エラーが発生した際は、適切なログを記録し、運用時のトラブルシューティングに役立てることも重要です。
Microsoft Graphの活用シーン
Microsoft Graphは多様な業務シーンでの活用が期待できます。ここでは、企業での実際の利用場面を想定した活用例をご紹介します。
社内ポータルサイトの構築
Microsoft Graphを活用することで、組織内の情報を統合的に表示する社内ポータルサイトを構築できます。
ユーザーのプロファイル情報、最近使用したファイル、今日のスケジュールなどを一画面に集約し、業務効率を向上させることができます。
たとえば、ログインしたユーザーに関連する情報をダッシュボード形式で表示する、組織図を自動生成して部署や上司の情報を可視化するといった機能を実装できます。これにより、従業員は必要な情報に素早くアクセスでき、業務の生産性が向上します。
ワークフロー自動化
承認プロセスや定型業務の自動化において、Microsoft Graphを効果的に活用することができます。
たとえば、休暇申請システムと連携して、申請が承認された際に自動的にOutlook予定表に休暇予定を登録する、経費精算システムからTeamsへ承認依頼メッセージを自動送信するといった処理を実装できます。
Power AutomateとMicrosoft Graphコネクタを組み合わせることで、ローコードでワークフローを構築することも可能です。これにより、開発リソースが限られている組織でも、業務の自動化を進めることができます。
データ分析とレポーティング
Microsoft Graphを通じて取得したデータを分析し、業務の可視化や意思決定に活用できます。
たとえば、会議室の利用状況を分析してスペースの最適化を図る、メールやTeamsのコミュニケーションパターンを分析して業務効率を評価するといった用途があります。
Microsoft Graph Data Connectを使用すれば、大規模なデータをAzure Data Lakeに抽出し、Azure SynapseやPower BIなどの分析ツールと組み合わせて高度な分析を実行することも可能です。
生成AIシステムでの活用
Microsoft Graphを通じて業務データにアクセスすることで、組織固有のコンテキストを持つ生成AIアシスタントやエージェントを構築できます。
たとえば「プロジェクトXの進捗を教えて」という質問に対して、関連ドキュメントや会議メモ、担当メンバーの情報を統合して要約を返す、といった使い方が可能です。編集履歴や会議のコンテキスト、共同作業の関係性といったメタデータも活用することで、単なるキーワード検索を超えた文脈ベースの回答や次のアクション提案を行えます。
また、Microsoft Graphのアクセス許可モデルがそのまま適用されるため、適切に権限設計を行えば、AIが参照できるデータの範囲をユーザーやテナントのポリシーに沿って制御できます。ガバナンス要件を満たしつつ、組織全体のナレッジを生成AIから安全に活用しやすくなる点も大きな利点です。
Microsoft Graph利用時の注意点
Microsoft Graphを利用する際には、いくつかの注意点があります。このセクションでは、特に注意が必要なポイントをご説明します。
データ保護とプライバシー
Microsoft Graphを通じて取得するデータには、個人情報や機密情報が含まれる場合があります。これらのデータを適切に保護し、関連する法規やプライバシーポリシーに準拠する必要があります。
適切なアクセス制御を実施し、必要最小限のデータのみを収集した上で、不要になったデータは確実に削除しましょう。
また、取得したデータを外部システムに保存する場合、そのシステムのセキュリティレベルも確保する必要があります。暗号化、定期的なセキュリティ監査など、適切な対策を実施してください。
認証情報の管理
クライアントシークレットや証明書などの認証情報は、厳重に管理する必要があります。これらの情報が漏洩すると、組織のデータに不正アクセスされるリスクが高まります。
ソースコードに認証情報をハードコーディングすることは避け、環境変数やAzure Key Vaultなどのシークレット管理サービスを使用して安全に保管してください。また、クライアントシークレットには有効期限が設定されるため、期限切れになる前に更新する運用プロセスを確立する必要があります。
APIバージョンの管理
Microsoft GraphにはAPIバージョンとして、v1.0(安定版)とbeta(プレビュー版)があります。v1.0は本番環境での使用が保証されており、破壊的変更が発生しにくいため、本番システムではv1.0の使用が推奨されます。
beta版は最新機能を試すことができますが、予告なく仕様が変更される可能性があります。beta版のAPIを使用している場合、将来的に動作しなくなるリスクがあるため、定期的に公式ドキュメントを確認し、必要に応じて実装を更新する必要があります。
まとめ
本記事では、Microsoft Graphの概要、主な機能、料金体系、利用手順、活用例、注意点について詳しく解説しました。Microsoft Graphは、Microsoft 365やMicrosoft Entraなどのクラウドサービスのデータに統一的にアクセスできるAPIです。Microsoft Graphを活用することで、業務プロセスの自動化、データ分析、社内ポータルの構築など、さまざまなシーンで業務効率化を実現できます。一方で、データ保護や認証情報の管理、APIバージョンの選定など、適切な運用が求められます。Microsoft Graphを活用し、より効率的で安全な業務環境を構築しましょう。
東京エレクトロンデバイスは、Microsoft Graphを活用したカスタムアプリケーション開発や、業務プロセスの自動化を支援しています。
Microsoft 365データの連携や活用にご興味のある方は、お気軽にご相談ください。




