Active Directory 故障排除 - 亚马逊 AppStream 2.0

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Active Directory 故障排除

以下是在 Amazon AppStream 2.0 中设置和使用活动目录时可能出现的问题。有关通知代码故障排除的帮助信息,请参阅 通知代码故障排除

我的映像生成器和实例集实例卡在“待处理”状态。

映像生成器和实例集实例最多可能需要 25 分钟才能转入准备就绪状态并变得可用。如果您的实例变为可用状态耗时超过 25 分钟,请在 Active Directory 中检查是否在正确的组织单位 (OU) 中创建了新的计算机对象。如果有新对象,则流实例将很快可用。如果对象不存在,请在 AppStream 2.0 Directory Config 中查看目录配置详细信息:目录名称(目录的完全限定域名、服务帐户登录凭据和 OU 可分辨名称)。

镜像生成器和队列错误显示在 AppStream 2.0 控制台的队列或映像生成器的 “通知” 选项卡上。也可以使用 AppStream 2.0 API 通过DescribeFleets操作或 CLI 命令 d escribe-fleets 查看舰队错误。

我的用户无法登录 SAML 应用程序。

AppStream 2.0 依靠您的身份提供商提供的 saml_subject “nameID” 属性来填充用户名字段以登录您的用户。该用户名的格式可以是“domain\username”或“user@domain.com”。如果您使用的是“domain\username”格式,则 domain 可以是 NetBIOS 名称或完全限定域名。如果使用 “user@domain.com” 格式,则可以使用该 UserPrincipalName 属性。如果您已经确认 SAML_Subject 属性配置正确但问题仍然存在,请联系 AWS Support。有关更多信息,请参阅 AWS Support 中心

我的实例集实例能用于一个用户,但不能正确循环。

当一个用户完成会话后,实例集实例会进行循环,确保每个用户都有一个新实例。当循环的实例集实例联机时,它使用以前实例的计算机名称加入域。要确保此操作成功,服务账户需要拥有计算机对象所加入的组织单位 (OU) 的更改密码重置密码权限。请检查服务账户权限,然后重试。如果问题仍然存在,请与联系 AWS Support。有关更多信息,请参阅 AWS Support 中心

我的用户组策略对象无法成功应用。

默认情况下,计算机对象基于它们所在的 OU 来应用计算机级策略,基于用户所在的 OU 应用用户级策略。如果您的用户级策略未应用,可以执行以下操作之一:

  • 将用户级策略移到用户 Active Directory 对象所在的 OU 中

  • 启用计算机级别的环回处理,这将在计算机对象 OU 中应用用户级策略。

有关更多信息,请参阅 Microsoft 支持网站上的组策略环回处理

我的 AppStream 2.0 直播实例没有加入 Active Directory 域。

要用于 AppStream 2.0 的 Active Directory 域必须能够通过其完全限定域名 (FQDN) 通过启动您的流式传输实例的 VPC 进行访问。

测试域能否访问
  1. 在与 AppStream 2.0 中使用的相同 VPC、子网和安全组中启动 Amazon EC2 实例。

  2. 使用您打算在 AppStream 2.0 中使用的服务账户的 FQDN(例如yourdomain.example.com),将 EC2 实例手动加入您的 Active Directory 域。在 Windows PowerShell 控制台中使用以下命令:

    netdom join computer /domain:FQDN /OU:path /ud:user /pd:password

    如果此手动加入操作失败,请转至下一步。

  3. 如果您无法手动加入到域,请打开命令提示符,然后使用 nslookup 命令验证能否解析 FQDN。例如:

    nslookup yourdomain.exampleco.com

    域名解析成功时会返回一个有效的 IP 地址。如果无法解析 FQDN,则可能需要使用为您的域设置的 DHCP 选项来更新您的 VPC DNS 服务器。然后,返回到这一步。有关更多信息,请参阅《Amazon VPC 用户指南》中的 DHCP 选项集

  4. 如果已解析 FQDN,请使用 telnet 命令验证连接。

    telnet yourdomain.exampleco.com 389

    连接成功后会显示一个空白命令提示符窗口,其中不包含任何连接错误。您可能需要在 EC2 实例上安装 Telnet 客户端功能。有关更多信息,请参阅 Microsoft 文档中的安装 Telnet 客户端

如果您无法手动将 EC2 实例加入域,但成功解析了 FQDN 并测试了与 Telnet 客户端的连接性,则您的 VPC 安全组可能在阻止访问。Active Directory 需要特定的网络端口设置。有关更多信息,请参阅 Microsoft 文档中的 Active Directory and Active Directory Domain Services Port Requirements

用户登录要花很长时间才能完成加入域的流式传输会话。

