解决 Office 365、Intune 或 Azure 中的单点登录设置问题

适用于: Office 产品Cloud Services (Web roles/Worker roles)Azure Active Directory

简介


本文介绍如何对 Microsoft 云服务(如 Office 365、Microsoft Intune 或 Microsoft Azure)中的单个登录设置问题进行故障排除。有关单一登录(SSO)的详细实施指南可在 Azure Active Directory (Azure AD)帮助文档中使用。 如果您在使用该指南设置 SSO 时遇到问题,您可以参阅本文。 它提供了一个路线图,可帮助解决每个设置步骤中的常见问题。


如何解决 SSO 设置问题

步骤1:准备 Active Directory

设置指南
转到以下 Microsoft 网站:
步骤1验证
使用 "评估目录同步设置诊断向导" 扫描 Active Directory,查找可能会导致目录同步问题的问题。
 
解决步骤1的验证问题
 
  1. 注意 不正确地准备 Active Directory 或无法解决该工具标识的问题可能会导致目录同步问题。 按照 "评估目录同步设置诊断向导" 提供的疑难解答指南更正这些问题,并确保诊断向导运行时不会出现任何错误。 这可防止在后面的实现中出现以下问题:
    • 2392130  解决当联盟用户登录到 Office 365、Azure 或 Intune 时出现的用户名称问题  
    • 2001616 用户的 Office 365 电子邮件地址在目录同步后意外包含下划线字符
    • 2643629  使用 Azure Active Directory 同步工具时,一个或多个对象不同步
  2. 重新运行诊断向导,检查问题是否已解决。

步骤2: Active Directory 联合身份验证服务(AD FS)体系结构

设置 指南转到以下 Microsoft 网站:注意 Microsoft 支持将不会帮助客户在这些链接中执行设置指南。

步骤3:适用于 SSO 的 Windows PowerShell 的 Azure Active Directory 模块

设置指南
转到以下 Microsoft 网站:
步骤3验证
若要验证适用于 SSO 的 Windows PowerShell 的 Azure Active Directory 模块,请按照以下步骤操作:
  1. 以管理员身份运行适用于 Windows PowerShell 的 Azure Active Directory 模块。
  2. 键入以下命令,并确保在键入每个命令后按 Enter:
    1. $cred=Get-Credential 
      注意 出现提示时,请键入你的云服务管理员凭据。
    2. Connect-MsolService -Credential $cred 
      注意此命令将你连接到 Azure AD。 你必须创建一个上下文,以便在运行由 Windows PowerShell 的 Azure Active Directory 模块安装的任何其他 cmdlet 之前将你连接到 Azure AD。
    3. Set-MsolAdfscontext -Computer < AD FS 2.0 primary server > 
      注意
      • 如果在主 Active Directory 联合身份验证服务(AD FS)服务器上安装了适用于 Windows PowerShell 的 Azure Active Directory 模块,则不必运行此 cmdlet。
      • 在此命令中,<AD fs 2.0 主服务器 的占位符> 表示主 AD FS 服务器的内部完全限定的域名(FQDN)。 此命令将创建一个将你连接到 AD FS 的上下文。
    4. Get-MSOLFederationProperty -DomainName < federated domain name > 
      注意 在此命令中,占位符 <联盟域名> 表示在设置步骤中联合的域名。
  3. 比较在步骤2D 中运行的MSOLFederationProperty命令的第一半(来源: AD FS 服务器)和最后半部分(源: Microsoft Office 365)。 除了 SourceFederationServiceDisplayName 之外的所有条目都应匹配。 如果它们不匹配,请使用以下 Microsoft 知识库文章的 "解决方法" 部分更新信赖方信任数据:2647020 "抱歉,当联盟用户尝试登录到 Office 365、Azure 或 Intune 时遇到问题" 登录 "和" 80041317 "或" 80043431 "错误。 
