当联合用户登录 Azure、Azure 或 Intune 时,AD FS 中出现"访问站点时Office 365出现问题"错误

备注

Office 365 ProPlus 正在重命名为 适用于企业的 Microsoft 365 应用。 有关此更改的详细信息, 请阅读此博客文章

问题

当联合用户尝试登录 Microsoft 云服务(如 Office 365、Microsoft Azure 或 Microsoft Intune)时,用户会收到来自 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 客户端访问策略声明设置不正确。
  • 缺少信赖方Azure Active Directory (Azure AD) 或设置不正确。
  • 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

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

  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. In the** Save As dialog box, click All Files (.) ** in the Save as type box.

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

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

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

  4. 使用 cd (change directory) 命令更改为您复制 .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 -Accept "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. 更新新证书的指纹和信赖方与证书信任Azure AD。 为此,请参阅如何在Office 365、Azure或 Intune 中更新或修复联合域的设置中的"如何更新 Office 365 联合域的配置"部分。
  3. 重新创建 AD FS 代理信任配置。 为此,请按照下列步骤操作:
    1. 重新启动主 AD FS Windows AD FS 服务器上 AD FS 服务。
    2. 等待 10 分钟,将证书复制到联合服务器场的所有成员,然后在其余 AD FS 服务器上重新启动 AD FS Windows Service。
    3. 在每台 AD FS 代理服务器上重新运行代理配置向导。 有关详细信息,请参阅 为计算机配置联合服务器代理角色

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

检查是否已正确应用客户端访问策略。 有关详细信息,请参阅根据客户端Office 365限制对服务的访问权限

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

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

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

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

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

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

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

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

References

若要详细了解如何排查联合用户的登录问题,请参阅以下 Microsoft 知识库文章:

  • 2530569在 Office 365、Intune 或 Azure 中解决单一登录设置问题
  • 2712961用户登录到 Azure、Intune 或 Azure 时如何Office 365 AD FS 终结点连接问题

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