この記事は1年以上前に投稿された記事で現在は正しい情報とは限りません。

Azure Active DirectoryGraphAPIを触る機会があったので、備忘として残しておきます。

Graph APIの利用にあたって、以下のサイトを参考にしました。

Azure Active Directoryアプリケーションの作成

Azureのポータルにログインして、任意のAzure Active Directoryを選択します。

azureapp-graph-select-directory

アプリケーションタブを選択して、[追加]をクリックします。

azureapp-graph-new

[組織で開発中のアプリケーションを追加]を選択します。

azureapp-graph-select

アプリケーションの名前をテキトーに記述し、種類は[WEBアプリケーションやWEB API]を選択します。

azureapp-graph-info

アプリケーションのプロパティもテキトーでOKです。

azureapp-graph-properties

作成したら、クライアントIDをコピってキーを生成します。キーは保存時に表示されるので、保存直後にメモってください。

azureapp-graph-keys

アプリケーションの権限は以下のように設定します。

azureapp-graph-access

azureapp-graph-applicationaccess

azureapp-graph-delegateaccess

あとは保存すればOK。キーは保存直後にしか表示されないので、必ずコピーするのを忘れないようにしてください。

下部のメニューに[エンドポイントの表示]のリンクがあるのでクリックすると、APIコールに必要な各エンドポイントが表示されます。今回は、GRAPH APIエンドポイント、OAUTH2.0トークンエンドポイントを利用します。

azureapp-graph-endpoint

OAuth2.0で認証・認可リクエスト

REST APIのためのaccess_tokenはOAuth2.0のAuthorization Code Grantか、Client Credentials Grantで取得します。
Client Credentialsのリクエストサンプルを以下に示します。

resourceを指定しないと以下のように怒られるので注意して下さい。

正常なレスポンスはこんな感じ

access_tokenがeyJ…で始まることからわかるように、JWTになっています。
ちなみにJWTのヘッダ、ボディはこんな感じ

ユーザ情報の取得

リクエスト

レスポンス

odata.metadataの記述からわかるとおり、Graph APIはODataに対応しています。

GraphExplorerを使ったGraph APIの検証

GraphExplorerを使って、GraphAPIの検証を行うことができます。
参考URLはこちら→Getting started with the Graph API with the Graph Explorer

https://graphexplorer.cloudapp.netにアクセスして、右上の[Sign In]をクリックします。

graphexplorer-home

OAuth2.0のAuthorization Code Grantフローが走るので、認証・認可を行います。

認可処理後はURL欄にテナント名がセットされるので、この状態でGraphAPIの簡易的なテストを行うことができます。

graphexplorer-home-after-authorize