Internet 浏览器无法显示联合用户的 AD FS 登录网页

问题

当联合用户尝试登录到 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 模块的已连接域的计算机执行以下步骤:

  1. 以提升的管理员身份运行适用于 Windows PowerShell 的 Azure Active Directory 模块。为此,请右键单击 Windows PowerShell 的 Windows Azure Active Directory 模块,然后单击“ 以管理员身份运行”。

  2. 键入以下命令。 键入每个命令后按 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 联合服务器正在运行

  1. 在 AD FS 联合服务器上,打开“控制面板”,单击 “管理工具”,然后单击“ 服务”。
  2. 查找 AD FS Windows 服务服务。
  3. 确保 AD FS Windows 服务的状态 已启动。 如果服务已停止,请右键单击该服务,然后单击“ 开始 ”以启动服务。

步骤 2:确保 Web 服务器在相应的 AD FS 服务器上运行

  1. 在 AD FS 联合服务器或 AD FS 联合服务器代理上,打开服务器管理器,展开 “角色”,展开 “Web 服务器”(IIS),然后选择“ Internet Information Services”。
  2. 展开计算机名称,然后展开Sites
  3. 确保 默认网站 设置为 “已启动”。 如果不是,请右键单击 “默认网站”,指向 “所有任务”,然后单击“ 开始”。
  4. 展开 默认网站,确保 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 终结点。

  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”

  2. 在命令提示符下,键入以下命令,其中占位符 <STS.contoso.com> 表示 AD FS 终结点名称:

    NSlookup <STS.contoso.com>
    
  3. 如果命令导致 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 服务器名称添加为例外。 为此,请在客户端计算机上按照以下步骤进行操作:

  1. 打开 Internet Explorer,然后单击“工具”菜单上的“Internet 选项”。
  2. 单击“ 连接 ”选项卡,然后单击 “LAN 设置”。
  3. “自动配置”下,单击以清除复选框,然后单击选中代理服务器下的“为 LAN 使用代理服务器”复选框。
  4. 代理服务器下,添加代理服务器地址和代理服务器使用的端口,然后单击“ 高级”。
  5. “例外”下,添加 AD FS 终结点(例如,sts.contoso.com)。

详细信息

本文中的 Windows PowerShell 命令需要适用于 Windows PowerShell 的 Azure Active Directory 模块。

还需要帮助吗? 转到 Microsoft社区Microsoft entra 论坛 网站。