Skip to content

MS_GraphAPI

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

Graph API

概要

Microsoft Graph

メール、カレンダー、連絡先、ドキュメント、ディレクトリ、デバイスなどの、
生産性を高める(Office 365 の)データにアクセスできる。

Azure AD Graph API

  • OData REST API エンドポイントを介して Azure AD にプログラムによってアクセス
  • Azure AD のデータとオブジェクトに対して、CRUD の各操作を実行

移行メモ(最新化): Azure AD Graph API は 2023 年に廃止されたgraph.windows.net)。同様に Office 365 固有の API も統合が進み、 現在は Microsoft Graphgraph.microsoft.com)に一本化されている。

Azure AD Graph API(graph.windows.net Microsoft Graph(graph.microsoft.com
Office 365 REST API(Outlook / OneDrive 等の個別 API) Microsoft Graph
Microsoft.Azure.ActiveDirectory.GraphClient Microsoft.Graph SDK

新規実装では Microsoft Graph 一択である。 本ページ内の「Azure AD Graph API」の記述は、 歴史的経緯として読むこと。

Microsoft Graph

エンドポイント

https://graph.microsoft.com/v1.0/{リソース}
https://graph.microsoft.com/beta/{リソース}   ← 検証用。本番利用は非推奨

OData ベースであるため、$select / $filter / $expand などの クエリ オプションがそのまま使える。

GET https://graph.microsoft.com/v1.0/me?$select=displayName,mail
GET https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'山田')

認証

WebAPIの認証のとおり、 OAuth 2.0のアクセス トークンを Authorization: Bearer ヘッダに付与する。

アクセス許可(スコープ)には 2 種類がある。

種別 用途 同意
委任(Delegated) サインインしたユーザとして動く ユーザまたは管理者
アプリケーション(Application) ユーザ不在のバッチ・デーモン 管理者のみ

補足: アプリケーション アクセス許可は テナント全体に効くため、User.Read.All のような広い権限を 安易に付けないこと。 対象を絞るには アプリケーション アクセス ポリシー (Exchange 系)や、Azure リソースからの利用であれば マネージド ID の併用を検討する。

スロットリング

補足: Microsoft Graph には厳しめのスロットリングがある。 429 Too Many Requests が返った場合、 Retry-After ヘッダの秒数に従って待つのが正しい実装である。 無条件の即時リトライは状況を悪化させる。 Exponential Backoff(指数バックオフ)Polly(Retry, Circuit Breaker, Timeout, Bulkhead, Fallback)を参照。

大量件数を扱う場合は $batch(複数リクエストの一括送信)や デルタ クエリ(差分のみ取得)を使う。

参考


Tags: 認証基盤

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally