配置跨租户同步

本文介绍使用 Microsoft Entra 管理中心配置跨租户同步的步骤。 配置后,Microsoft Entra ID 会自动预配和取消预配目标租户中的 B2B 用户。 有关此服务的详细信息,包括其作用、工作原理和常见问题,请查阅 使用 Microsoft Entra ID 自动预配和取消预配 SaaS 应用程序

展示源租户与目标租户之间的跨租户同步的图表。

学习目标

学完本文后,你将能够:

  • 在目标租户中创建 B2B 用户
  • 在目标租户中删除 B2B 用户
  • 使用户特性在源租户和目标租户之间保持同步

先决条件

源租户的图标。
源租户

目标租户的图标。
目标租户

  • Microsoft Entra ID P1 或 P2 许可证。 有关详细信息,请参阅 许可证要求
  • 安全管理员角色用于配置跨租户访问设置。

步骤 1:规划预配部署

  1. 定义你希望如何 构建组织中的租户

  2. 了解 预配服务的工作原理

  3. 确定哪些人员属于预配范围

  4. 确定要在 租户之间映射的数据。

步骤 2:在目标租户中启用用户同步

目标租户的图标。
目标租户

  1. 登录到目标租户 的 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>外部标识>跨租户访问设置

  3. 在“组织设置”选项卡上,选择“添加组织”。

  4. 通过键入租户 ID 或域名并选择“添加”来添加源租户。

    显示“添加组织”窗格以添加源租户的屏幕截图。

  5. 在已添加组织的“入站访问”下,选择“继承自默认项”。

  6. 选择“跨租户同步”选项卡。

  7. 选中“允许用户同步到此租户”复选框

    显示“跨租户同步”选项卡的屏幕截图,其中显示了“允许用户同步到此租户”复选框。

  8. 选择“保存”。

  9. 如果看到“启用跨租户同步和自动兑换”对话框询问你是否要启用自动兑换,请选择“是”

    选择“是”会在目标租户中自动兑换邀请。

    显示“启用跨租户同步和自动兑换”对话框的屏幕截图,用于自动兑换目标租户中的邀请。

步骤 3:在目标租户中自动兑换邀请

目标租户的图标。
目标租户

在此步骤中,你自动兑换邀请,使源租户中的用户不必接受同意提示。 必须同时在源租户(出站)和目标租户(入站)中选中此设置。 有关详细信息,请参阅 自动兑换设置

  1. 在目标租户中的同一“入站访问设置”页上,选择“信任设置”选项卡。

  2. 选中“自动兑换租户 租户< 邀请”复选框>。

    如果之前在“启用跨租户同步和自动兑换”对话框中选择了“是”,则可能已选中此框。

    显示入站自动兑换复选框的屏幕截图。

  3. 选择“保存”。

步骤 4:在源租户中自动兑换邀请

源租户的图标。
源租户

在此步骤中,你自动在源租户中兑换邀请。

  1. 登录到源租户的 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>外部标识>跨租户访问设置

  3. 在“组织设置”选项卡上,选择“添加组织”。

  4. 通过键入租户 ID 或域名并选择“添加”来添加目标租户。

    显示用于添加目标租户的“添加组织”窗格的屏幕截图。

  5. 在目标组织的“出站访问”下,选择“继承自默认项”。

  6. 选择“信任设置”选项卡。

  7. 选中“自动兑换租户 租户< 邀请”复选框>。

    显示“出站自动兑换”复选框的截图。

  8. 选择“保存”。

步骤 5:在源租户中创建配置

源租户的图标。
源租户

  1. 在源租户中,导航至Entra ID>外部标识>跨租户同步

    显示Microsoft Entra 管理中心中的跨租户同步导航的屏幕截图。

    如果使用 Azure 门户,请浏览到“Microsoft Entra ID”“管理”>“跨租户同步”>

    显示 Azure 门户中跨租户同步导航的屏幕截图。

  2. 选择“配置”。

  3. 在页面顶部,选择“新建配置”。

  4. 提供配置的名称。

    显示名称和跨租户同步复选框的新配置的屏幕截图。

    可能会看到 “跨Microsoft云设置跨租户同步 ”复选框。 此功能目前正在分阶段部署。 此设置尚不起作用,不应尝试选中此复选框。

  5. 选择 创建

    刚创建的配置最长可能需要 15 秒才能显示在列表中。

步骤 6:测试与目标租户的连接

