前提条件 - 亚马逊 AppStream 2.0

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

前提条件

使用基于证书的身份验证之前,请完成以下步骤。

  1. 设置加入域的队列并配置 2.0。SAML确保使用 SAML _Subj username@domain.com userPrincipalName ect 的格式。NameID有关更多信息,请参阅 步骤 5:为SAML身份验证响应创建断言

    注意

    如果您要使用基于证书的身份验证,请不要启用堆栈中的 Active Directory 的智能卡登录。有关更多信息,请参阅 智能卡

  2. 使用 AppStream 2.0 代理版本 10-13-2022 或更高版本处理您的图像。有关更多信息,请参阅 保留您的亚马逊 AppStream 2.0 图片 Up-to-Date

  3. (可选)在SAML断言中配置该ObjectSid属性。您可以使用此属性与 Active Directory 用户进行强映射。如果ObjectSid属性与 _Subject 中指定的用户的 Active Directory 安全标识符 (SID) 不匹配,则基于证书的身份验证将SAML失败。NameID有关更多信息,请参阅 步骤 5:为SAML身份验证响应创建断言

  4. sts:TagSession权限添加到您在 SAML 2.0 配置中使用的IAM角色信任策略中。有关更多信息,请参阅在 AWS STS中传递会话标签。使用基于证书的身份验证时需要此权限。有关更多信息,请参阅 步骤 2:创建 SAML 2.0 联合IAM角色

  5. 如果您的 Active Directory 中没有配置 AWS 私有证书颁发机构 (CA),请使用私有 CA 创建私有证书颁发机构 (CA)。 AWS 私有 CA 必须使用基于证书的身份验证。有关更多信息,请参阅规划 AWS Private CA 部署。在许多基于证书的身份验证用例中,以下 AWS 私有 CA 设置很常见:

    • CA 类型选项

      • 短期证书 CA 使用模式 – 如果 CA 仅为基于证书的身份验证颁发最终用户证书,则建议使用此模式。

      • 带有根 CA 的单级层次结构 – 选择从属 CA 以将其与现有 CA 层次结构集成。

    • 密钥算法选项 — RSA 2048

    • 主题可分辨名称选项 – 使用合适的选项在 Active Directory 受信任的根证书颁发机构存储中识别此 CA。

    • 证书吊销选项-CRL 分发

      注意

      基于证书的身份验证需要一个可从 AppStream 2.0 舰队实例和域控制器访问的在线CRL分发点。这需要对为 AWS 私有 CA CRL 条目配置的 Amazon S3 存储桶进行未经身份验证的访问权限,或者如果 CloudFront 分配阻止公开访问,则需要有权访问 Amazon S3 存储桶。有关这些选项的更多信息,请参阅规划证书吊销列表 (CRL)

  6. 使用密钥标记您的私有 CA,该密钥euc-private-ca有权指定 CA 以用于基于 AppStream 2.0 证书的身份验证。此键不需要值。有关更多信息,请参阅管理私有 CA 的标签。有关 AppStream 2.0 中用于向中的资源授予权限的 AWS 托管策略的更多信息 AWS 账户,请参阅AWS 访问 AppStream 2.0 资源所需的托管策略

  7. 基于证书的身份验证使用虚拟智能卡进行登录。有关更多信息,请参阅 Guidelines for enabling smart card logon with third-party certification authorities。按照以下步骤进行操作:

    1. 使用域控制器证书配置域控制器,以对智能卡用户进行身份验证。如果您在 Active Directory 中配置了 Active Directory 证书服务企业 CA,它会自动使用启用智能卡登录的证书注册域控制器。如果您没有 Active Directory 证书服务,请参阅来自第三方 CA 的域控制器证书的要求。 AWS 建议 Active Directory 企业证书颁发机构自动管理域控制器证书的注册。

      注意

      如果您使用 AWS 托管 Microsoft AD,则可以在满足域控制器证书要求的亚马逊EC2实例上配置证书服务。有关配置了 A ctive Directory 证书服务的 AWS 托管 Microsoft AD 的部署示例,请参阅将 Active Directory 部署到新的亚马逊虚拟私有云

      使用 AWS 托管 Microsoft AD 和 Active Directory 证书服务,您还必须创建从控制器VPC安全组到运行证书服务的亚马逊EC2实例的出站规则。您必须为安全组提供对端TCP口 135 以及端口 49152 到 65535 的访问权限,才能启用证书自动注册。Amazon EC2 实例还必须允许域实例(包括域控制器)在这些端口上进行入站访问。有关查找 AWS 托管 Microsoft AD 的安全组的更多信息,请参阅配置您的VPC子网和安全组

    2. 在 AWS 私有 CA 控制台上,或者使用SDK或CLI,导出私有 CA 证书。有关更多信息,请参阅导出私有证书

    3. 将私有 CA 发布到 Active Directory。登录到域控制器或已加入域的计算机。将私有 CA 证书复制到任意 <path>\<file>,然后以域管理员身份运行以下命令。你也可以使用组策略和 Microsoft PKI Health Tool (PKIView) 发布 CA。有关更多信息,请参阅配置说明

      certutil -dspublish -f <path>\<file> RootCA
      certutil -dspublish -f <path>\<file> NTAuthCA

      确保命令成功完成,然后删除私有 CA 证书文件。根据您的 Active Directory 复制设置,CA 可能需要几分钟才能发布到您的域控制器和 AppStream 2.0 队列实例。

      注意

      Active Directory 必须在 AppStream 2.0 队列实例加入域时自动NTAuth将 CA 分发给受信任的根证书颁发机构和企业存储。

