本文介绍使用 Microsoft Entra 管理中心配置跨租户同步的步骤。 配置后,Microsoft Entra ID 会自动预配和取消预配目标租户中的 B2B 用户。
有关此服务的功能、工作原理以及常见问题解答的重要详细信息,请参阅使用 Microsoft Entra ID 自动将用户预配到 SaaS 应用程序和取消预配。
重要
跨云同步目前以预览版提供。 这些与预发行产品相关的信息在发布前可能进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。
本文介绍使用 Microsoft Entra 管理中心在 Microsoft 云之间配置跨租户同步的步骤,例如Microsoft Azure 商业版和 Microsoft Azure 政府版。 配置后,Microsoft Entra ID 会自动预配和取消预配目标租户中的 B2B 用户。
有关此服务的功能、工作原理以及常见问题解答的重要详细信息,请参阅使用 Microsoft Entra ID 自动将用户预配到 SaaS 应用程序和取消预配。 有关跨租户同步与跨云同步之间的差异,请参阅 常见问题中的跨云同步。
支持的云对
跨租户同步支持以下云对:
来源 | 目标 | Azure 门户链接域 |
---|---|---|
Azure 商业版 | Azure 商业版 | portal.azure.com -->portal.azure.com |
Azure 政府云 | Azure 政府云 | portal.azure.us -->portal.azure.us |
跨云同步支持以下云对:
来源 | 目标 | Azure 门户链接域 |
---|---|---|
Azure 商业版 | Azure 政府云 | portal.azure.com -->portal.azure.us |
Azure 政府云 | Azure 商业版 | portal.azure.us -->portal.azure.com |
Azure 商业版 | 由世纪互联运营的 Azure (中国 Azure) |
portal.azure.com -->portal.azure.cn |
学习目标
学完本文后,你将能够:
- 在目标租户中创建 B2B 用户
- 在目标租户中删除 B2B 用户
- 使用户特性在源租户和目标租户之间保持同步
先决条件
源租户
目标租户
步骤 1:在两个租户中启用跨云设置
源租户
登录到源租户的 Microsoft Entra 管理中心 。
浏览到“标识”>“外部标识”>“跨租户访问设置”。
在 “Microsoft云设置 ”选项卡上,选中要与之协作的云的复选框,例如 Microsoft Azure 政府版。
云列表因你位于的云而异。 有关详细信息,请参阅 Microsoft云设置。
选择“保存”。
目标
登录到目标租户 的 Microsoft Entra 管理中心 。
浏览到“标识”>“外部标识”>“跨租户访问设置”。
在 “Microsoft云设置 ”选项卡上,选中源租户的跨云同步复选框,例如 Microsoft Azure Commercial。
选中此复选框时,它会创建具有以下权限的服务主体:
- User.ReadWrite.CrossCloud
- User.Invite.All
- Organization.Read.All
- Policy.Read.All
选择“保存”。
步骤 2:在目标租户中启用用户同步
目标租户
登录到目标租户 的 Microsoft Entra 管理中心 。
浏览到 Entra ID>外部标识>跨租户访问设置。
在组织设置选项卡上,选择添加组织。
通过键入租户 ID 或域名并选择添加来添加源租户。
在已添加组织的“入站访问”下,选择“继承自默认项”。
选择跨租户同步选项卡。
选中“允许用户同步到此租户”复选框。
选择“保存”。
如果看到“启用跨租户同步和自动兑换”对话框询问你是否要启用自动兑换,请选择“是”。
选择“是”会在目标租户中自动兑换邀请。
步骤 3:在目标租户中自动兑换邀请
目标租户
在此步骤中,你自动兑换邀请,使源租户中的用户不必接受同意提示。 必须同时在源租户(出站)和目标租户(入站)中选中此设置。 有关详细信息,请参阅 自动兑换设置。
步骤 4:在源租户中自动兑换邀请
源租户
在此步骤中,你自动在源租户中兑换邀请。
登录到源租户的 Microsoft Entra 管理中心 。
浏览到 Entra ID>外部标识>跨租户访问设置。
在组织设置选项卡上,选择添加组织。
通过键入租户 ID 或域名并选择添加来添加目标租户。
在目标组织的“出站访问”下,选择“继承自默认项”。
选择“信任设置”选项卡。
选中自动兑换租户<租户>邀请”复选框。
选择“保存”。
步骤 5:在源租户中创建配置
源租户
步骤 6:测试与目标租户的连接
源租户
在源租户中,应该会看到新的配置。 否则,请在配置列表中选择你的配置。
选择开始。
将“预配模式”设置为“自动”。
在“管理员凭据”部分下,将“身份验证方法”更改为“跨租户同步策略”。
在租户 ID 框中,输入目标租户的租户 ID。
选择测试连接以测试连接。
应会看到一条消息,指出提供的凭据已被授权启用预配。 如果测试连接失败,请参阅本文后面的 常见方案和解决方案 。
选择“保存”。
“映射”和“设置”部分随即显示。
关闭“预配”页面。
步骤 7:定义谁在预配范围中
源租户
借助 Microsoft Entra 预配服务,可通过以下一种或两种方式定义将预配的人员:
- 基于对配置的分配
- 基于用户的特性
先小部分测试。 在向所有用户推出之前,请先在少量用户中进行测试。 如果预配范围设置为分配的用户和组,可以通过将一两个用户分配到配置来控制它。 如下一步中所述,可以通过创建基于特性的范围筛选器来进一步细化属于预配范围的人员。
在源租户中选择“预配”,然后展开“设置”部分。
在“范围”列表中,选择是同步源租户中的所有用户,还是仅同步分配到配置的用户。
建议选择仅同步已分配的用户和组,而不是同步所有用户和组。 减少范围内的用户数可以提高性能。
如果进行了任何更改,请选择“保存”。
在“配置”页面上,选择用户和组。
若要使跨租户同步工作,必须向配置分配至少一个内部用户。
选择“添加用户/组”。
在“添加分配”页面中,选择“用户和组”下的“未选择任何内容”。
在用户和组窗格中,搜索并选择要向配置分配的一个或多个内部用户或组。
如果你选择了一个要向配置分配的组,则只有属于该组中直接成员的用户才会在预配范围内。 可以选择静态组或动态组。 该分配不会级联到嵌套组。
选中“选择”。
选择“分配”。
有关详细信息,请参阅 将用户和组分配到应用程序。
步骤 8:(可选)使用范围筛选器定义属于预配范围的人员
源租户
无论在上一步中对范围选择的值如何,你都可以通过创建基于特性的范围筛选器来进一步限制同步的用户。
在源租户中选择“预配”,然后展开“映射”部分。
选择“预配 Microsoft Entra ID 用户”以打开“属性映射”页面。
在源对象范围下,选择所有记录。
在源对象范围页面上,选择添加范围筛选器。
添加任何范围筛选器,定义哪些用户属于预配范围内。
若要配置范围筛选器,请参阅使用范围筛选器确定要预配的用户或组的范围中提供的说明。
依次选择确定和保存,保存所做的全部更改。
如果添加了一个筛选器,你将看到一条消息,指出保存更改将导致重新同步所有已分配的用户和组。 这可能需要很长的时间,具体取决于目录的大小。
选择是并关闭特性映射页面。
步骤 9:查看特性映射
源租户
通过特性映射,可以定义数据在源租户和目标租户之间的流动方式。 有关如何自定义默认属性映射的信息,请参阅 教程 - 在 Microsoft Entra ID 中自定义 SaaS 应用程序的用户预配属性映射。
在源租户中选择“预配”,然后展开“映射”部分。
选择“预配 Microsoft Entra ID 用户”。
在特性映射页面上,在特性映射部分向下滚动以查看租户之间同步的用户特性。
第一个属性 alternativeSecurityIdentifier 是一个内部属性,用于跨租户唯一标识用户、将源租户中的用户与目标租户中的现有用户匹配,并确保每个用户只有一个帐户。 无法更改匹配的属性。 尝试更改匹配属性或添加其他匹配属性将导致
schemaInvalid
错误。选择“成员(userType)”属性以打开“编辑属性”页面。
查看“userType”属性的“常量值”设置。
此设置定义将在目标租户中创建的用户类型,可以是下表中的值之一。 默认情况下,用户将创建为外部成员(B2B 协作用户)。 有关详细信息,请参阅 Microsoft Entra B2B 协作用户的属性。
常量值 说明 成员 默认。 用户将创建为目标租户中的外部成员(B2B 协作用户)。 用户将能够充当目标租户的任何内部成员。 来宾 用户将创建为目标租户中的外部来宾(B2B 协作用户)。 注意
如果目标租户中已存在 B2B 用户,则 成员(userType) 不会更改为 成员,除非 将“应用此映射 ”设置设置为 “始终”。
所选用户类型具有以下应用或服务限制(但不限于):
应用或服务 限制 Power BI - Power BI 中对 UserType 成员的支持目前为预览版。 有关详细信息,请参阅 使用 Microsoft Entra B2B 将 Power BI 内容分发给外部来宾用户。 Azure 虚拟桌面 - 有关限制,请参阅 Azure 虚拟桌面的先决条件。 Microsoft Teams - 有关限制,请参阅与其他 Microsoft 365 云环境中的来宾协作。 如果要定义任何转换,在特性映射页面上选择要转换的特性,例如 displayName。
将映射类型设置为表达式。
在表达式框中,输入转换表达式。 例如,对于显示名称,可以执行以下操作:
- 颠倒名字和姓氏,并在中间加一个逗号。
- 在显示名称末尾添加一个括在括号中的域名。
有关示例,请参阅 参考,了解如何在 Microsoft Entra ID 中编写属性映射的表达式。
提示
可以通过更新跨租户同步的架构来映射目录扩展。 有关详细信息,请参阅在跨租户同步中映射目录扩展。
步骤 10:指定其他预配设置
源租户
在源租户中选择“预配”,然后展开“设置”部分。
选中发生故障时发送电子邮件通知复选框。
在通知电子邮件框中输入应接收预配错误通知的人员或组的电子邮件地址。
电子邮件通知在作业进入隔离状态的 24 小时内发送。 有关自定义警报,请参阅了解预配与 Azure Monitor 日志的集成方式。
若要防止意外删除,请选择防止意外删除并指定阈值。 默认情况下,阈值设置为 500。
有关详细信息,请参阅 Microsoft Entra 预配服务中启用意外删除防护。
选择保存,保存任何更改。
步骤 11:测试按需预配
源租户
完成配置后,可以使用其中一个用户测试按需预配。
在源租户中,导航至Entra ID>外部标识>跨租户同步。
选择配置,然后选择你的配置。
选择“按需预配”。
在选择用户或组框中,搜索并选择一个测试用户。
选择“预配”。
片刻后,将显示执行操作页面,其中包含有关在目标租户中预配测试用户的信息。
如果用户不在范围内,你将看到一个页面,其中包含有关跳过测试用户的原因的信息。
在按需预配页面上,可以查看有关预配的详细信息,并可以选择“重试”。
在目标租户中,验证已预配测试用户。
如果一切按预期工作,请将其他用户分配到配置。
有关详细信息,请参阅 Microsoft Entra ID 中的按需预配。
步骤 12:启动预配作业
源租户
预配作业对“设置”部分的“范围”中定义的所有用户启动初始同步周期。 初始周期执行的时间比后续周期长,只要 Microsoft Entra 配置服务正在运行,后续周期大约每 40 分钟就会进行一次。
步骤 13:监视预配
源租户和目标租户
启动预配作业后,可以监视其状态。
在源租户的“概述”页面上,检查进度栏来查看预配周期的状态以及完成进度。 有关详细信息,请参阅 检查用户预配的状态。
如果预配疑似处于非正常状态,配置将进入隔离状态。 有关详细信息,请参阅 隔离状态中的应用程序预配。
选择预配日志来确定预配成功或预配失败的用户。 默认情况下,日志按配置的服务主体 ID 进行筛选。 有关详细信息,请参阅 Microsoft Entra ID 中的预配日志。
选择 “审核日志 ”以查看Microsoft Entra ID 中的所有已记录事件。 有关详细信息,请参阅 Microsoft Entra ID 中的审核日志。
还可以查看目标租户中的审核日志。
在目标租户中,选择用户>审核日志,查看记录的事件进行用户管理。 目标租户中的跨租户同步将记录为“Microsoft.Azure.SyncFabric”应用程序执行组件。
步骤 14:配置离开设置
目标租户
即使用户是在目标租户中预配的,他们仍然能够删除自己。 如果用户移除了自己,并且他们处于范围内,则会在下一个预配周期中再次预配这些用户。 如果要使用户无法从你的组织中删除自己,则必须配置外部用户离开设置。
在目标租户中,浏览到 Entra ID>外部身份>外部协作设置。
在外部用户离开设置下,选择是否允许外部用户自行离开组织。
此设置也适用于 B2B 协作和 B2B 直连,因此,如果你将外部用户离开设置设置为否,B2B 协作用户和 B2B 直连用户将无法自行离开组织。 有关详细信息,请参阅 作为外部用户离开组织。
常见场景和解决方案
症状 - 测试连接失败并出现 AzureActiveDirectoryCrossTenantSyncPolicyCheckFailure
在源租户中配置跨租户同步并测试连接时,会失败并显示以下错误消息之一:
源租户中未设置自动兑换
You appear to have entered invalid credentials. Please confirm you are using the correct information for an administrative account.
Error code: AzureActiveDirectoryCrossTenantSyncPolicyCheckFailure
Details: The source tenant has not enabled automatic user consent with the target tenant. Please enable the outbound cross-tenant access policy for automatic user consent in the source tenant. aka.ms/TroubleshootingCrossTenantSyncPolicyCheck
未在目标租户中设置自动兑换
You appear to have entered invalid credentials. Please confirm you are using the correct information for an administrative account.
Error code: AzureActiveDirectoryCrossTenantSyncPolicyCheckFailure
Details: The target tenant has not enabled inbound synchronization with this tenant. Please request the target tenant admin to enable the inbound synchronization on their cross-tenant access policy. Learn more: aka.ms/TroubleshootingCrossTenantSyncPolicyCheck
原因
此错误表明未在源租户和/或目标租户中设置自动兑换邀请的策略。
溶液
请执行以下步骤: 步骤 3:在目标租户中自动兑换邀请 和 步骤 4:在源租户中自动兑换邀请。
症状 - 测试连接失败并出现 ExternalTenantNotFound
在源租户中配置跨云同步并测试连接时,它会失败并显示以下错误消息:
You appear to have entered invalid credentials. Please confirm you are using the correct information for an administrative account.
Error code: ExternalTenantNotFound
Details: This tenant was not found by the authentication authority of the current cloud: <targetTenantId>. The authentication authority is https://login.microsoftonline.com/<targetTenantId>.
原因
此错误指示未选中“ 跨Microsoft云设置跨租户同步 ”复选框。
溶液
在源租户中,删除创建但无法连接的配置。
在目标租户中,创建新的配置,并确保选中 “跨Microsoft云设置跨租户同步 ”复选框,如 步骤 5:在源租户中创建配置。
症状 - 测试连接失败并出现 AzureActiveDirectoryTokenExpired
在源租户中配置跨云同步并测试连接时,它会失败并显示以下错误消息:
You appear to have entered invalid credentials. Please confirm you are using the correct information for an administrative account.
Error code: AzureActiveDirectoryTokenExpired
Details: The identity of the calling application could not be established.
原因
此错误表示尚未启用同步的跨云设置。
溶液
在目标租户中,在 “Microsoft云设置 ”选项卡上,选中源租户的跨云同步复选框。 请按照步骤 1 :在两个租户中启用跨云设置中的步骤操作。
症状 -“自动兑换”复选框处于禁用状态
配置跨租户同步时,自动兑换复选框处于禁用状态。
原因
你的租户没有 Microsoft Entra ID P1 或 P2 许可证。
溶液
必须具有 Microsoft Entra ID P1 或 P2 才能配置信任设置。
症状 - 目标租户中最近删除的用户未还原
在目标租户中软删除一个同步的用户后,下一个同步周期中未还原该用户。 如果你尝试使用按需预配来软删除某用户,再还原该用户,这可能会导致用户重复。
原因
不支持在目标租户中还原以前软删除的用户。
溶液
在目标租户中手动还原软删除的用户。 有关详细信息,请参阅 使用 Microsoft Entra ID 还原或删除最近删除的用户。
症状 - 由于用户启用了短信登录,因此跳过用户
从同步中跳过用户。 范围步骤包括以下状态为 false 的筛选器:“Filter external users.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 不会更新:
- 手动邀请用户时,UPN 和邮件是不同的。
- 在启用跨租户同步之前,已邀请用户。
- 用户从未接受邀请,因此它们处于“挂起接受状态”。
- 将用户引入跨租户同步的范围。
溶液
若要解决此问题,请针对受影响的用户运行按需预配以更新 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 个请求。 有关详细信息,请参阅 按需预配的已知限制。