源租户的图标。
源租户

  1. 在源租户中,应该会看到新的配置。 否则,请在配置列表中选择你的配置。

    显示“跨租户同步配置”页和新配置的屏幕截图。

  2. 选择“开始”。

  3. 将“预配模式”设置为“自动”。

  4. 在“管理员凭据”部分下,将“身份验证方法”更改为“跨租户同步策略”。

    这是一个显示“预配”页面的屏幕截图,其中选中了“跨租户同步策略”。

  5. 在“租户 ID”框中,输入目标租户的租户 ID。

  6. 选择“测试连接”以测试连接。

    应会看到一条消息,指出提供的凭据已被授权启用预配。 如果测试连接失败,请参阅本文后面的 故障排除提示

    显示测试连接通知的屏幕截图。

  7. 选择“保存”。

    “映射”和“设置”部分随即显示。

  8. 关闭“预配”页面。

步骤 7:定义谁在预配范围中

源租户的图标。
源租户

借助 Microsoft Entra 预配服务,可通过以下一种或两种方式定义将预配的人员:

  • 基于对配置的分配
  • 基于用户的特性

先小部分测试。 在向所有用户推出之前,请先在少量用户中进行测试。 如果预配范围设置为分配的用户和组,可以通过将一两个用户分配到配置来控制它。 可以通过创建基于属性的范围筛选器(如下一步中所述),进一步精确定义预配范围内的人员。

  1. 在源租户中选择“预配”,然后展开“设置”部分。

    “预配”页的屏幕截图,其中显示了“设置”部分的“范围和预配状态”选项。

  2. 在“范围”列表中,选择是同步源租户中的所有用户,还是仅同步分配到配置的用户。

    建议选择“仅同步已分配的用户和组”,而不是“同步所有用户和组”。 减少范围内的用户数可以提高性能。

  3. 如果进行了任何更改,请选择“保存”。

  4. 在“配置”页面上,选择“用户和组”。

    若要使跨租户同步工作,必须向配置分配至少一个内部用户。

  5. 选择“添加用户/组”。

  6. 在“添加分配”页面中,选择“用户和组”下的“未选择任何内容”。

  7. 在“用户和组”窗格中,搜索并选择要向配置分配的一个或多个内部用户或组。

    如果你选择了一个要向配置分配的组,则只有属于该组中直接成员的用户才会在预配范围内。 可以选择静态组或动态组。 该分配不会级联到嵌套组。

  8. 选择“选择” 。

  9. 选择“分配”。

    该屏幕截图显示了“用户和组”页面,其中一个用户被分配到该配置。

    有关详细信息,请参阅 将用户和组分配到应用程序

步骤 8:(可选)使用范围筛选器定义属于预配范围的人员

源租户的图标。
源租户

无论在上一步中对“范围”选择的值如何,你都可以通过创建基于特性的范围筛选器来进一步限制同步的用户。

  1. 在源租户中选择“预配”,然后展开“映射”部分。

    显示“配置”页的屏幕截图,其中展开了“映射”部分。

  2. 选择“预配 Microsoft Entra ID 用户”以打开“属性映射”页面。

  3. 在“源对象范围”下,选择“所有记录”。

    “属性映射”页面的屏幕截图,展示了源对象范围。

  4. 在“源对象范围”页面上,选择“添加范围筛选器”。

  5. 添加任何范围筛选器,定义哪些用户属于预配范围内。

    要配置范围筛选器,请参阅“使用范围筛选器进行预配用户或组”的说明。

    显示包含示例筛选器的“添加范围筛选器”页的屏幕截图。

  6. 依次选择“确定”和“保存”,保存所做的全部更改。

    如果添加了一个筛选器,你将看到一条消息,指出保存更改将导致重新同步所有已分配的用户和组。 这可能需要很长的时间,具体取决于目录的大小。

  7. 选择“是”并关闭“特性映射”页面。

步骤 9:查看特性映射

源租户的图标。
源租户

