Microsoft Entra プロビジョニング ログをダウンロードして分析する方法

Microsoft Entra プロビジョニング ログには、テナントで発生するプロビジョニング イベントに関する詳細が示されます。 プロビジョニング ログにキャプチャされた情報を使用して、プロビジョニングされているユーザーに関する問題のトラブルシューティングに役立てることができます。

この記事では、Microsoft Entra 管理センターからプロビジョニング ログをダウンロードするためのオプションとログを分析する方法について説明します。 エラー コードと特別な考慮事項も含まれています。

前提条件

プロビジョニング ログを表示するには、テナントに Microsoft Entra ID P1 または P2 ライセンスが関連付けられている必要があります。 Microsoft Entra エディションをアップグレードする場合は、「Microsoft Entra ID P1 または P2 の概要」を参照してください。

アプリケーション所有者は所有するアプリケーションのログを確認できます。 プロビジョニング ログを表示するには、次のロールが必要です。

  • レポート閲覧者
  • セキュリティ閲覧者
  • セキュリティ オペレーター
  • セキュリティ管理者
  • アプリケーション管理者
  • クラウド アプリケーション管理者
  • provisioningLogs アクセス許可を持つカスタム ロールのユーザー

プロビジョニング ログの表示方法

プロビジョニング ログを表示または分析するには、いくつかの方法があります。

  • Azure portal で表示する。
  • [診断設定] を使用して、Azure Monitor にログをストリーミングする。
  • ブック テンプレートを使用して、ログを分析する。
  • Microsoft Graph API を使用して、プログラムでログにアクセスする。
  • CSV または JSON ファイルとしてログをダウンロードする。

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

Azure portal でログにアクセスするには:

  1. Microsoft Entra 管理センターレポート閲覧者以上でサインインしてください。
  2. [ID]>[監視と正常性]>[プロビジョニング ログ] の順に移動します。

プロビジョニング ログをダウンロードする方法

Azure portal のログに移動して [ダウンロード] を選択することで、プロビジョニング ログを後で使用するためにダウンロードできます。 結果は、選択したフィルター条件に基づいてフィルター処理されます。 ダウンロードのサイズと時間を削減するために、フィルターはできるだけ具体的に指定してください。

プロビジョニング ログの [ダウンロード] ボタンのスクリーンショット。

CSV 形式

CSV のダウンロードには、次の 3 つのファイルが含まれます。

  • ProvisioningLogs:プロビジョニングの手順と変更されたプロパティを除く、すべてのログをダウンロードします。
  • ProvisioningLogs_ProvisioningSteps:プロビジョニングの手順と変更 ID を含みます。 変更 ID を使用すると、イベントを他の 2 つのファイルと結合できます。
  • ProvisioningLogs_ModifiedProperties:変更された属性と変更 ID を含みます。 変更 ID を使用すると、イベントを他の 2 つのファイルと結合できます。

JSON 形式

JSON ファイルを開くには、Microsoft Visual Studio Code などのテキスト エディターを使用します。 Visual Studio Code では構文の強調表示があるため、ファイルが読み取りやすくなります。 Microsoft Edge などのブラウザーを使用して、編集不可の形式で JSON ファイルを開くこともできます。

JSON ファイルを読みやすくする

JSON ファイルは、ダウンロードのサイズを削減するための形式でダウンロードされます。 この形式では、ペイロードが読みにくくなる場合があります。 ファイルを読みやすくするための 2 つの方法を確認してください。

  • Visual Studio Code を使用して JSON を書式設定する。

  • PowerShell を使用して JSON を書式設定する。 このスクリプトでは、タブとスペースを含む形式で JSON が出力されます。

    $JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON

    $JSONContent | ConvertTo-Json > <PATH TO OUTPUT THE JSON FILE>

JSON ファイルを解析する

使い慣れた任意のプログラミング言語を使用できます。 PowerShell の例を以下に示します。

