如何下载和分析 Microsoft Entra 预配日志
Microsoft Entra 预配日志提供有关租户中发生的预配事件的详细信息。 可以使用预配日志中捕获的信息来帮助排查已预配用户的问题。
本文介绍从 Microsoft Entra 管理中心下载预配日志的选项以及分析日志的方法。 此外还介绍了错误代码和特殊注意事项。
先决条件
- 一个工作 Microsoft Entra 租户,具有与之关联的 Microsoft Entra P1 或 P2 许可证。
- 报告读取者是访问预配日志所需的最低特权角色。
- 有关角色的完整列表,请参阅按任务列出的最低特权角色。
如何查看设置日志
可通过多种方式查看或分析设置日志:
- 在 Microsoft Entra 管理中心查看。
- 通过诊断设置将日志流式传输到 Azure Monitor。
- 通过工作簿模板分析日志。
- 通过 Microsoft Graph API 以编程方式访问日志。
- 将日志下载为 CSV 或 JSON 文件。
提示
本文中的步骤可能因开始使用的门户而略有不同。
如果要在 Microsoft Entra 管理中心访问活动日志:
- 至少以报告读取者身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“监视和运行状况”>“预配日志”。
如何下载设置日志
如果要下载设置日志,请从“设置日志”页选择“下载”。 筛选器设置尽量具体,以减少下载大小和时间。
CSV 格式
CSV 下载内容包含三个文件:
- ProvisioningLogs:下载除预配步骤和修改的属性之外的所有日志。
- ProvisioningLogs_ProvisioningSteps:包含预配步骤和更改 ID。 可以使用更改 ID 将事件与其他两个文件相联接。
- ProvisioningLogs_ModifiedProperties:包含已更改的特性和更改 ID。 可以使用更改 ID 将事件与其他两个文件相联接。
JSON 格式
若要打开 JSON 文件,请使用 Microsoft Visual Studio Code 等文本编辑器。 Visual Studio Code 提供语法突出显示,使文件更易于阅读。 还可以使用浏览器(例如 Microsoft Edge)以不可编辑的格式打开 JSON 文件。
整理 JSON 文件
下载的 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 中的示例。
-
$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON
现在,可以根据场景分析数据。 下面是几个示例:
输出 JSON 文件中的所有作业 ID:
foreach ($provitem in $JSONContent) { $provitem.jobId }
输出操作为“create”的事件的所有更改 ID:
foreach ($provitem in $JSONContent) {
if ($provItem.action -eq 'Create') {
$provitem.changeId
}
}
要点
以下是一些有关如何分析设置日志的提示和注意事项:
如果使用的是高级版,Microsoft Entra 管理中心会将报告的设置数据存储 30 天;如果使用的是免费版,则存储 7 天。 可以将设置日志路由到 Azure Monitor 日志,以便保留 30 天以上。
例如,可将更改 ID 特性用作唯一标识符,这可能有助于与产品支持人员交互。
你可能会看到不在范围内的用户的已跳过事件。
- 示例 1:如果范围设置为
all users and groups
且具有安装范围筛选器,则可能会看到不满足范围条件的用户被跳过的日志。 - 示例 2:如果将范围设置为
assigned users and groups
,则可能继续将日志中的用户视为跳过,即使这些用户并未分配给应用程序。 配置服务从目录接收更改的方式会导致这些用户出现。
- 示例 1:如果范围设置为
设置日志不显示角色导入(适用于 Amazon Web Services、Salesforce 和 Zendesk)。 可以在审核日志中找到角色导入日志。
错误代码
使用下表来更好地了解如何解决在预配日志中发现的错误。
错误代码 | 说明 |
---|---|
Conflict、 EntryConflict |
在 Microsoft Entra ID 或应用程序中更正有冲突的属性值。 或者,如果应该匹配并接管有冲突的用户帐户,请检查匹配特性配置。 有关配置匹配属性的详细信息,请参阅为 Microsoft Entra ID 中的 SaaS 应用程序自定义用户设置特性映射。 |
TooManyRequests | 由于应用接收的请求过多,因此拒绝了更新用户的此项尝试。 无需采取任何措施。 系统会自动重试,并向 Microsoft 发出此问题的通知。 |
InternalServerError | 目标应用返回了意外的错误。 目标应用程序出现的服务问题可能阻止了此操作正常进行。 此尝试将在 40 分钟后自动重试。 |
InsufficientRights、 MethodNotAllowed、 NotPermitted、 未授权 |
Microsoft Entra ID 已对目标应用程序进行身份验证,但无权执行更新。 查看目标应用程序提供的任何说明,以及相关的应用程序。 有关更多信息,请参阅将应用程序与 Microsoft Entra ID 集成的教程。 |
UnprocessableEntity | 目标应用程序返回了意外的响应。 目标应用程序的配置可能不正确,或者目标应用程序出现的服务问题可能阻止了此操作正常进行。 |
WebExceptionProtocolError | 连接到目标应用程序时发生 HTTP 协议错误。 无需采取任何措施。 此尝试将在 40 分钟后自动重试。 |
InvalidAnchor | 预配服务以前创建或匹配的用户不再存在。 确保该用户存在。 若要强制对所有用户进行新的匹配,请使用 Microsoft Graph API 重启作业。 重启预配将触发初始周期,这可能需要一段时间才能完成。 重启预配还会删除运行预配服务所用的缓存。 这意味着,必须再次评估租户中的所有用户和组,并可能会删除某些预配事件。 |
NotImplemented | 目标应用返回了意外的响应。 应用配置可能不正确,或者目标应用出现的服务问题可能阻止了此操作正常进行。 查看目标应用程序提供的任何说明,以及相关的应用程序。 有关更多信息,请参阅将应用程序与 Microsoft Entra ID 集成的教程。 |
MandatoryFieldsMissing, MissingValues |
由于缺少必需的值,无法创建用户。 更正源记录中缺少的特性值,或者检查匹配特性配置,确保未省略必填字段。 有关详细信息,请参阅为 Microsoft Entra ID 中的 SaaS 应用程序自定义用户设置特性映射。 |
SchemaAttributeNotFound | 由于指定的特性在目标应用程序中不存在,无法执行该操作。 如果要确保配置正确,请参阅为 Microsoft Entra ID 中的 SaaS 应用程序自定义用户设置特性 映射。 |
InternalError | Microsoft Entra 预配服务中发生内部服务错误。 无需采取任何措施。 此尝试将在 40 分钟后自动重试。 |
InvalidDomain | 由于特性值包含无效域名,无法执行该操作。 更新用户的域名,或将域名添加到目标应用程序中的允许列表。 |
超时 | 由于目标应用程序做出响应花费的时间过长,无法完成该操作。 无需采取任何措施。 此尝试将在 40 分钟后自动重试。 |
LicenseLimitExceeded | 由于该用户没有可用的许可证,无法在目标应用程序中创建该用户。 为目标应用程序购买更多的许可证。 或者,检查用户分配和特性映射配置,确保使用正确的特性分配正确的用户。 |
DuplicateTargetEntries | 由于发现目标应用程序中的多个用户使用了配置的匹配特性,无法完成该操作。 从目标应用程序中删除重复的用户,或者重新配置特性映射。 有关详细信息,请参阅为 Microsoft Entra ID 中的 SaaS 应用程序自定义用户设置特性映射。 |
DuplicateSourceEntries | 由于发现多个用户使用了配置的匹配特性,无法完成该操作。 删除重复的用户,或者重新配置特性映射。 有关详细信息,请参阅为 Microsoft Entra ID 中的 SaaS 应用程序自定义用户设置特性映射。 |
ImportSkipped | 评估每个用户时,系统将尝试从源系统导入该用户。 如果所导入的用户缺少特性映射中定义的匹配属性,则往往会发生此错误。 如果匹配特性的用户对象中缺少某个值,系统将无法评估范围限定、匹配或导出更改。 出现此错误并不意味着该用户在范围内,因为尚未评估用户的范围限定。 |
EntrySynchronizationSkipped | 预配服务已成功查询源系统并已识别用户。 未对用户采取进一步的操作,已跳过该用户。 用户可能已超出范围,或者用户可能已在无需做出进一步的更改的目标系统中。 |
SystemForCrossDomainIdentity ManagementMultipleEntriesInResponse |
用于检索用户或组的 GET 请求在响应中收到多个用户或组。 系统预期仅在响应中收到一个用户或组。 例如,如果你执行 GET Group 请求来检索某个组并提供筛选器来排除成员,而跨域标识管理系统 (SCIM) 终结点返回了这些成员,则此错误就会出现。 |
SystemForCrossDomainIdentity ManagementServiceIncompatible |
Microsoft Entra 配置服务无法分析来自非 Microsoft 应用程序的响应。 请与应用程序开发人员合作,确保 SCIM 服务器与 Microsoft Entra SCIM 客户端兼容。 |
SchemaPropertyCanOnlyAcceptValue | 目标系统中的属性只能接受一个值,但是源系统中的属性具有多个值。 确保将单值特性映射到引发错误的属性,将源中的值更新为单值,或从映射中删除该特性。 |
跨租户同步的错误代码
使用下表来更好地了解如何解决在跨租户同步的预配日志中发现的错误。
错误代码 | 原因 | 解决方案 |
---|---|---|
AzureActiveDirectoryCannot UpdateObjectsOriginated InExternalService |
用户的授权来源是 Exchange Online。 配置服务无法更新用户上的一个或多个 Exchange 属性(例如:extensionAttribute 1 - 15)。 当 dirSyncEnabled 属性从“True”更改为“False”时,这会影响目标租户中的用户。 | 直接在目标租户的 Exchange Online 中更新属性。 例如:Set-MailUser -Identity CloudMailUser5 -CustomAttribute2 "Updated with EXO PowerShell" |
Microsoft Entra ID CannotUpdateObjectsOriginated InExternalService |
同步引擎无法更新目标租户中的一个或多个用户属性。 由于强制实施授权源 (SOA),操作在 Microsoft Graph API 中失败。 目前,列表中显示以下属性: Mail showInAddressList |
在某些情况下(例如,当 showInAddressList 属性是用户更新的一部分时),同步引擎可能会在没有违规属性的情况下自动重试(用户)更新。 否则,你需要直接在目标租户中更新属性。 |
AzureDirectory B2BManagementPolicy CheckFailure |
允许自动兑换的跨租户同步策略失败。 同步引擎会进行检查,以确保目标租户的管理员已创建允许自动兑换的入站跨租户同步策略。 同步引擎还会检查源租户的管理员是否启用了自动兑换的出站策略。 |
确保已为源租户和目标租户启用自动兑换设置。 有关详细信息,请参阅自动兑换设置。 |
Microsoft Entra ID QuotaLimitExceeded |
租户中的对象数超出了目录限制。 Microsoft Entra ID 对可在租户中创建的对象数有限制。 |
检查是否可以提高配额。 若要了解目录限制和提高配额的步骤,请参阅 Microsoft Entra 服务限制和局限性。 |
InvitationCreationFailure | Microsoft Entra 预配服务尝试邀请目标租户中的用户。 该邀请失败。 | 进一步调查可能需要联系支持人员。 |
InvitationCreationFailureUserAccountDisabled | Microsoft Entra 配置服务尝试邀请目标租户中的用户。 该邀请失败。 | 用户存在于目标租户中,但帐户已禁用,邀请处于挂起状态。 在目标租户中启用用户帐户,并尝试再次设置用户。 |
Microsoft Entra ID 已禁止 |
外部协作设置已阻止邀请。 | 导航到用户设置,并确保允许外部协作设置。 |
InvitationCreation FailureInvalidPropertyValue |
可能的原因: * 主要 SMTP 地址为无效值。 * UserType 既不是来宾,也不是成员 * 不支持组电子邮件地址 |
可能的解决方案: * 主要 SMTP 地址具有有效值。 解决此问题可能需要更新源用户的邮件属性。 有关详细信息,请参阅准备与 Microsoft 365 进行目录同步 * 确保 userType 属性设置为来宾或成员类型。 检查属性映射,以了解 userType 属性的映射方式。 * 用户的电子邮件地址与租户中某个组的电子邮件地址一致。 更新两个对象其中之一的电子邮件地址。 |
InvitationCreation FailureAmbiguousUser |
受邀用户具有的代理地址与目标租户中的某个内部用户一致。 代理地址必须唯一。 | 若要解决此错误,请删除目标租户中的现有内部用户,或将此用户从同步范围中移除。 |
Microsoft Entra ID CannotUpdateObjects MasteredOnPremises |
如果目标租户中的用户最初从 AD 同步到 Microsoft Entra ID 并转换为外部用户,则授权来源仍在本地,并且无法更新用户。 | 无法通过跨租户同步来更新用户。 |
EntityTypeNotSupported | 组可用于确定预配范围内的用户。 无法同步组对象。 | 客户无需执行任何操作。 这是跳过的事件。 如果使用按需设置,请确保选择用户而不是要设置的组。 |