对于 Windows 操作系统,CA(证书颁发机构)的分发是自动进行的。但是,对于红帽企业 Linux,您必须从 AppStream 2.0 Directory Config 所使用的 CA 下载根 CA 证书。如果您的KDC根 CA 证书不同,则还必须下载这些证书。在使用基于证书的身份验证之前,必须将这些证书导入到图像或快照中。

在图像上,应该有一个名为/的文件etc/sssd/pki/sssd_auth_ca_db.pem。它应该类似以下内容:

-----BEGIN CERTIFICATE----- Base64-encoded certificate chain from ACM Private CA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate body from ACM private CA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded root CA KDC certificate chain -----END CERTIFICATE-----
注意

在跨区域或账户复制图像,或者将图像与新的 Active Directory 重新关联时,需要在映像生成器上使用相关证书重新配置此文件,并在使用前重新拍摄快照。

以下是下载根 CA 证书的说明:

  1. 在映像生成器上,创建一个名为的文件/etc/sssd/pki/sssd_auth_ca_db.pem

  2. 打开AWS私有 CA 控制台

  3. 选择与 AppStream 2.0 Directory Config 一起使用的私有证书。

  4. 选择 C A 证书选项卡。

  5. 将证书链和证书正文复制到映像生成器/etc/sssd/pki/sssd_auth_ca_db.pem上。

如果使用的根 CA 证书与 AppStream 2.0 Directory Config 使用的根 CA 证书不同,请按照以下示例步骤下载它们:KDCs

  1. Connect 连接到与您的映像生成器加入相同域的 Windows 实例。

  2. 打开 certlm.msc

  3. 在左侧窗格中,选择 “受信任的根证书颁发机构”,然后选择 “证书”。

  4. 对于每个根 CA 证书,打开上下文(右键单击)菜单。

  5. 选择 “所有任务”,选择 “导出” 以打开 “证书导出向导”,然后选择 “下一步”。

  6. 选择 Base64 编码的 X.509 (. CER),然后选择 “下一步”。

  7. 选择 “浏览”,输入文件名,然后选择 “下一步”。

  8. 选择完成

  9. 在文本编辑器中打开导出的证书。

  10. 将文件内容复制到图像生成器/etc/sssd/pki/sssd_auth_ca_db.pem上。