これで、自分のシナリオに従ってデータを解析できます。 いくつかの例を次に示します。

  • JSON ファイル内のすべてのジョブ ID を出力します。

    foreach ($provitem in $JSONContent) { $provitem.jobId }

  • アクションが "create" であったイベントのすべての変更 ID を出力します。

    foreach ($provitem in $JSONContent) { if ($provItem.action -eq 'Create') { $provitem.changeId } }

知っておくべきこと

プロビジョニング ログを分析するためのいくつかのヒントと考慮事項を以下に示します。

  • 報告されたプロビジョニング データは、Premium Edition の場合は 30 日間、Free Edition の場合は 7 日間、Azure portal に保存されます。 30 日を超える保持のために、プロビジョニング ログを Azure Monitor ログにルーティングすることができます。

  • 変更 ID 属性を一意の識別子として使用できるので、製品サポートとやり取りするときに役立ちます。

  • スコープに含まれていないユーザーの場合、スキップされたイベントが表示されることがあります。

    • 例 1: スコープを all users and groups に設定し、範囲フィルタをセットアップしている場合、範囲抽出条件を満たしていないユーザーのスキップされたログが表示されることがあります。
    • 例 2: スコープを assigned users and groups に設定している場合、ユーザーがアプリケーションに割り当てられていない場合でも、ログ内のユーザーがスキップ済みとして表示され続ける可能性があります。 これは、プロビジョニング サービスがディレクトリから変更を受け取る方法が原因です。
  • プロビジョニング ログには、ロールのインポートは表示されません (AWS、Salesforce、Zendesk に適用されます)。 ロールのインポートのログは、監査ログで確認できます。

エラー コード

次の表を利用して、プロビジョニング ログに記録されているエラーの解決方法をより深く理解してください。

エラー コード 説明
Conflict、
EntryConflict
Microsoft Entra ID またはアプリケーションで、競合している属性値を修正してください。 または、競合しているユーザー アカウントが一致し、取って代わられたと思われるかどうか、一致する属性の構成を確認します。 一致する属性の構成の詳細については、このドキュメントを確認してください。
TooManyRequests ターゲット アプリは過負荷になり多すぎる要求を受け取っているため、ユーザーを更新するこの試行を拒否しました。 行うことは何もありません。 この試行は自動的に中止されます。 Microsoft もこの問題について通知されています。
InternalServerError ターゲット アプリから予期しないエラーが返されました。 ターゲット アプリケーションに関するサービスの問題によって、その動作が妨げられている可能性があります。 この試行は 40 分で自動的に再試行されます。
InsufficientRights、
MethodNotAllowed、
NotPermitted、
権限がありません
Microsoft Entra はターゲット アプリケーションによって認証されましたが、更新を実行する権限がありませんでした。 ターゲット アプリケーションが提供する手順と、それぞれのアプリケーションのチュートリアルを確認してください。
UnprocessableEntity ターゲット アプリケーションが予期しない応答を返しました。 ターゲット アプリケーションの構成が正しくないか、ターゲット アプリケーションに関するサービスの問題によって、その動作が妨げられている可能性があります。
WebExceptionProtocolError ターゲット アプリケーションへの接続時に HTTP プロトコル エラーが発生しました。 行うことは何もありません。 この試行は 40 分で自動的に再試行されます。
InvalidAnchor プロビジョニング サービスによって以前作成または照合されたユーザーは存在しなくなりました。 そのユーザーが存在することを確認してください。 すべてのユーザーの新たな照合を強制するには、Microsoft Graph API を使用してジョブを再起動します。

