Microsoft Entra Reporting APIは、一連の REST API を使用してデータにプログラムによるアクセスを提供します。 これらの API は、多くのプログラミング言語やツールから呼び出すことができます。
この記事では、Microsoft Graph Explorer と Microsoft Graph PowerShell を使って Microsoft Entra アクティビティ ログを分析する方法について説明します。
前提条件
- Microsoft Entra ID P1 または P2 ライセンスが関連付けられている動作中の Microsoft Entra テナント。
- 必要なアクセス許可に同意するには、特権ロール管理者が必要です。
Microsoft Graph エクスプローラーを使用してレポートにアクセスする
すべての前提条件を構成すると、Microsoft Graph でアクティビティ ログのクエリを実行できます。 Microsoft Graph API は、大量のアクティビティ データをプルする用途に合わせて設計されていません。 API を使用して大量のアクティビティ データをプルすると、改ページ位置の自動修正とパフォーマンスの問題が発生します。 アクティビティ ログへの Microsoft Graph クエリの詳細については、「アクティビティ レポート API の概要」を参照してください
Microsoft Graph Explorer ツールを起動します。
プロファイルを選択し、[アクセス許可の変更] を選択します。
次の必要なアクセス許可に同意します。
AuditLog.Read.All
Directory.Read.All
次のいずれかのクエリを使用して、アクティビティ ログにアクセスするために Microsoft Graph の使用を開始します。
- GET
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns
- GET
https://graph.microsoft.com/v1.0/auditLogs/provisioning
- GET
https://graph.microsoft.com/beta/auditLogs/signUps
- GET
クエリを微調整する
特定のアクティビティ ログ エントリを検索するには、$filter および createdDateTime クエリ パラメーターと、使用できるプロパティの 1 つを使います。 次のクエリの一部では、beta
エンドポイントを使用します。 ベータ エンドポイントは変更される可能性があり、運用環境での使用は推奨されません。
サインイン クエリのサンプル
サインイン アクティビティに次のクエリを使用してみてください。
条件付きアクセスが失敗したサインイン試行の場合:
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=conditionalAccessStatus eq 'failure'
- 要求がタイムアウトしないように、日付フィルターを使用することを検討してください。
- GET
特定の期間中の特定のアプリケーションへのサインインを見つけるには:
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and appId eq 'APP ID'
- GET
非対話型サインインの場合:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'nonInteractiveUser')
- GET
サービス プリンシパルのサインインの場合:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'servicePrincipal')
- GET
マネージド ID のサインインの場合:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'managedIdentity')
- GET
ユーザーの認証方法を取得するには:
- GET
https://graph.microsoft.com/beta/users/{userObjectId}/authentication/methods
UserAuthenticationMethod.Read.All
権限が必要です。
- GET
ユーザー登録の詳細レポートを表示するには:
- GET
https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails
UserAuthenticationMethod.Read.All
権限が必要です。
- GET
特定のユーザーの登録の詳細:
- GET
https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails/{userId}
UserAuthenticationMethod.Read.All
権限が必要です。
- GET
サインアップ クエリのサンプル (プレビュー)
外部テナントでのサインアップ アクティビティには、次のクエリを使用してみてください。
ユーザー オブジェクトの作成など、特定の手順で失敗または中断されたサインアップ試行を検索するには:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=status/errorCode ne 0 and signUpStage eq 'userCreation'
- GET
電子メールの検証中に失敗したサインアップ試行を見つけるには:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=status/errorCode eq 1002013 and signUpStage eq 'credentialValidation'
注
エラー コード 1002013は、サインアップ フローの予期された (および成功した) 割り込みを示します。 詳細情報
- GET
日付範囲内の登録に関しては:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?&$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z)
- GET
特定のアプリケーションのサインアップの場合:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=appId eq 'AppId'
- GET
ローカル アカウントのサインアップの場合:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=signUpIdentityProvider eq 'Email OTP' or signUpIdentityProvider eq 'Email Password'
- GET
ソーシャル アカウントのサインアップの場合 (この例では Google):
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=signUpIdentityProvider eq ‘Google'
- GET
特定のユーザーのエントリを表示するには (例:
user@contoso.com
)。- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=signUpIdentity/signUpIdentifier eq 'user@contoso.com'
- GET
特定の関連付け ID に一致するエントリを検索するには:
- GET
https://graph.microsoft.com/beta/auditLogs/signUps?$filter=correlationId eq 'CorrelationId'
- GET
関連付け ID を使用して、特定のサインアップに対応するサインイン ログ エントリを検索するには:
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=correlationId eq 'CorrelationId'
- GET
関連する API
標準的なサインインと監査のログに慣れたら、次のような他の API を試してみてください。
Microsoft Graph PowerShell を使用してレポートにアクセスする
PowerShell を使って Microsoft Entra レポート API にアクセスできます。 詳しくは、「Microsoft Graph PowerShell の概要」をご覧ください。
Microsoft Graph PowerShell コマンドレット:
- 監査ログ:
Get-MgAuditLogDirectoryAudit
- サインイン ログ:
Get-MgAuditLogSignIn
- プロビジョニング ログ:
Get-MgAuditLogProvisioning
- レポート関連の Microsoft Graph PowerShell コマンドレットのリスト全体を確認します。
一般的なエラー
エラー: テナントが B2C でない、またはテナントに Premium ライセンスがありません: サインイン レポートにアクセスするには、Microsoft Entra ID P1 または P2 ライセンスが必要です。 サインインへのアクセス中にこのようなエラー メッセージが表示された場合は、テナントに Microsoft Entra ID P1 ライセンスがあることを確認してください。
エラー: 許可されているロールのユーザーではありません: API を使用して監査ログやサインインにアクセスしようとしたときにこのエラー メッセージが表示された場合は、ご利用のアカウントが、Microsoft Entra テナントのセキュリティ閲覧者またはレポート閲覧者のロールに属していることを確認してください。
エラー: アプリケーションに Microsoft Entra ID の 'ディレクトリ データの読み取り' または 'すべての監査ログ データの読み取り' のアクセス許可がありません: Microsoft Graph を使ってアクティビティ ログにアクセスするには、アプリケーションに AuditLog.Read.All
または Directory.Read.All
のアクセス許可が必要です。