解决步骤3中的验证问题若要解决问题,请按照下列步骤操作:
  1. 根据你的具体情况使用以下 Microsoft 知识库文章,解决常见的验证问题:
    • 2461873  无法打开适用于 Windows PowerShell 的 Azure Active Directory 模块 
    • 2494043 无法使用适用于 Windows PowerShell 的 Azure Active Directory 模块进行连接
    • 2587730 使用 MsolADFSContext cmdlet 时,"Active Directory 联合身份验证服务2.0 服务器> <连接失败" 错误
    • 2279117 管理员无法将域添加到 Office 365 帐户
    • 第二次运行 MsolFederatedDomain cmdlet 时出错,因为域验证失败。 有关此方案的详细信息,请参阅以下知识库文章:
      2515404 解决 Office 365 中的域验证问题
    • 2618887 "在 AD FS 2.0 服务器中指定的联合身份验证服务标识符已在使用中。" 尝试在 Office 365、Azure 或 Intune 中设置另一个联盟域时出错 
    • 时间问题会导致 MSOLFederatedDomain Cmdlet 或 MSOLDomainToFederated cmdlet 出现问题。 有关此方案的详细信息,请参阅以下知识库文章:
      2578667 "抱歉,当联盟用户尝试登录到 Office 365、Azure 或 Intune 时,我们遇到了登录" 和 "80045C06" 错误的问题
  2. 重新运行验证步骤以检查问题是否已解决。

步骤4:实现 Active Directory 同步

设置指南
转到以下 Microsoft 网站:
步骤4验证
若要验证,请执行以下步骤:
  1. 以管理员身份运行适用于 Windows PowerShell 的 Azure Active Directory 模块。
  2. 键入以下命令。 确保在键入每个命令后按 Enter。
    1. $cred=Get-Credential 
      注意 出现提示时,请键入你的云服务管理员凭据。
    2. Connect-MsolService -Credential $cred 
      注意 此命令将你连接到 Azure AD。你必须创建一个上下文,以便在运行由 Windows PowerShell 的 Azure Active Directory 模块安装的任何其他 cmdlet 之前将你连接到 Azure AD。
    3. Get-MSOLCompanyInformation 
  3. 检查以前命令的输出中的 LastDirSync时间 值,并确保它在安装 Azure Active Directory 同步工具后显示同步。注意 此值的日期和时间戳以协调世界时(格林尼治平均时间)显示。
  4. 如果 LastDirSyncTime未更新,请监视为以下事件安装了 Azure Active Directory 同步工具的服务器的应用程序日志:
    • :目录同步
    • 事件 ID:4
    • 级别:信息
    此事件表示服务器上的目录同步已完成。 发生这种情况时,请重新运行这些步骤,确保 LastDirSyncTime 值已正确更新。
解决步骤4中的验证问题根据你的具体情况使用以下 Microsoft 知识库文章,解决常见的验证问题:
  • 2386445   运行 Azure Active Directory 同步工具时出错: "你的 Windows Azure Active Directory 同步配置向导的版本已过时" 
  • 2310320  尝试运行 Azure Active Directory 同步工具配置向导时出错: "无法验证你的凭据。 重新键入您的凭据并重试 " 
  • 在 Azure Active Directory 同步工具配置向导中输入企业管理员凭据后, 2508225 "LogonUser ()失败,错误代码: 1789"
  • 2502710 运行 Azure Active Directory 同步工具配置向导时出现 "Microsoft Online Services 登录助手出现未知错误" 错误 
  • 2419250 "在尝试安装 Azure Active Directory 同步工具时,计算机必须加入域" 错误 
  • 2643629  使用 Azure Active Directory 同步工具时,一个或多个对象不同步
  • 2641663 如何使用 SMTP 匹配将本地用户帐户与 Office 365 用于目录同步的用户帐户相匹配
  • 2492140 无法将联盟域分配给 Office 365 门户中的用户

步骤5: Office 365 客户端准备