通过特性映射,可以定义数据在源租户和目标租户之间的流动方式。 有关如何自定义默认属性映射的信息,请参阅 教程 - 在 Microsoft Entra ID 中自定义 SaaS 应用程序的用户预配属性映射

  1. 在源租户中选择“预配”,然后展开“映射”部分。

  2. 选择“预配 Microsoft Entra ID 用户”。

  3. 在“特性映射”页面上,在“特性映射”部分向下滚动以查看租户之间同步的用户特性。

    第一个属性 alternativeSecurityIdentifier 是一个内部属性,用于跨租户唯一标识用户、将源租户中的用户与目标租户中的现有用户匹配,并确保每个用户只有一个帐户。 无法更改匹配的属性。 尝试更改匹配属性或添加其他匹配属性将导致 schemaInvalid 错误。

    “属性映射”页的屏幕截图,其中显示了Microsoft Entra 属性的列表。

  4. 选择“成员(userType)”属性以打开“编辑属性”页面。

  5. 查看“userType”特性的“常量值”设置。

    此设置定义将在目标租户中创建的用户类型,可以是下表中的值之一。 默认情况下,用户将创建为外部成员(B2B 协作用户)。 有关详细信息,请参阅 Microsoft Entra B2B 协作用户的属性

    常量值 说明
    成员 默认。 用户将创建为目标租户中的外部成员(B2B 协作用户)。 用户将能够充当目标租户的任何内部成员。
    客人 用户将创建为目标租户中的外部来宾(B2B 协作用户)。

    注意

    如果目标租户中已存在 B2B 用户,则 成员(userType) 将不会更改为 Member,除非 将“应用此映射 ”设置设置为 “始终”。

    所选用户类型具有以下应用或服务限制(但不限于):

    应用或服务 限制
    Power BI - Power BI 中对 UserType 成员的支持目前为预览版。 有关详细信息,请参阅 使用 Microsoft Entra B2B 将 Power BI 内容分发给外部来宾用户
    Azure 虚拟桌面 - Azure 虚拟桌面不支持外部成员和外部来宾。

    显示成员属性的“编辑属性”页的屏幕截图。

  6. 如果要定义任何转换,在“特性映射”页面上选择要转换的特性,例如“displayName”。

  7. 将“映射类型”设置为“表达式”。

  8. 在“表达式”框中,输入转换表达式。 例如,对于显示名称,可以执行以下操作:

    • 颠倒名字和姓氏,并在中间加一个逗号。
    • 在显示名称末尾添加一个括在括号中的域名。

    有关示例,请参阅 参考,了解如何在 Microsoft Entra ID 中编写属性映射的表达式

    “编辑属性”页的屏幕截图,显示了 displayName 属性及“表达式”框。

提示

可以通过更新跨租户同步的架构来映射目录扩展。 有关详细信息,请参阅 跨租户同步中的映射目录扩展

步骤 10:指定其他预配设置

源租户的图标。
源租户

  1. 在源租户中选择“预配”,然后展开“设置”部分。

    “预配”页的屏幕截图,其中显示了“设置”部分的“范围和预配状态”选项。

  2. 选中“发生故障时发送电子邮件通知”复选框。

  3. 在“通知电子邮件”框中输入应接收预配错误通知的人员或组的电子邮件地址。

    电子邮件通知在作业进入隔离状态的 24 小时内发送。 有关自定义警报,请参阅 了解如何预配与 Azure Monitor 日志集成

  4. 若要防止意外删除,请选择“防止意外删除”并指定阈值。 默认情况下,阈值设置为 500。

    有关详细信息,请参阅 Microsoft Entra 预配服务中启用意外删除防护

  5. 选择“保存” 以保存所有更改。

步骤 11:测试按需预配

源租户的图标。
源租户

完成配置后,可以使用其中一个用户测试按需预配。

  1. 在源租户中,导航至Entra ID>外部标识>跨租户同步

  2. 选择“配置”,然后选择你的配置。

  3. 选择“按需预配”。

  4. 在“选择用户或组”框中,搜索并选择一个测试用户。

    “按需预配”页的屏幕截图,其中显示了所选的测试用户。

  5. 选择“预配”。

    片刻后,将显示“执行操作”页面,其中包含有关在目标租户中预配测试用户的信息。

    “执行操作”页的截图,其中显示了测试用户和修改的属性列表。

    如果用户不在范围内,你将看到一个页面,其中包含有关跳过测试用户的原因的信息。

    “判断用户是否在范围内”页面的屏幕截图,显示了有关为何跳过测试用户的信息。

    在“按需预配”页面上,可以查看有关预配的详细信息,并可以选择“重试”。

    “按需预配”页的屏幕截图,其中显示了有关预配的详细信息。

  6. 在目标租户中,验证已预配测试用户。

    目标租户的“用户”页的屏幕截图,其中显示了预配的测试用户。

  7. 如果一切按预期工作,请将其他用户分配到配置。

    有关详细信息,请参阅 Microsoft Entra ID 中的按需预配

步骤 12:启动预配作业

源租户的图标。
源租户

预配作业对“设置”部分的“范围”中定义的所有用户启动初始同步周期。 初始周期执行的时间比后续周期长,只要 Microsoft Entra 预配服务正在运行,后续周期大约每 40 分钟就会进行一次。

  1. 在源租户中,导航至Entra ID>外部标识>跨租户同步

  2. 选择“配置”,然后选择你的配置。

  3. 在“概述”页面上,查看预配详细信息。

    列出预配详细信息的“配置概述”页的屏幕截图。

  4. 选择“开始预配”以启动预配作业。

