问题
当联合用户尝试登录到 Microsoft 云服务(如 Microsoft 365、Microsoft Azure 或 Microsoft Intune)时,Internet 浏览器无法显示 Active Directory 联合身份验证服务(AD FS)登录网页。 此外,用户可能会收到错误消息。 例如,如果用户使用的是 Internet Explorer,则用户可能会收到以下错误消息:
Internet Explorer 无法显示网页。
发生此错误时,Web 浏览器中显示的地址类似于以下地址:
https://sts.domain.tld/adfs/ls/auth/integrated/?wa=wsignin1.0&wtrealm=uri:WindowsLiveID&wctx=MEST%3D0%26LoginOptions%3D2%26wa%3Dwsignin1.0%26rpsnv%3D11%26ct%3D1283354771%26rver%3D6.0.5286.0%26wp%3DMCMBI%26wreply%3Dhttps:%252F%252Fportal.office.com%252Flanding.aspx%253Ftarget%253D%25252fDefault.aspx%26lc%3D1033%26id%3D271346%26bk%3D1283354772
原因
如果用户无法联系本地 AD FS 联合服务器或面向 Internet 的 AD FS 联合服务器代理,则可能会出现此问题。 当 AD FS 联合身份验证服务停止运行或 IP 连接被边缘化时,可能会发生这种情况。
解决方案
在开始解决此问题之前,请确定本地联合服务器的 AD FS 终结点地址,然后确定哪个服务器出现问题。
确定本地联合服务器的 AD FS 终结点地址
为此,请对安装了适用于 Windows PowerShell 的 Azure Active Directory 模块的已连接域的计算机执行以下步骤:
以提升的管理员身份运行适用于 Windows PowerShell 的 Azure Active Directory 模块。为此,请右键单击 Windows PowerShell 的 Windows Azure Active Directory 模块,然后单击“ 以管理员身份运行”。
键入以下命令。 键入每个命令后按 Enter:
$cred = get-credential
注释
出现提示时,请输入全局管理员凭据。
Connect-MsolService –credential $credS
Set-MsolADFSContext -Computer <AD FS Server>
注释
<AD FS 服务器>占位符表示主 AD FS 服务器的计算机名称。
Get-MSOLFederationProperty –DomainName <Federated Domain> | FL
注释
<联合域>占位符表示与云服务联合的域名。
在输出中,检查 ActiveClientSignInUrl 属性。 URL 的域部分是可在本文后面介绍的解析中使用的终结点。
注释
自 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 可能会遇到中断。
确定出现问题的服务器
确定问题的范围。 为此,请确定出现问题的服务器。 如果只有 Internet 客户端出现问题,请先对 AD FS 联合服务器代理进行故障排除。 如果企业网络客户端也遇到问题,请先对 AD FS 联合服务器进行故障排除。
确定哪个服务器出现问题后,请在相应的 AD FS 服务器上执行以下步骤:
步骤 1:确保本地 AD FS 联合服务器正在运行
- 在 AD FS 联合服务器上,打开“控制面板”,单击 “管理工具”,然后单击“ 服务”。
- 查找 AD FS Windows 服务服务。
- 确保 AD FS Windows 服务的状态 已启动。 如果服务已停止,请右键单击该服务,然后单击“ 开始 ”以启动服务。
步骤 2:确保 Web 服务器在相应的 AD FS 服务器上运行
- 在 AD FS 联合服务器或 AD FS 联合服务器代理上,打开服务器管理器,展开 “角色”,展开 “Web 服务器”(IIS),然后选择“ Internet Information Services”。
- 展开计算机名称,然后展开Sites。
- 确保 默认网站 设置为 “已启动”。 如果不是,请右键单击 “默认网站”,指向 “所有任务”,然后单击“ 开始”。
- 展开 默认网站,确保 adfs 和 /adfs/ls 虚拟目录存在。
步骤 3:确保 DNS 具有适用于遇到问题的客户端的 AD FS 终结点的主机记录
对于内部客户端,内部 DNS 应将 AD FS 终结点名称解析为内部 IP 地址(例如,sts.contoso.com A 192.168.1.104)。 对于 Internet 客户端,节点名称应解析为公共 IP 地址。 这可以通过使用以下过程在客户端上进行测试。 如果本地网络包含代理服务器,请尝试在 Internet Explorer 中使用 Internet 选项添加 AD FS 终结点。
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
在命令提示符下,键入以下命令,其中占位符 <STS.contoso.com> 表示 AD FS 终结点名称:
NSlookup <STS.contoso.com>
如果命令导致 IP 地址不正确,请通过更新内部或外部 DNS 服务器上的 A 记录来解决该问题。 若要确保来自本地计算机的 AD FS 资源的 DNS 请求解析为 AD FS 联合身份验证服务而不是 AD FS 代理服务器,请参阅以下Microsoft知识库文章来检查和更新拆分脑 DNS 设置。
2715326 分裂脑 DNS 配置错误导致 SSO 登录体验不流畅
注释
更新的面向 Internet 的 DNS 设置可能需要 48 小时才能传播到所有 Internet DNS 服务器。
步骤 4:尝试在客户端计算机上的 Internet Explorer 的 Internet 代理设置中将 AD FS 服务器名称添加为例外
如果本地网络包含代理,并且只有内部客户端遇到 AD FS 访问问题,请尝试在 Internet Explorer 的 Internet 代理设置中将 AD FS 服务器名称添加为例外。 为此,请在客户端计算机上按照以下步骤进行操作:
- 打开 Internet Explorer,然后单击“工具”菜单上的“Internet 选项”。
- 单击“ 连接 ”选项卡,然后单击 “LAN 设置”。
- 在“自动配置”下,单击以清除复选框,然后单击选中代理服务器下的“为 LAN 使用代理服务器”复选框。
- 在 代理服务器下,添加代理服务器地址和代理服务器使用的端口,然后单击“ 高级”。
- 在 “例外”下,添加 AD FS 终结点(例如,sts.contoso.com)。
详细信息
本文中的 Windows PowerShell 命令需要适用于 Windows PowerShell 的 Azure Active Directory 模块。
还需要帮助吗? 转到 Microsoft社区 或 Microsoft entra 论坛 网站。