AppStream 2.0 会在用户提供域密码后执行 Windows 登录操作。成功进行身份验证后, AppStream 2.0 将启动应用程序。登录和启动时间受多个变量影响,如域控制器的网络连接或将组策略设置应用流实例所用的时间。如果域身份验证耗时太长,请尝试执行以下操作。

  • 通过选择正确的域控制器,最大限度地减少从 AppStream 2.0 区域到域控制器的网络延迟。例如,如果您的实例集在 us-east-1,则通过 Active Directory 站点和服务区域映射使用对 us-east-1 具有高带宽和低延迟的域控制器。有关更多信息,请参阅 Microsoft 文档中的 Active Directory 站点和服务

  • 确保您的组策略设置和用户登录脚本的应用或运行不会耗时过长。

如果您的域用户登录到 AppStream 2.0 失败并显示消息 “发生了未知错误”,则您可能需要更新中描述的组策略设置开始将 Active Directory 与 AppStream 2.0 结合使用之前。否则,这些设置可能会阻止 AppStream 2.0 对您的域用户进行身份验证和登录。

我的用户在加入域的流式传输会话中无法访问域资源,但可以访问加入域的映像生成器中的资源。

请确认您的实例集是在映像生成器所在的同一 VPC、子网和安全组中创建的,并且您的用户具有访问和使用域资源所需的权限。

我的用户收到错误“基于证书的身份验证不可用”,并要求输入域密码。或者,当用户启动启用了基于证书的身份验证的会话时,会收到“已与会话断开连接”错误。

如果会话的基于证书的身份验证不成功,就会出现这些错误。启用基于证书的身份验证以允许回退到密码登录时,会显示“基于证书的身份验证不可用”错误。如果启用基于证书的身份验证但不允许回退,则会显示“已与会话断开连接”错误。

用户可以在 Web 客户端上刷新页面或从 Windows 客户端重新连接,因为这可能是基于证书的身份验证的间歇性问题。如果问题仍然存在,则基于证书的身份验证失败可能是由以下问题之一导致的:

  • AppStream 2.0 无法与 AWS 私有 CA 通信,或者 AWS 私有 CA 未颁发证书。检查 CloudTrail 以确定是否已颁发证书。有关更多信息,请参阅什么是 AWS CloudTrail?管理基于证书的身份验证

  • 域控制器没有用于智能卡登录的域控制器证书,或者该证书已过期。有关更多信息,请参阅前提条件中的步骤 7.a。

  • 该证书不可信。有关更多信息,请参阅前提条件中的步骤 7.c。

  • saml_subjec userPrincipalName t NameID 的格式不正确,或者无法解析为用户的实际域。有关更多信息,请参阅前提条件中的步骤 1。

  • 您的 SAML 断言中的(可选) ObjectSid 属性与 saml_subject NameID 中指定的用户的 Active Directory 安全标识符 (SID) 不匹配。确认您的 SAML 联合身份验证中的属性映射是正确的,并且您的 SAML 身份提供商正在同步 Active Directory 用户的 SID 属性。

  • AppStream 2.0 代理不支持基于证书的身份验证。使用 AppStream 2.0 代理版本 10-13-2022 或更高版本。

  • 有些组策略设置会修改智能卡登录的默认 Active Directory 设置,或者在从智能卡读卡器中移除智能卡时执行操作。除了上面列出的错误之外,这些设置还可能会导致其他意外行为。基于证书的身份验证向实例操作系统提供虚拟智能卡,并在登录完成后将其删除。有关更多信息,请参阅 Primary Group Policy settings for smart cardsAdditional smart card Group Policy settings and registry keys。如果您要使用基于证书的身份验证,请不要启用堆栈中的 Active Directory 的智能卡登录。有关更多信息,请参阅 智能卡

  • 私有 CA 的 CRL 分发点不在线,也无法从 AppStream 2.0 队列实例或域控制器访问。有关更多信息,请参阅前提条件中的步骤 5。

其他故障排除步骤包括查看 AppStream 2.0 实例 Windows 事件日志。登录失败时检查的常见事件是 4625(F):账户登录失败。有关捕获日志信息的更多信息,请参阅保留应用程序和 Windows 事件日志。或者,要以管理员身份对活动的 AppStream 2.0 会话进行故障排除,您可以使用另一台计算机上的事件查看器连接到日志。有关详细信息,请参阅如何在事件查看器中选择计算机。或者,您可以使用远程桌面连接另一台可以连接到您的 AppStream 2.0 虚拟私有云 (VPC) 中的远程桌面服务的计算机上的实例私有 IP 地址。使用 AWS CLI 根据 AWS 区域、 AppStream 2.0 堆栈名称、舰队名称、用户 ID 和身份验证类型确定会话的 IP 地址。有关更多信息,请参阅 AWS Command Line Interface

如果问题仍然存在,请与联系 AWS Support。有关更多信息,请参阅 AWS Support 中心