步骤 13:监视预配

源租户的图标。 目标租户的图标。
源租户和目标租户

启动预配作业后,可以监视其状态。

  1. 在源租户的“概述”页面上,检查进度栏来查看预配周期的状态以及完成进度。 有关详细信息,请参阅 检查用户预配的状态

    如果预配疑似处于非正常状态,配置将进入隔离状态。 有关详细信息,请参阅 隔离状态中的应用程序预配

    “配置概述”页的屏幕截图,其中显示了预配周期的状态。

  2. 选择“预配日志”来确定预配成功或预配失败的用户。 默认情况下,日志按配置的服务主体 ID 进行筛选。 有关详细信息,请参阅 Microsoft Entra ID 中的预配日志

    “预配日志”页的屏幕截图,其中列出了日志条目及其状态。

  3. 选择 “审核日志 ”以查看Microsoft Entra ID 中的所有已记录事件。 有关详细信息,请参阅 Microsoft Entra ID 中的审核日志

    “审核日志”页的屏幕截图,其中列出了日志条目及其状态。

    还可以查看目标租户中的审核日志。

  4. 在目标租户中,选择“用户”“审核日志”,查看记录的事件进行用户管理。 目标租户中的跨租户同步将会以 "Microsoft.Azure.SyncFabric" 应用程序作为行为执行者进行记录。

    目标租户中“审核日志”页的屏幕截图,其中列出了用户管理的日志条目。

步骤 14:配置离开设置

目标租户的图标。
目标租户

即使用户是在目标租户中预配的,他们仍然能够删除自己。 如果用户删除了自己,并且他们处于范围内,则会在下一个预配周期中再次预配这些用户。 如果要使用户无法从你的组织中删除自己,则必须配置“外部用户离开设置”。

  1. 在目标租户中,浏览到 Entra ID>外部身份>外部协作设置

  2. 在“外部用户离开设置”下,选择是否允许外部用户自行离开组织。

此设置也适用于 B2B 协作和 B2B 直连,因此,如果你将“外部用户离开设置”设置为“否”,B2B 协作用户和 B2B 直连用户将无法自行离开组织。 有关详细信息,请参阅 作为外部用户离开组织

故障排除提示

删除配置

按照以下步骤在“配置”页上删除配置。

  1. 在源租户中,导航至Entra ID>外部标识>跨租户同步

  2. 在“配置”页上,在要删除的配置旁边添加勾选标记。

  3. 选择“删除”,然后选择“确定”以删除配置。

    “配置”页的屏幕截图,其中显示了如何删除配置。

常见场景和解决方案

症状 - 测试连接失败并出现 AzureDirectoryB2BManagementPolicyCheckFailure

在源租户中配置跨租户同步并测试连接时,连接失败并出现以下错误消息:

You appear to have entered invalid credentials. Please confirm you are using the correct information for an administrative account.
Error code: AzureDirectoryB2BManagementPolicyCheckFailure
Details: Policy permitting auto-redemption of invitations not configured.

显示使用 AzureDirectoryB2BManagementPolicyCheckFailure 测试连接失败时出错的屏幕截图。

原因

此错误表示未设置在源租户和目标租户中自动兑换邀请的策略。

溶液

请执行以下步骤: 步骤 3:在目标租户中自动兑换邀请步骤 4:在源租户中自动兑换邀请

症状 -“自动兑换”复选框处于禁用状态

配置跨租户同步时,“自动兑换”复选框处于禁用状态。

显示已禁用的“自动兑换”复选框的屏幕截图。

原因

你的租户没有 Microsoft Entra ID P1 或 P2 许可证。

溶液

必须具有 Microsoft Entra ID P1 或 P2 才能配置信任设置。

症状 - 目标租户中最近删除的用户未还原

在目标租户中软删除一个同步的用户后,下一个同步周期中未还原该用户。 如果你尝试使用按需预配来软删除某用户,再还原该用户,这可能会导致用户重复。

原因

不支持在目标租户中还原以前软删除的用户。

溶液

在目标租户中手动还原软删除的用户。 有关详细信息,请参阅 使用 Microsoft Entra ID 还原或删除最近删除的用户

症状 - 由于用户启用了短信登录,因此跳过用户

从同步中跳过用户。 范围步骤包括以下状态为 false 的筛选器:“筛选外部用户.alternativeSecurityIds EQUALS 'None'”

原因

如果为用户启用了短信登录,则预配服务会跳过这些用户。

溶液

为用户禁用短信登录。 以下脚本演示如何使用 PowerShell 禁用短信登录。

