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

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

Active Directory 故障排除

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

我的图像生成器和队列实例处于该PENDING状态。

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

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

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

AppStream 2.0 依赖您的身份提供商提供的 SAML _Subject “nameID” 属性来填充用户名字段以登录您的用户。该用户名的格式可以是“domain\username”或“user@domain.com”。如果您使用的是 “domain\username” 格式,则domain可以是网络BIOS名称或完全限定域名。如果使用 “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 域名必须能够通过其启动流媒体实例VPC的完全限定域名 (FQDN) 进行访问。

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

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

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

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

  3. 如果您无法手动加入您的域名,请打开命令提示符并验证是否FQDN可以使用该nslookup命令解决问题。例如:

    nslookup yourdomain.exampleco.com

    域名解析成功时会返回一个有效的 IP 地址。如果您无法解决您的问题FQDN,则可能需要使用为域名设置的DHCP选项来更新VPCDNS服务器。然后,返回到这一步。有关更多信息,请参阅 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 失败并显示消息 “发生了未知错误”,则您可能需要更新中描述的组策略设置开始在 Amazon 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 区域、 AppStream 2.0 堆栈名称、舰队名称、用户 ID 和身份验证类型确定会话的 IP 地址。 AWS CLI有关更多信息,请参阅 AWS Command Line Interface。

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

更改 Active Directory (AD) 服务帐户后,我遇到了加入域名失败的问题。

如果您的现有队列的映像基于 2024 年 8 月 Microsoft Windows Server 操作系统更新,并且您更改了该队列的活动目录 (AD) 服务帐户,则您的队列实例在配置期间可能会遇到域加入失败的问题。

微软发布了 KB5020276 补丁,该补丁修改了域加入操作的行为。 AppStream 在将您的流媒体实例加入您的 AD 域时,2.0 会重复使用现有的计算机对象。此计算机对象是使用您在使用 AppStream 2.0 创建队列或 Directory Config 时提供的 AD 服务帐户生成的。在此Microsoft补丁之前,新的AD服务帐户可以重复使用 AppStream 2.0创建的现有计算机对象,前提是它们具有在组织单位 (OU) 中配置的 “创建计算机对象” 权限。

从 2024 年 8 月 13 日起实施 Microsoft 补丁后,如果您更改现有 AppStream 2.0 队列的 AD 服务帐户,则新的服务帐户将无法再重复使用 AD 中的现有计算机对象。这会导致 AppStream 2.0 队列的域加入失败,队列通知下会显示以下错误消息之一:

  • DOMAIN_ JOIN INTERNAL _ SERVICE _ ERROR “找不到群组名称。”

  • Active Directory 中存在同名的账户。安全政策禁止重复使用该账户

为了控制哪个帐户可以重复使用现有计算机对象,Microsoft 实施了一项名为 “域控制器:允许在加入域期间重复使用计算机帐户” 的新组策略设置。此设置允许您指定在域加入操作期间绕过检查的可信服务帐户列表。对于自行管理的 AD 配置,我们建议您按照 Microsoft 记录的步骤,使用域控制器上的组策略将您的 AD 服务帐户添加到新的允许列表策略中。

对于托管 Active Directory (MAD),您必须在更改 AppStream 2.0 域名加入服务账户后重新启动 AppStream 2.0 队列。

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