-
Notifications
You must be signed in to change notification settings - Fork 0
MS_GraphAPI
- 戻る(OData、Microsoft Azure Active Directory)
- Graph API
メール、カレンダー、連絡先、ドキュメント、ディレクトリ、デバイスなどの、
生産性を高める(Office 365 の)データにアクセスできる。
移行メモ(最新化): Azure AD Graph API は 2023 年に廃止された (
graph.windows.net)。同様に Office 365 固有の API も統合が進み、 現在は Microsoft Graph(graph.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.GraphClientMicrosoft.GraphSDK新規実装では Microsoft Graph 一択である。 本ページ内の「Azure AD Graph API」の記述は、 歴史的経緯として読むこと。
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(複数リクエストの一括送信)や デルタ クエリ(差分のみ取得)を使う。
- OData
- Microsoft Azure Active Directory
- WebAPIの認証
- Microsoft Graph のドキュメント - Microsoft Learn
- Microsoft Graph のスロットリング ガイダンス - Microsoft Learn
- AzureADのGraph API触ってみた
Tags: 認証基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。