排查 Microsoft Entra B2B 协作的常见问题
适用于: 员工租户 外部租户(了解详细信息)
以下是 Microsoft Entra B2B 协作的常见问题的一些补救措施。
如果标识提供者 (IdP) 的来宾用户无法登录到 Microsoft Entra ID 中的资源租户并收到错误代码 AADSTS50020,有几个可能的原因。 请参阅“故障排除”一文以了解错误 AADSTS50020。
当 B2B 直接连接在尝试访问其他组织的 Teams 共享通道时看到以下错误消息时,外部组织尚未配置多重身份验证信任设置:
你尝试访问的组织需要更新其设置才能让你登录。
AADSTS90071:<组织>的管理员必须更新其访问设置以接受入站多重身份验证。
托管 Teams 共享通道的组织必须启用多重身份验证的信任设置,以允许访问 B2B 直接连接用户。 信任设置在组织的跨租户访问设置中可配置。
配置跨租户访问设置时,如果收到显示“由于对象限制,未能更新策略”的错误,则你已达到策略对象的限制 25 KB。 我们正在努力提高此限制。 如果需要能够计算当前策略与此限制的接近值,请执行下列操作:
打开 Microsoft Graph 浏览器,然后执行以下操作:
GET https://graph.microsoft.com/beta/policies/crosstenantaccesspolicy
复制整个 JSON 响应并将其另存为 txt 文件,例如
policyobject.txt
。打开 PowerShell 并运行以下脚本,使用文本文件替换第一行中的文件位置:
$policy = Get-Content “C:\policyobject.txt”
$maxSize = 1024*25
$size = [System.Text.Encoding]::UTF8.GetByteCount($policy)
write-host "Remaining Bytes available in policy object"
$maxSize - $size
write-host "Is current policy within limits?"
if ($size -le $maxSize) { return “valid” }; else { return “invalid” }
配置跨租户访问设置时,如果默认阻止访问所有应用,用户将无法读取使用 Microsoft Rights Management 服务(也称为 OME)加密的电子邮件。 若要避免此问题,建议配置出站设置以允许用户访问此应用 ID:00000012-0000-0000-c000-000000000000。 如果这是唯一允许的应用程序,则默认情况下将阻止对所有其他应用的访问。
在外部用户未填充到列表中的情况下,可能需要几分钟复制对象。
默认情况下,搜索现有来宾用户的功能在 SharePoint Online (SPO) 人员选取器中处于“关闭”状态以匹配旧行为。
可使用“ShowPeoplePickerSuggestionsForGuestUsers”设置在租户和网站集级别启用此功能。 可使用 Set-SPOTenant 和 Set-SPOSite cmdlet 设置此功能,这将允许用户搜索目录中的所有现有来宾用户。 租户范围中的更改不会影响已经预配的 SPO 站点。
默认情况下,SharePoint Online 和 OneDrive 有自己的外部用户选项集,而不使用 Microsoft Entra ID 的设置。 需要启用 SharePoint 和 OneDrive 与 Microsoft Entra B2B 的集成,以确保选项在那些应用程序中一致。
如果收到无权邀请用户的通知,请在“Microsoft Entra ID”>“用户”>“用户设置”>“外部用户”>“管理外部协作设置”下验证你的用户帐户是否有权邀请外部用户:
如果最近修改了这些设置或为用户分配了“来宾邀请者”角色,可能有 15-60 分钟的延迟更改才生效。
常见错误包括:
受邀用户所在组织正在使用 Microsoft Entra ID,但其中不存在特定用户帐户(例如,用户不存在于 Microsoft Entra contoso.com 中)。 contoso.com 的管理员可能会设置一个策略以阻止创建用户。 用户必须向其管理员进行核实以确定是否允许外部用户。 外部用户的管理员可能需要在其域中允许电子邮件验证的用户(请参阅有关允许电子邮件验证的用户的此文章)。
如果使用联合身份验证,并且用户在 Microsoft Entra ID 中不存在,则无法邀请该用户。
要解决此问题,外部用户的管理员必须将该用户的帐户同步到 Microsoft Entra ID。
当我们检查用户能否受邀加入你的租户时,我们检查的其中一项便是 proxyAddress 是否存在冲突。 其中包括用户在其主租户中的任何 proxyAddresses,以及你的租户中本地用户的任何 proxyAddress。 对于外部用户,我们会将电子邮件添加到现有 B2B 用户的 proxyAddress。 对于本地用户,可以要求他们使用其既有帐户进行登录。
当目录中的其他对象具有与它的某个 proxyAddresses 相同的受邀电子邮件地址时,就会发生这种情况。 另一个冲突对象可能是用户、组或Microsoft 365 联系人。
要修复此冲突,请在Microsoft 365 管理中心内搜索电子邮件地址以查找冲突对象。 必须使用 Microsoft Graph API 移除该电子邮件地址。
要修复此冲突,请执行以下操作:
- 登录 Microsoft 365 管理中心。
- 浏览到“用户”>“所有用户”,并搜索要尝试邀请的电子邮件地址。
- 从 Microsoft Graph 用户对象中移除电子邮件。
- 访问“用户”>“联系人”,查看是否存在使用该电子邮件地址的联系人。
- 移除关联的 Microsoft Graph 联系人对象。
- 浏览到“团队和组”>“活跃团队和组”,并搜索要尝试邀请的电子邮件地址,并更改电子邮件地址(如果找到)。
移除冲突电子邮件地址后,即可邀请用户。
添加或邀请包含与目录中现有 Contact 对象 匹配的电子邮件的来宾时,不会填充来宾用户对象的 proxyAddresses 属性。 此外,从本地 AD 同步联系人对象时,如果来宾用户具有匹配的 proxyAddresses 属性,则会从现有来宾用户中删除冲突的 proxyAddresses 属性。
邀请兑换过程已更新,以便此方案不再导致实时兑换或电子邮件一次性密码身份验证的问题。 以前,外部 ID 仅搜索 proxyAddresses 属性,因此当无法找到匹配项时,使用直接链接或一次性密码进行兑换会失败。 现在,外部 ID 搜索 proxyAddresses 和受邀的电子邮件属性。
若要识别目录中存在冲突的用户对象,请使用以下 PowerShell 步骤:
- 打开 Microsoft Graph PowerShell 模块并运行
Connect-MgGraph
。 - 至少以要在其中检查重复联系人对象的 Microsoft Entra 租户的目录读取者身份登录。
- 运行 PowerShell 命令
Get-MgContact -All | ? {$_.Mail -match 'user@domain.com'}
。
由于受邀帐户 user@contoso.com 变为 user_contoso.com#EXT#@fabrikam.onmicrosoft.com,“#”是 Microsoft Entra B2B 协作或外部用户的 UPN 中的保留字符。 因此,不允许来自本地的 UPN 中的 # 登录到 Microsoft Entra 管理中心。
外部用户只能添加到“已分配”或“安全”组,而不能分配到在本地控制的组。
被邀请者应该向其 ISP 或垃圾邮件筛选器查询,以确保允许以下地址:Invites@microsoft.com
备注
- 对于中国世纪互联运营的 Azure 服务,发送方地址是 Invites@oe.21vianet.com。
- 对于 Microsoft Entra 政府云,发送方地址为 invites@azuread.us。
为遵守隐私法规,在以下情况下,API 不会在电子邮件邀请中包含自定义邮件:
- 邀请方在邀请租户中没有电子邮件地址
- 应用服务主体发送邀请
如果此方案非常重要,则可取消 API 邀请电子邮件,并通过所选的电子邮件机制发送邮件。 请咨询所属组织的法律顾问,确保通过这种方式发送的任何电子邮件均符合隐私法规。
具有来宾帐户的某个用户无法登录,并收到以下错误消息:
AADSTS65005: Using application 'AppName' is currently not supported for your organization contoso.com because it is in an unmanaged state. An administrator needs to claim ownership of the company by DNS validation of contoso.com before the application AppName can be provisioned.
该用户具有 Azure 用户帐户,是已被放弃的或非托管的病毒性租户。 此外,租户中没有任何管理员。
若要解决此问题,你必须接管被放弃的租户。 请参阅 在 Microsoft Entra ID 中以管理员身份接管非托管目录。 你还必须访问相关域后缀的面向 Internet 的 DNS,以便提供直接证据来证明你控制着该命名空间。 在租户返回到托管状态后,请与客户讨论保留用户和经验证的域名是否是其组织的最佳选择。
如果标识租户是实时 (JIT) 或病毒性租户(独立的不受管 Azure 租户),则只有来宾用户可以重置其密码。 有时,组织将接管在员工使用其工作电子邮件地址注册服务时创建的病毒性租户的管理。 组织接管病毒性租户后,只有该组织中的管理员可以重置用户密码或启用 SSPR。 如果需要,作为邀请方组织,你可以从目录中删除来宾用户帐户并重新发送邀请。
备注
自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读有关弃用的更新。 在此日期之后,对这些模块的支持仅限于到 Microsoft Graph PowerShell SDK 的迁移帮助和安全性修复。 弃用的模块将持续运行至 2025 年 3 月 30 日。
我们建议迁移到 Microsoft Graph PowerShell,以便与 Microsoft Entra ID(以前称为 Azure AD)进行交互。 有关常见迁移问题,请参阅迁移常见问题解答。 注意:2024 年 6 月 30 日之后,MSOnline 版本 1.0.x 可能会遇到中断。
从 2019 年 11 月 18 日开始,你的目录中的来宾用户(所定义的其 userType 属性为 Guest 的用户帐户)被系统阻止使用 Azure AD PowerShell V1 模块。 之后,用户需要成为成员用户(userType 为 Member)或使用 Azure AD PowerShell V2 模块。
在 Azure 美国政府云中,可在 Azure 美国政府云中且支持 B2B 协作的租户之间进行 B2B 协作。 如果你邀请的用户所属的租户尚不支持 B2B 协作,则会出现错误。 有关详细信息和限制,请参阅 Microsoft Entra ID P1 和 P2 变体。
如果需要与 Azure 美国政府云外部的 Microsoft Entra 组织协作,可使用 Microsoft 云设置来实现 B2B 协作。
尝试邀请 B2B 协作用户时,可能会看到以下错误消息:“此邀请被跨租户访问设置阻止。 你的组织和受邀用户的组织中的管理员都必须配置跨租户访问设置以允许此邀请。”如果 B2B 协作受支持但却被跨租户访问设置阻止,则会出现此错误消息。 请检查跨租户访问设置,确保设置允许与用户进行 B2B 协作。 尝试与单独的 Microsoft Azure 云中的另一个 Microsoft Entra 组织协作时,可以使用 Microsoft 云设置启用 Microsoft Entra B2B 协作。
在极少情况下,你可能会看到此消息:“无法完成此操作,因为已在受邀用户的租户中禁用 Microsoft B2B 跨云辅助角色应用程序。 请让受邀用户的管理员重新启用它,然后重试。” 此错误意味着已在 B2B 协作用户的主租户中禁用 Microsoft B2B 跨云辅助角色应用程序。 此应用一般处于已启用状态,但用户主租户中的管理员可能通过 PowerShell 或 Microsoft Entra 管理中心禁用了此应用(请参阅禁用用户登录方式)。 用户的主租户中的管理员可以通过 PowerShell 或 Microsoft Entra 管理中心重新启用该应用。 在管理中心中,搜索 “Microsoft B2B 跨云辅助角色” 以查找该应用,选择它,然后选择重新启用它。
在你使用自助服务注册功能(如自定义用户属性或用户流)时,系统会自动创建一个名为 aad-extensions-app. Do not modify. Used by AAD for storing user data.
的应用。 Microsoft Entra 外部 ID 使用它来存储有关注册的用户和收集的自定义属性的信息。
如果将 aad-extensions-app
意外删除,则你有 30 天的时间可以恢复它。 可以使用 Microsoft Graph PowerShell 模块还原应用。
- 启动 Microsoft Graph PowerShell 模块并运行
Connect-MgGraph
。 - 至少以要为其还原已删除应用的 Microsoft Entra 租户的应用程序管理员身份登录。
- 运行 PowerShell 命令
Get-MgDirectoryDeletedItem -DirectoryObjectId {id}
。 示例:
Get-MgDirectoryDeletedItem -DirectoryObjectId '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Id DeletedDateTime
-- ---------------
00aa00aa-bb11-cc22-dd33-44ee44ee44ee 8/30/2021 7:37:37 AM
- 运行 PowerShell 命令
Restore-MgDirectoryDeletedItem -DirectoryObjectId {id}
。 将此命令的{id}
部分替换为之前步骤中的DirectoryObjectId
。
你现在应该会在 Microsoft Entra 管理中心中看到恢复的应用。
尝试登录到租户时,可能会看到以下错误消息:“网络管理员已限制可以访问的组织。 请联系你的 IT 部门以取消阻止访问”。此错误与租户限制设置相关。 若要解决此问题,请让 IT 团队按照本文中的说明进行操作。
在访问 所有资源(以前为“所有云应用”)时,部署密钥并具有条件访问策略(以前为“所有云应用”) 时需要防钓鱼身份验证的条件访问策略,当用户尝试将密钥添加到 Microsoft Authenticator 时,可能会遇到循环问题。 有关详细信息和可能的解决方法,请参阅 身份验证强度条件访问策略循环的解决方法。
你可能会看到以下消息:“此邀请被组织中的跨租户访问设置阻止。 管理员必须配置跨租户访问设置以允许此邀请。”在这种情况下,请让管理员检查跨租户访问设置。