プロビジョニングを再開すると初期サイクルがトリガーされ、完了するまで時間がかかる場合があります。 また、プロビジョニングを再開することで、プロビジョニング サービスによって操作に使用されるキャッシュも削除されます。 これは、テナント内のすべてのユーザーとグループを再評価する必要があること、および特定のプロビジョニング イベントが削除される可能性があることを意味します。
NotImplemented ターゲット アプリから予期しない応答が返されました。 アプリの構成が正しくないか、ターゲット アプリに関するサービスの問題によって、その動作が妨げられている可能性があります。 ターゲット アプリケーションが提供する手順と、それぞれのアプリケーションのチュートリアルを確認してください。
MandatoryFieldsMissing、
MissingValues
必須の値がないため、ユーザーを作成できませんでした。 ソース レコード内の不足している属性値を修正するか、一致する属性の構成を調べて、必須フィールドが省略されていないことを確認してください。 一致する属性の構成に関する詳細を確認してください。
SchemaAttributeNotFound ターゲット アプリケーションに存在しない属性が指定されたため、操作を実行できませんでした。 属性のカスタマイズに関するドキュメントを参照し、構成が正しいことを確認してください。
InternalError Microsoft Entra プロビジョニング サービス内で内部サービス エラーが発生しました。 行うことは何もありません。 この試行は 40 分で自動的に中止されます。
InvalidDomain 属性値に無効なドメイン名が含まれているため、操作を実行できませんでした。 ユーザーのドメイン名を更新するか、ターゲット アプリケーションの許可リストにそのドメイン名を追加します。
タイムアウト ターゲット アプリケーションが応答するのに時間がかかりすぎたため、操作を完了できませんでした。 行うことは何もありません。 この試行は 40 分で自動的に再試行されます。
LicenseLimitExceeded このユーザーが使用できるライセンスがないため、ターゲット アプリケーションでユーザーを作成できませんでした。 ターゲット アプリケーションの追加ライセンスを購入してください。 または、ユーザーの割り当てと属性マッピングの構成を調べて、正しい属性で正しいユーザーが割り当てられていることを確認してください。
DuplicateTargetEntries ターゲット アプリケーションの複数のユーザーに、構成済みの一致する属性があると検出されたため、操作を完了できませんでした。 重複しているユーザーをターゲット アプリケーションから削除するか、属性マッピングを再構成してください。
DuplicateSourceEntries 複数のユーザーに、構成済みの一致する属性があると検出されたため、操作を完了できませんでした。 重複しているユーザーを削除するか、属性マッピングを再構成してください。
ImportSkipped システムでは、各ユーザーが評価されるときに、ソース システムからのそのユーザーのインポートが試みられます。 このエラーが発生するのは一般的に、インポートされるユーザーが、属性マッピングで定義されている一致するプロパティを持っていない場合です。 一致する属性のユーザー オブジェクトに値が指定されていない場合、システムではスコープ、一致、またはエクスポートの変更を評価することはできません。 このエラーが発生したとしても、ユーザーのスコープをまだ評価していないため、このユーザーがスコープ内にあることを示すものではありません。
EntrySynchronizationSkipped プロビジョニング サービスによってソース システムに対するクエリが正常に実行され、ユーザーが識別されました。 ユーザーに対してこれ以上の操作は行われず、スキップされました。 ユーザーがスコープ外にあるか、ユーザーがターゲット システムに既に存在していて、それ以上の変更は必要でない可能性があります。
SystemForCrossDomainIdentity
ManagementMultipleEntriesInResponse
ユーザーまたはグループを取得する GET 要求に対し、複数のユーザーまたはグループが応答で受信されました。 システムでは、1 つのユーザーまたはグループだけを応答で受信することが想定されています。 たとえば、[グループの取得] 要求を実行してグループを取得し、メンバーを除外するフィルターを指定し、クロスドメイン ID 管理システム (SCIM) エンドポイントからメンバーが返された場合、このエラーが表示されます。
SystemForCrossDomainIdentity
ManagementServiceIncompatible
Microsoft Entra プロビジョニング サービスでは、サード パーティ アプリケーションからの応答を解析できません。 アプリケーション開発者と協力して、SCIM サーバーが Microsoft Entra SCIM クライアントと互換性があることを確かめてください。
SchemaPropertyCanOnlyAcceptValue ターゲット システムのプロパティは、1 つの値のみを受け入れることができますが、ソース システムのプロパティには複数の値があります。 エラーをスローしているプロパティに 1 つの値の属性をマップするか、ソースの値を単一の値になるように更新するか、マッピングから属性を削除してください。

テナント間同期のエラー コード

