无法从多个联合域登录到 Microsoft 365
问题
来自多个联合域 (顶级域或子域的用户) 无法登录到 Microsoft 365。 此外,他们会收到以下错误消息:
很抱歉,我们登录时遇到问题。AADSTS50107:请求的联合领域对象“http:// <ADFShostname>/adfs/services/trust”不存在。
原因
此问题由以下原因之一导致:
- 颁发转换规则需要将颁发者从默认 Active Directory 联合身份验证服务 (AD FS) 实例主机名更改为颁发者集(如果缺少联合的域)。
- 添加子域后,颁发转换规则不会更新。
当多个顶级域联合到租户的同一 AD FS 实例时,会出现此问题。
解决 方案
注意
自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读 弃用更新。 在此日期之后,对这些模块的支持仅限于 Microsoft Graph PowerShell SDK 和安全修补程序的迁移帮助。 弃用的模块将继续运行到 2025 年 3 月 30 日。
建议迁移到 Microsoft Graph PowerShell,以便与以前为 Azure AD) Microsoft Entra ID (交互。 有关常见的迁移问题,请参阅 迁移常见问题解答。 注意: MSOnline 1.0.x 版可能会在 2024 年 6 月 30 日之后遇到中断。
转到Microsoft Entra RPT 声明规则,然后单击“下一步”。
(sourceAnchor) ->User Sign In (指定不可变 ID 的值,例如 UPN 或邮件) 。 如果多个顶级域是联合的,则当系统提示你响应“与 AD FS 的Microsoft Entra ID信任是否支持多个域?”时,选择“是”
连接到 Microsoft 365 PowerShell,然后将域列表导出到 .csv 文件 (例如 output.csv) 。 为此,请运行以下 cmdlet:
Import-Module MSOnline
Connect-MsolService
Get-MsolDomain | Select-Object Name, RootDomain, Authentication | ConvertTo-Csv -NoTypeInformation | % {$_.Replace('"','')} | Out-File output.csv
单击“ 生成声明”,然后从“ 声明规则” 部分复制 PowerShell cmdlet。
将 cmdlet 保存为 PowerShell 脚本 (例如 updatelclaimrules.ps1) ,然后运行以下命令在主 AD FS 服务器上运行脚本:
.\Updateclaims.ps1
该脚本将现有颁发转换规则备份为当前工作目录中的 .txt 文件。
如果要使用脚本还原备份的颁发规则,请运行以下 cmdlet,并指定在步骤 5 中创建的备份文件。 在以下示例中,Backup 文件为 Backup 2018.12.26_09.21.03.txt。
Set-AdfsRelyingPartyTrust -TargetIdentifier "urn:federation:MicrosoftOnline" -IssuanceTransformRulesFile "Backup 2018.12.26_09.21.03.txt"
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