设置指南
  1. 检查 Office 365 的客户端先决条件。 有关 Office 365 的系统要求的详细信息,请转到 office 365 系统要求
  2. 在使用胖客户端应用程序的所有客户端计算机上运行 Office 365 桌面安装程序。 胖客户端应用程序包括 Microsoft Outlook、Microsoft Lync 2010、Microsoft Office Professional Plus 2010、用于 Windows PowerShell 的 Azure Active Directory 模块。 Office 桌面应用程序和 Microsoft SharePoint 集成应用程序。 注意 可在 http://g.microsoftonline.com/0BX10en/436?!Office365DesktopSetup.application上使用 Office 365 桌面设置。
  3. 如果你希望加入域和连接到域的客户端计算机的无缝、无提示体验,请在 Windows Internet Explorer 中将 AD FS 联合身份验证服务 URL 添加到本地 intranet 区域。 例如,请执行下列操作:
    1. 在 Internet Explorer 中,在 " 工具 " 菜单上,单击 " Internet 选项"。
    2. 单击 " 安全 " 选项卡,单击 " 本地 intranet",单击 " 网站",然后单击 " 高级"。
    3. 在 "将该网站添加到区域中" 框中键入https://sts.contoso.com ,然后单击 "添加"。注意 "sts.contoso.com" 表示 AD FS 联合身份验证服务的 FQDN。
    有关此配置的详细信息,请参阅以下 Microsoft 知识库文章:
    2535227  联合用户意外提示输入其工作或学校帐户凭据
  4. 如果已加入域的客户端计算机通过使用代理服务器(而不是内部、分裂的 DNS)来使用解析 Internet 地址的代理服务器访问 Internet 资源,请将 AD FS 联合身份验证服务 URL 添加到 Internet Explorer 将绕过代理筛选的列表。 下面是如何将 URL 添加到 Internet Explorer 例外列表的示例:
    1. 在 Internet Explorer 中,在 " 工具 " 菜单上,单击 " Internet 选项"。
    2. 在 " 连接 " 选项卡上,单击 " 局域网设置",然后单击 " 高级"。
    3. 在 " 例外 " 框中,使用 AD FS 服务终结点名称的完全限定的 DNS 名称输入值。 例如,输入 sts.contoso.com
步骤5验证 若要验证,请执行以下步骤:
  1. 请确保已安装并运行 Microsoft Online Services 登录助手服务。 为此,请按照下列步骤操作:
    1. 单击 " 开始",单击 " 运行",键入 Services.msc,然后单击 "确定"
    2. 找到 "Microsoft Online Services 登录助手" 条目,然后确保该服务正在运行。
    3. 如果服务未运行,请右键单击该条目,然后选择 " 开始"。
  2. 转到 AD FS MEX 网站以确保终结点是 Internet Explorer intranet 安全区域的一部分。 为此,请按照下列步骤操作:
    1. 启动 Internet Explorer,然后转到 AD FS 服务终结点网站。 下面是一个服务终结点网站的示例:
      https://sts.contoso.com/federationmetadata/2007-06/federationmetadata.xml
    2. 检查窗口底部的状态栏,确保为此 URL 显示的安全区域是 " 本地 intranet"。

步骤6:最终验证

在配置的客户端计算机上,测试预期的 SSO 身份验证体验。 若要执行此操作,请使用联合用户帐户进行身份验证。 你可能需要在以下情况下测试联盟用户的身份验证:
  • 在本地网络中,并通过身份验证到本地 Active Directory
  • 从非特定于 Internet 的 IP 位置,而不是通过身份验证到本地 Active Directory
若要验证,请执行以下步骤:
  1. 测试 web 身份验证。 为此,请使用下列方法之一:
    • 使用本地 Active Directory 凭据以联盟用户身份登录云服务门户。
    • 以具有 Exchange Online 邮箱的联盟用户(使用本地 Active Directory 凭据)身份登录到 Outlook Web App。 例如,登录到以下 URL 处的 Outlook Web App:
      https://outlook.com/owa/contoso.com
      注意在此 URL 中,"contoso.com" 表示联合域名。
    • 使用有权访问团队网站集的联盟用户(使用本地 Active Directory 凭据)登录到 Microsoft SharePoint Online。 例如,在以下 URL 登录到 SharePoint Online:
      http://contoso.sharepoint.com
      注意 在此 URL 中,"contoso" 表示你的组织的名称。
  2. 测试胖客户端或活动的请求程序身份验证。 为此,请按照下列步骤操作:
    1. 为联盟用户帐户配置 Skype for business Online (以前称为 Lync Online)客户端配置文件,然后使用本地 Active Directory 凭据登录帐户。
    2. 通过MSOLService cmdlet 使用具有全局管理员凭据的联合用户帐户登录 Windows PowerShell 的 Azure Active Directory 模块。
  3. 使用 Microsoft 远程连接分析器测试 Exchange Online 基本身份验证。 有关如何使用远程连接分析器的详细信息,请参阅 Microsoft 知识库中的以下文章: 
    2650717   如何使用远程连接分析器解决 Office 365、Azure 或 Intune 的单一登录问题 
仍然需要帮助? 转到 Microsoft 社区Azure Active Directory 论坛 网站。