Azure Active Directory レポート API にアクセスするための前提条件
Azure Active Directory (Azure AD) レポート API は、一連の REST ベースの API を使用してデータへのプログラムによるアクセスを提供します。 これらの API は、多数のプログラミング言語とツールから呼び出すことができます。
Reporting API は、 OAuth を使用して Web API へのアクセスを承認します。
レポート API へのアクセスを準備するには、次が必要です。
ロールを割り当てる
API を介してレポート データにアクセスするには、次のいずれかのロールが割り当てられている必要があります。
セキュリティ閲覧者
セキュリティ管理者
グローバル管理者
ライセンスの要件
テナントのサインイン レポートにアクセスするには、Azure AD テナントに Azure AD Premium ライセンスが関連付けられている必要があります。 任意の Azure AD テナントのサインイン レポートにアクセスするには Azure AD Premium P1 (以上) のライセンスが必要です。 また、ディレクトリ タイプが Azure AD B2C の場合は、追加のライセンス要件なしで、API を使用してサインイン レポートにアクセスできます。
アプリケーションを登録する
スクリプトを使用してレポート API にアクセスする場合でも、登録する必要があります。 登録することで、承認の呼び出しと、コードによるトークンの受信に必要なアプリケーション ID が得られます。
Azure AD Reporting API にアクセスするようにディレクトリを構成するには、Azure AD テナントのグローバル管理者ディレクトリ ロールのメンバーでもある Azure 管理者アカウントで Azure portal にサインインする必要があります。
重要
このような管理者特権を備えた資格情報で実行されるアプリケーションは、きわめて強力です。アプリケーションの IDとシークレットの資格情報は必ず安全な場所に保管してください。
Azure AD アプリケーションを登録するには:
Azure portal で、左側のナビゲーション ウィンドウから [Azure Active Directory] を選択します。

[Azure Active Directory] ページで、 [アプリの登録] を選択します。

[アプリの登録] ページから、 [New registration]\(新しい登録\) を選択します。

[アプリケーションの登録] ページ:

a. [名前] ボックスに、「
Reporting API application」と入力します。b. [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
c. [リダイレクト URL] で [Web] を選択し、テキスト ボックスに「
https://localhost」と入力します。d. [登録] を選択します。
[アクセス許可の付与]
Azure AD レポート作成 API にアクセスするには、次の 2 つのアクセス許可をアプリに付与する必要があります。
| API | 権限 |
|---|---|
| Microsoft Graph | ディレクトリ データの読み取り |
| Microsoft Graph | すべての監査ログ データの読み取り |

次のセクションでは、API 設定の手順を示します。
API を使用するためのアクセス許可をアプリケーションに付与するには:
[API のアクセス許可] を選択してから、 [アクセス許可の追加] を選択します。

[API アクセス許可の要求] ページで、 [Microsoft Graph] を見つけます。

[必要なアクセス許可] ページで、 [アプリケーションのアクセス許可] を選択します。 [ディレクトリ] チェックボックスをオンにし、Directory.ReadAll を選択します。 [AuditLog] チェックボックスをオンにし、AuditLog.Read.All を選択します。 [アクセス許可の追加] を選択します.

[Reporting API Application - API Permissions]\(レポート API アプリケーション - API のアクセス許可\) ページで、 [Grant admin consent]\(管理者の同意の付与\) を選択します。

構成設定を収集する
このセクションでは、ディレクトリから次の設定を取得する方法を示しています。
- ドメイン名
- クライアント ID
- クライアント シークレットまたは証明書
Reporting API への呼び出しを構成するときに、これらの値が必要です。 安全性が高くなるので、証明書を使用することをお勧めします。
ドメイン名を取得する
ドメイン名を取得するには:
Azure portal の左側のナビゲーション ウィンドウで、 [Azure Active Directory] を選択します。

[Azure Active Directory] ページで、 [カスタム ドメイン名] を選択します。

ドメインの一覧からドメイン名をコピーします。
アプリケーションのクライアント ID を取得する
アプリケーションのクライアント ID を取得するには:
Azure Portal の左側のナビゲーション ウィンドウで、 [Azure Active Directory] をクリックします。

[アプリの登録] ページから、アプリケーションを選択します。
アプリケーション ページから、 [アプリケーション ID] へ移動して、 [Click to copy]\(クリックしてコピー\) を選択します。

アプリケーションのクライアント シークレットを取得する
アプリケーションのクライアント シークレットを取得するには:
Azure Portal の左側のナビゲーション ウィンドウで、 [Azure Active Directory] をクリックします。

[アプリの登録] ページから、アプリケーションを選択します。
[API Application]\(API アプリケーション\) ページで [Certificates and Secrets]\(証明書とシークレット\) を選択し、 [Client Secrets]\(クライアント シークレット\) セクションで [+ New Client Secret]\(+ 新しいクライアント シークレット\) をクリックします。

[クライアント シークレットの追加] ページで、以下を追加します。
a. [説明] ボックスに、「
Reporting API」と入力します。b. [有効期限] として、 [2 年] を選択します。
c. [保存] をクリックします。
d. キー値をコピーします。
アプリケーションの証明書をアップロードする
証明書をアップロードするには:
Azure portal の左側のナビゲーション ウィンドウで、 [Azure Active Directory] を選択します。

[Azure Active Directory] ページで、 [アプリの登録] を選択します。
アプリケーション ページで、お使いのアプリケーションを選択します。
[証明書とシークレット] を選択します。
[証明書のアップロード] を選択します。
ファイル アイコンを選択し、証明書に移動して、 [追加] を選択します。
•
レポート API でのエラーのトラブルシューティング
このセクションでは、Microsoft Graph API を使用してアクティビティ レポートにアクセスする際に生じる可能性のある一般的なエラー メッセージと、その解決手順を示します。
エラー:Microsoft Graph からユーザー ロールを取得できませんでした
Graph エクスプローラーを使用してサインインするときにエラーが発生しないようにするには、Graph エクスプローラーの UI の両方のサインイン ボタンを使用してアカウントにサインインします。

エラー:Microsoft Graph から Premium ライセンスを確認できませんでした
Graph エクスプローラーを使用してサインインにアクセスしようとしたときにこのようなエラー メッセージが表示された場合は、左側のナビゲーションのアカウントの下にある [アクセス許可の変更] を選択し、 [Tasks.ReadWrite] と [Directory.Read.All] を選びます。

エラー:テナントが B2C ではないか、またはテナントに Premium ライセンスがありません
サインイン レポートへのアクセスには、Azure Active Directory Premium 1 (P1) ライセンスが必要です。 サインインへのアクセス中にこのようなエラー メッセージが表示された場合は、テナントに Azure AD P1 ライセンスがあることを確認してください。
エラー:許可されたロールにユーザーが含まれません。
API を使用して監査ログへのアクセスまたはサインインを試みるときにエラーが発生しないようにします。 アカウントが Azure Active Directory テナントのセキュリティ閲覧者ロールまたはレポート閲覧者ロールの一部であることを確認します。
エラー:アプリケーションに AAD の 'ディレクトリ データの読み取り' アクセス許可がありません
エラー:アプリケーションに Microsoft Graph API の 'すべての監査ログ データの読み取り' アクセス許可がありません
「Azure Active Directory レポート API にアクセスするための前提条件」の手順に従って、アプリケーションが適切なアクセス許可のセットを使用して実行されていることを確認してください。