Azure Active Directory レポート API にアクセスするための前提条件
Azure Active Directory (Azure AD) レポート API は、一連の REST API を使用してデータへのプログラムによるアクセスを提供します。 これらの API は、多くのプログラミング言語やツールから呼び出すことができます。 Reporting API は、 OAuth を使用して Web API へのアクセスを承認します。
この記事では、Microsoft Graph を有効にして、Azure portal および PowerShell を使用して Azure AD レポート API にアクセスできるようにする方法について説明します
ロールとライセンスの要件
API を介してレポート データにアクセスするには、次のいずれかのロールを持つ必要があります。
- セキュリティ閲覧者
- セキュリティ管理者
- グローバル管理者
テナントのサインイン レポートにアクセスするには、Azure AD テナントに Azure AD Premium P1 または P2 ライセンスが関連付けられている必要があります。 また、ディレクトリ タイプが Azure AD B2C の場合は、追加のライセンス要件なしで、API を使用してサインイン レポートにアクセスできます。
スクリプトを使用してレポート API にアクセスする場合でも、登録する必要があります。 登録することで、承認の呼び出しと、コードによるトークンの受信に必要なアプリケーション ID が得られます。 Azure AD レポート API にアクセスするようにディレクトリを構成するには、必要なロールのいずれかで Azure portal にサインインする必要があります。
重要
このような管理者特権を備えた資格情報で実行されるアプリケーションは、きわめて強力です。アプリケーションの IDとシークレットの資格情報は必ず安全な場所に保管してください。
Azure portal を使用して Microsoft Graph API を有効にする
アプリケーションがユーザーの介入なしに Microsoft Graph にアクセスできるようにするには、アプリケーションを Azure AD に登録してから、Microsoft Graph API にアクセス許可を付与する必要があります。 この記事では、Azure portal で実行する手順について説明します。
Azure AD アプリケーションの登録
Azure portal で、[Azure Active Directory]>[アプリの登録] に移動します。
[新規登録] を選択します。
[アプリケーションの登録] ページ:で、次の手順を実行します。
- アプリケーションに名前を付けます (
Reporting API application
など)。 - [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。
- [リダイレクト URI] セクションで、一覧から [Web] を選択し、「
https://localhost
」と入力します。 - [登録] を選択します。
- アプリケーションに名前を付けます (
[アクセス許可の付与]
Azure AD レポート API にアクセスするには、Microsoft Graph API の [ディレクトリ データの読み取り] と [すべての監査ログ データの読み取り] アクセス許可をアプリに付与する必要があります。
[Azure Active Directory]>[アプリの登録]>[API のアクセス許可] を選択し、[アクセス許可の追加] を選択します。
[Microsoft Graph]>[アプリケーションのアクセス許可] を選択します。
[Directory.ReadAll] と [AuditLog.Read.All] を追加し、[アクセス許可の追加] ボタンを選択します。
- 必要なクエリを実行するためにさらにアクセス許可が必要な場合は、今すぐ追加するか、Microsoft Graph で必要に応じてアクセス許可を変更できます。
- 詳細については、「Graph エクスプローラーの操作」を参照してください。
[Reporting API Application - API Permissions] (レポート API アプリケーション - API のアクセス許可) ページで、[既定のディレクトリに管理者の同意を与えます] を選択します。
Microsoft Graph エクスプローラーを使用してレポートにアクセスする
アプリの登録を構成したら、Microsoft Graph でアクティビティ ログ クエリを実行できます。
セキュリティ閲覧者ロールを使用して https://graph.microsoft.com にサインインします。 場合によっては、適切なロールにサインインしていることを確認する必要があります。 Microsoft Graph の右上隅にあるプロファイル アイコンを選択します。
次のいずれかのクエリを使用して、アクティビティ ログにアクセスするために Microsoft Graph の使用を開始します。
- GET
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns
- アクティビティ ログへの Microsoft Graph クエリの詳細については、「アクティビティ レポート API の概要」を参照してください。
- GET
Microsoft Graph PowerShell を使用してレポートにアクセスする
PowerShell を使用して Azure AD レポート API にアクセスするには、いくつかの構成設定を収集する必要があります。 これらの設定は、アプリ登録プロセスの一部として作成されました。
- テナント ID
- クライアント アプリ ID
- クライアント シークレットまたは証明書
Reporting API への呼び出しを構成するときに、これらの値が必要です。 安全性が高くなるので、証明書を使用することをお勧めします。
- [Azure Active Directory]>[アプリの登録] の順に進みます。
- [ディレクトリ (テナント) ID] をコピーします。
- アプリケーション (クライアント) ID をコピーします。
- [アプリの登録]> アプリケーションを選択 >[証明書とシークレット]> [証明書]>[証明書のアップロード] を選択し、証明書の公開キー ファイルをアップロードします。
- アップロードする証明書がない場合は、「自己署名証明書を作成してアプリケーションを認証する」の記事に記載されている手順に従います。
次に、収集した構成設定で認証します。 PowerShell を開き、次のコマンドを、プレースホルダーを独自の情報に置き換えて実行します。
Connect-MgGraph -ClientID YOUR_APP_ID -TenantId YOUR_TENANT_ID -CertificateName YOUR_CERT_SUBJECT ## Or -CertificateThumbprint instead of -CertificateName
Microsoft Graph PowerShell コマンドレット:
- 監査ログ:
Get-MgAuditLogDirectoryAudit
- サインイン ログ:
Get-MgAuditLogSignIn
- プロビジョニング ログ:
Get-MgAuditLogProvisioning
- レポート関連の Microsoft Graph PowerShell コマンドレットのリスト全体を確認します。
プログラムによるアクセスの API:
- セキュリティ検出: Identity Protection リスク検出 API
- テナント プロビジョニング イベント:プロビジョニング ログ API
Azure Active Directory Reporting API でのエラーのトラブルシューティング
Microsoft Graph ベータ エンドポイントへのアクセス中に 500 HTTP 内部サーバー エラーが発生する - Microsoft Graph ベータ エンドポイントは現在サポートされていません - Microsoft Graph v1.0 エンドポイントを使用してアクティビティ ログにアクセスしてください。
- GET
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns
エラー: テナントが B2C ではなく、テナントに Premium ライセンスもありません。サインイン レポートにアクセスするには、Azure Active Directory Premium 1 (P1) ライセンスが必要です。 サインインへのアクセス中にこのようなエラー メッセージが表示された場合は、テナントに Azure AD P1 ライセンスがあることを確認してください。
エラー: 許可されているロールのユーザーではありません: API を使用して監査ログやサインインにアクセスしようとしたときにこのエラー メッセージが表示された場合は、ご利用のアカウントが、Azure Active Directory テナントのセキュリティ閲覧者またはレポート閲覧者のロールに属していることを確認してください。
エラー: アプリケーションに Azure AD の 'ディレクトリ データの読み取り' または 'すべての監査ログ データの読み取り' アクセス許可がありません: この記事の「アクセス許可の付与」セクションを見直して、アクセス許可が正しく設定されていることを確認してください。