次の表を利用して、テナント間同期のプロビジョニング ログに記録されているエラーの解決方法をより深く理解してください。

エラー コード 原因 ソリューション
Microsoft Entra ID
CannotUpdateObjectsOriginated
InExternalService
同期エンジンは、ターゲット テナント内の 1 つ以上のユーザー プロパティを更新できませんでした。

権限ソース (SOA) が適用されるため、Microsoft Graph API で操作が失敗しました。 現在、次のプロパティが一覧に表示されます。
Mail
showInAddressList
場合によっては (たとえば、showInAddressList プロパティがユーザー更新の一部である場合)、同期エンジンは問題のあるプロパティなしで (ユーザー) 更新を自動的に再試行することがあります。 それ以外の場合は、ターゲット テナントでプロパティを直接更新する必要があります。
AzureDirectory
B2BManagementPolicy
CheckFailure
自動引き換えを許可するテナント間同期ポリシーが失敗しました。

同期エンジンは、ターゲット テナントの管理者が、自動引き換えを許可する受信テナント間同期ポリシーを作成したことを確認します。 また、同期エンジンは、ソース テナントの管理者が自動引き換えのために送信ポリシーを有効にしたかどうかも確認します。
ソース テナントとターゲット テナントの両方で、自動引き換え設定が有効になっていることを確認します。 詳細については、「自動引き換え設定」を参照してください。
Microsoft Entra ID
QuotaLimitExceeded
テナント内のオブジェクトの数がディレクトリの制限を超えています。

Microsoft Entra ID には、テナントで作成できるオブジェクトの数に制限があります。
クォータを増やすことができるかどうかを確認します。 クォータを増やすディレクトリの制限と手順については、「Microsoft Entra サービスの制限と制約事項」を参照してください。
InvitationCreationFailure Microsoft Entra プロビジョニング サービスが、ターゲット テナント内のユーザーを招待しようとしました。 その招待は失敗しました。 詳細な調査には、サポートへの問い合わせが必要になる可能性があります。
Microsoft Entra ID
許可されていません
外部コラボレーションの設定により招待がブロックされました。 ユーザー設定に移動し、外部コラボレーション設定が許可されていることを確認してください。
InvitationCreation
FailureInvalidPropertyValue
考えられる原因:
* プライマリ SMTP アドレスが無効な値です。
* UserType はゲストまたはメンバーではありません
* グループ メール アドレスはサポートされていません
考えられる解決策:
* プライマリ SMTP アドレスが無効な値です。 この問題を解決するには、ソース ユーザーのメール プロパティを更新する必要がある可能性が高いです。 詳細については、Microsoft 365 へのディレクトリ同期の準備に関する記事を参照してください。
* userType プロパティがタイプ guest または member としてプロビジョニングされていることを確認してください。 これは、属性マッピングを確認して、userType 属性のマップ方法を確認することで修正できます。
* ユーザーのメール アドレスが、テナント内のグループのメール アドレスと一致しています。 2 つのオブジェクトのうちの 1 つのメール アドレスを更新してください。
InvitationCreation
FailureAmbiguousUser
招待されたユーザーには、ターゲット テナント内の内部ユーザーと一致するプロキシ アドレスがあります。 プロキシ アドレスは一意である必要があります。 このエラーを解決するには、ターゲット テナント内の既存の内部ユーザーを削除するか、同期スコープからこのユーザーを削除します。
Microsoft Entra ID
CannotUpdateObjects
MasteredOnPremises
ターゲット テナント内のユーザーが最初に AD から Microsoft Entra ID に同期され、外部ユーザーに変換された場合、権限のソースは引き続きオンプレミスにあり、ユーザーを更新することはできません。 テナント間同期ではユーザーを更新できません
EntityTypeNotSupported グループを使って、プロビジョニングの対象ユーザーを決定できます。 グループ オブジェクトは同期できません。 お客様による対応は必要ありません。 これはスキップされるイベントです。 オンデマンドでプロビジョニングを使っている場合は、必ずプロビジョニングするグループではなくユーザーを選んでください。

次のステップ