##### Disable SMS Sign-in options for the users

#### Import module
Install-Module Microsoft.Graph.Users.Actions
Install-Module Microsoft.Graph.Identity.SignIns
Import-Module Microsoft.Graph.Users.Actions

Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All", "UserAuthenticationMethod.Read.All","UserAuthenticationMethod.ReadWrite","UserAuthenticationMethod.ReadWrite.All"

##### The value for phoneAuthenticationMethodId is 3179e48a-750b-4051-897c-87b9720928f7

$phoneAuthenticationMethodId = "3179e48a-750b-4051-897c-87b9720928f7"

#### Get the User Details

$userId = "objectid_of_the_user_in_Entra_ID"

#### validate the value for SmsSignInState

$smssignin = Get-MgUserAuthenticationPhoneMethod -UserId $userId


    if($smssignin.SmsSignInState -eq "ready"){   
      #### Disable Sms Sign-In for the user is set to ready

      Disable-MgUserAuthenticationPhoneMethodSmsSignIn -UserId $userId -PhoneAuthenticationMethodId $phoneAuthenticationMethodId
      Write-Host "SMS sign-in disabled for the user" -ForegroundColor Green
    }
    else{
    Write-Host "SMS sign-in status not set or found for the user " -ForegroundColor Yellow
    }



##### End the script

症状 - 用户无法预配,并出现错误 AzureActiveDirectoryForbidden

范围内的用户无法预配。 预配日志详细信息包括以下错误消息:

Guest invitations not allowed for your company. Contact your company administrator for more details.

原因

此错误指示目标租户中的来宾邀请设置配置了限制最多的设置:“组织中的任何人都不能邀请包括管理员在内的来宾用户(限制最严格)”。

溶液

将目标租户中的来宾邀请设置更改为限制较少的设置。 有关详细信息,请参阅 “配置外部协作设置”。

症状 - UserPrincipalName 不会为待接受状态的现有 B2B 用户更新

首次通过手动 B2B 邀请邀请用户时,邀请将发送到源用户电子邮件地址。 因此,使用源邮件值属性使用 UserPrincipalName (UPN) 前缀创建目标租户中的来宾用户。 有一些环境,源用户对象属性 UPN 和 Mail 具有不同的值,例如 Mail == user.mail@___domain.com 和 UPN == user.upn@otherdomain.com。 在这种情况下,目标租户中的来宾用户将被创建,UPN 为 user.mail_domain.com#EXT#@contoso.onmicrosoft.com

当源对象被放入跨租户同步的范围时,期望是除了其他属性外,目标来宾用户的 UPN 前缀将被更新,以匹配源用户的 UPN(使用上面的示例,该值将是:user.upn_otherdomain.com#EXT#@contoso.onmicrosoft.com)。 但是,这在增量同步周期期间不会发生,更改将被忽略。

原因

手动邀请到目标租户的 B2B 用户不接受或兑换邀请时,会出现此问题,因此其状态处于待接受状态。 通过电子邮件邀请用户时,会创建一个对象,其中包含一组从邮件填充的属性,其中一个属性就是 UPN,它指向源用户的邮件值。 如果以后决定将用户添加到跨租户同步的范围,系统将尝试基于 alternativeSecurityIdentifier 属性将源用户与目标租户中的 B2B 用户联接,但之前创建的用户没有填充 alternativeSecurityIdentifier 属性,因为邀请未兑换。 因此,系统不会将此视为新的用户对象,也不会更新 UPN 值。 以下情况中 UserPrincipalName 未更新:

  1. 手动邀请用户时,UPN 和邮件是不同的。
  2. 在启用跨租户同步之前,已邀请用户。
  3. 用户从未接受邀请,因此它们处于“挂起接受状态”。
  4. 将用户引入跨租户同步的范围。

溶液

若要解决此问题,请针对受影响的用户运行按需预配以更新 UPN。 还可以重启预配,为所有受影响的用户更新 UPN。 请注意,这会触发初始周期,对于大型租户来说可能需要很长时间。 若要获取处于挂起接受状态的手动受邀用户列表,可以使用脚本,请参阅以下示例。

Connect-MgGraph -Scopes "User.Read.All"
$users = Get-MgUser -Filter "userType eq 'Guest' and externalUserState eq 'PendingAcceptance'" 
$users | Select-Object DisplayName, UserPrincipalName | Export-Csv "C:\Temp\GuestUsersPending.csv"

然后,可以将 provisionOnDemand 与每个用户的 PowerShell 配合使用 。 此 API 的速率限制是每 10 秒 5 个请求。 有关详细信息,请参阅 按需预配的已知限制

后续步骤