联合用户登录到 Microsoft 365、Azure 或 Intune 时 AD FS 的“访问站点时遇到问题”错误

问题

当联合用户尝试登录到 Microsoft 365、Microsoft Azure 或 Microsoft Intune 等 Microsoft 云服务时,该用户会收到来自 Active Directory 联合身份验证服务 (AD FS) 的以下错误消息:

There was a problem accessing the site. Try to browse to the site again.
If the problem persists, contact the administrator of this site and provide the reference number to identify the problem.
Reference number: <GUID>

发生此错误时,Web 浏览器的地址栏指向位于以下地址的本地 AD FS 终结点:

“https://sts.domain.com/adfs/ls/?cbcxt=&vv=&username=username%40domain.com&mkt=&lc=1033&wa=wsignin1.0&wtrealm=urn:federation:MicrosoftOnline&wctx=MEST%3D0%26LoginOptions%3D2%26wa%3Dwsignin1.0%26rpsnv%3D2%26ct%3D1299115248%26rver%3D6.1.6206.0%26wp%3DMCMBI%26wreply%3Dhttps:%252F%252Fportal.office.com%252FDefault.aspx%26lc%3D1033%26id%3D271346%26bk%3D1299115248”

原因

出现此问题的原因可能为以下原因之一:

  • 尚未完成通过 AD FS) 单一登录 (SSO 的设置。
  • AD FS 令牌签名证书已过期。
  • AD FS 客户端访问策略声明设置不正确。
  • 缺少具有Microsoft Entra ID的信赖方信任或设置不正确。
  • AD FS 联合代理服务器设置不正确或未正确公开。
  • AD FS IUSR 帐户没有“身份验证后模拟客户端”用户权限。

解决方案

若要解决此问题,请使用适合你的情况的方法。

方案 1:AD FS 令牌签名证书已过期

检查令牌签名证书是否已过期

若要检查令牌签名证书是否已过期,请执行以下步骤:

  1. 依次单击“ 开始”、“ 所有程序”、“ 管理工具”、“ AD FS (2.0) 管理”。
  2. 在 AD FS 管理控制台中,依次单击“服务”、“证书”,然后检查 AD FS 令牌签名证书的“生效日期”和“到期日期”。

如果证书已过期,则必须续订证书才能还原 SSO 身份验证功能。

如果令牌签名证书已过期, (续订)

若要使用自签名证书在主 AD FS 服务器上续订令牌签名证书,请执行以下步骤:

  1. 在同一 AD FS 管理控制台中,依次单击“服务”、“证书”,然后在“操作”窗格的“认证”下,单击“添加 Token-Signing 证书”。
  2. 如果出现“启用 AD FS 自动证书滚动更新功能时无法修改证书”警告,请转到步骤 3。 否则,检查证书的生效日期和到期日期。 如果证书已成功续订,则无需执行步骤 3 和步骤 4。
  3. 如果未续订证书,请单击“开始”,指向“所有程序”,单击“附件”,单击“Windows PowerShell”文件夹,右键单击“Windows PowerShell”,然后单击“以管理员身份运行”。
  4. 在Windows PowerShell命令提示符处,输入以下命令。 输入每个命令后按 Enter:
    • Add-PSSnapin Microsoft.Adfs.Powershell
    • Update-ADFSCertificate -CertificateType:Token-Signing

若要使用证书颁发机构 (CA) 签名证书在主 AD FS 服务器上续订令牌签名证书,请执行以下步骤:

  1. 创建 WebServerTemplate.inf 文件。 为此,请按照下列步骤操作:

    1. 启动记事本,然后打开一个新的空白文档。

    2. 将以下内容粘贴到 文件中:

      [Version] Signature=$Windows NT$[NewRequest] ;EncipherOnly=False Exportable=True KeyLength=2048 KeySpec=1 KeyUsage=0xa0MachineKeySet=True ProviderName="Microsoft RSA SChannel Cryptographic Provider"
      ProviderType=12 RequestType=CMC subject="CN=adfs.contoso.com"[EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 [RequestAttributes] 
      
    3. 在 文件中,将 subject=“CN=adfs.contoso.com”更改为以下内容:

      subject=“CN=your-federation-service-name

    4. 在“文件”菜单上单击“另存为”

    5. “另存为”对话框中,单击“保存类型”框中的“所有文件 (.) **”。

    6. 在“ 文件名 ”框中键入 WebServerTemplate.inf,然后单击“ 保存”。

  2. 将 WebServerTemplate.inf 文件复制到 AD FS 联合服务器之一。

  3. 在 AD FS 服务器上,打开“管理命令提示符”窗口。

  4. 使用 cd (更改目录) 命令更改为复制 .inf 文件的目录。

  5. 键入以下命令,然后按 Enter:

    CertReq.exe -New WebServerTemplate.inf AdfsSSL.req

  6. 将输出文件 AdfsSSL.req 发送到 CA 进行签名。

  7. CA 将以 .p7b 或 .cer 格式返回已签名公钥部分。 将此文件复制到生成请求的 AD FS 服务器。

  8. 在 AD FS 服务器上,打开“管理命令提示符”窗口。

  9. 使用 cd (更改目录) 命令更改为复制 .p7b 或 .cer 文件的目录。

  10. 键入以下命令,然后按 Enter:

    CertReq.exe -接受“file-from-your-CA-p7b-or-cer”

完成 SSO 功能的还原

无论使用的是自签名证书还是 CA 签名证书,都应完成 SSO 身份验证功能的还原。 为此,请按照下列步骤操作:

  1. 为主 AD FS 服务器上的 AD FS 服务帐户添加对私钥的读取访问权限。 为此,请按照下列步骤操作:
    1. 单击 “开始”,单击“ 运行”,键入“mmc.exe”,然后按 Enter。
    2. “文件”菜单上,单击“添加/删除管理单元”
    3. 双击“ 证书”,选择“ 计算机帐户”,然后单击“ 下一步”。
    4. 选择“ 本地计算机”,单击“ 完成”,然后单击“ 确定”。
    5. 展开" 证书(本地计算机)",再展开" 个人",然后单击" 证书"。
    6. 右键单击新的令牌签名证书,指向 “所有任务”,然后单击“ 管理私钥”。
    7. 添加对 AD FS 服务帐户的读取访问权限,然后单击“ 确定”。
    8. 退出“证书”管理单元。
  2. 使用 Microsoft Entra ID 更新新证书的指纹和信赖方信任的日期。 为此,请参阅如何更新或修复 Microsoft 365、Azure 或 Intune 中联合域的设置中的“如何更新 Microsoft 365 联合域的配置”部分。
  3. 重新创建 AD FS 代理信任配置。 为此,请按照下列步骤操作:
    1. 在主 AD FS 服务器上重启 AD FS Windows 服务。
    2. 等待 10 分钟,让证书复制到联合服务器场的所有成员,然后在其余的 AD FS 服务器上重启 AD FS Windows 服务。
    3. 在每个 AD FS 代理服务器上重新运行代理配置向导。 有关详细信息,请参阅 为联合服务器代理角色配置计算机

方案 2:你最近通过声明更新了客户端访问策略,现在登录不起作用

检查是否已正确应用客户端访问策略。 有关详细信息,请参阅 基于客户端位置限制对 Microsoft 365 服务的访问

方案 3:联合元数据终结点或信赖方信任可能已禁用

在主 AD FS 服务器上使用Microsoft Entra ID启用联合元数据终结点和信赖方信任。 为此,请按照下列步骤操作:

  1. 打开 AD FS 2.0 管理控制台。
  2. 确保已启用联合元数据终结点。 为此,请按照下列步骤操作:
    1. 在左侧导航窗格中,浏览到 AD FS (2.0) 、服务、终结点
    2. 在中心窗格中,右键单击 /Federation Metadata/2007-06/FederationMetadata.xml 条目,然后单击以选择“在代理上启用和启用”。
  3. 确保已启用具有Microsoft Entra ID的信赖方信任。 为此,请按照下列步骤操作:
    1. 在左侧导航窗格中,浏览到 AD FS (2.0) ,然后浏览到 “信任关系”,然后选择 “信赖方信任”。
    2. 如果存在Microsoft Office 365标识平台,请右键单击此项,然后单击“启用”。
  4. 查看使用 AD FS 验证和管理单一登录的“更新信任属性”部分,使用 Microsoft Entra ID 修复信赖方信任。

方案 4:信赖方信任可能缺失或损坏

删除并重新添加信赖方信任。 为此,请按照下列步骤操作:

  1. 登录到核心 AD FS 服务器。
  2. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ AD FS (2.0) 管理”。
  3. 在管理控制台中,展开“AD FS (2.0) ”,展开“信任关系”,再展开“信赖方信任”。
  4. 如果存在Microsoft Office 365 Identity Platform,请右键单击此项,然后单击“删除”。
  5. 查看使用 AD FS 验证和管理单一登录的“更新信任属性”部分,重新添加信赖方信任。

方案 5:AD FS 服务帐户没有“身份验证后模拟客户端”用户权限

若要向 AD FS IUSR 服务帐户授予“身份验证后模拟客户端”用户权限,请参阅事件 ID 128 - Windows NT基于令牌的应用程序配置

References

有关如何排查联合用户的登录问题的详细信息,请参阅以下 Microsoft 知识库文章:

  • 2530569排查 Microsoft 365、Intune 或 Azure 中的单一登录设置问题
  • 2712961用户登录到 Microsoft 365、Intune 或 Azure 时如何排查 AD FS 终结点连接问题

仍然需要帮助? 转到 Microsoft 社区Microsoft Entra论坛网站。