前提条件
使用基于证书的身份验证之前,请完成以下步骤。
-
设置加入域的实例集并配置 SAML 2.0。确保对 SAML_Subject
NameID使用username@domain.comuserPrincipalName格式。有关更多信息,请参阅 步骤 5:为 SAML 身份验证响应创建断言。注意
如果您要使用基于证书的身份验证,请不要启用堆栈中的 Active Directory 的智能卡登录。有关更多信息,请参阅 智能卡。
-
使用 2022 年 10 月 13 日 AppStream 2.0 代理版本或更高版本处理您的映像。有关更多信息,请参阅 将您的 Amazon AppStream 2.0 映像保持最新。
-
在 SAML 断言中配置
ObjectSid属性。您可以使用此属性与 Active Directory 用户进行强映射。如果ObjectSid属性与 SAML_SubjectNameID中指定的用户的 Active Directory 安全标识符(SID)不匹配,则基于证书的身份验证将失败。有关更多信息,请参阅 步骤 5:为 SAML 身份验证响应创建断言。2025 年 9 月 10 日之后,基于证书的身份验证必须有ObjectSid。有关更多信息,请参阅 KB5014754:Windows 域控制器上基于证书的身份验证更改。 -
将
sts:TagSession权限添加到与您的 SAML 2.0 配置一起使用的 IAM 角色信任策略。有关更多信息,请参阅在 AWS STS 中传递会话标签。使用基于证书的身份验证时需要此权限。有关更多信息,请参阅 步骤 2:创建 SAML 2.0 联合身份验证 IAM 角色。 -
如果您的 Active Directory 没有配置私有证书颁发机构(CA),请使用 AWS 私有 CA 创建一个。AWS使用基于证书的身份验证时需要私有 CA。有关更多信息,请参阅规划 AWS 私有 CA 部署。以下是许多基于证书的身份验证使用案例中常见的 AWS 私有 CA 设置:
-
CA 类型选项
-
短期证书 CA 使用模式 – 如果 CA 仅为基于证书的身份验证颁发最终用户证书,则建议使用此模式。
-
带有根 CA 的单级层次结构 – 选择从属 CA 以将其与现有 CA 层次结构集成。
-
-
密钥算法选项 – RSA 2048
-
主题可分辨名称选项 – 使用合适的选项在 Active Directory 受信任的根证书颁发机构存储中识别此 CA。
-
证书吊销选项 – CRL 分发
注意
基于证书的身份验证需要一个可从 AppStream 2.0 实例集实例和域控制器访问的在线 CRL 分发点。这需要以未经身份验证的方式访问为 AWS 私有 CA CRL 条目配置的 Amazon S3 存储桶,或者如果阻止了公共访问,则需要拥有 Amazon S3 存储桶访问权限的 CloudFront 分配。有关这些选项的更多信息,请参阅计划证书吊销列表(CRL)。
-
-
使用名为
euc-private-ca的键标记您的私有 CA,以指定该 CA 用于 AppStream 2.0 基于证书的身份验证。此键不需要值。有关更多信息,请参阅管理私有 CA 的标签。有关与 AppStream 2.0 结合使用以向 AWS 账户中资源授予权限的 AWS 托管策略的更多信息,请参阅 访问 AppStream 2.0 资源所需的 AWS 托管策略。 -
基于证书的身份验证使用虚拟智能卡进行登录。有关更多信息,请参阅 Guidelines for enabling smart card logon with third-party certification authorities
。按照以下步骤进行操作: -
使用域控制器证书配置域控制器,以对智能卡用户进行身份验证。如果您在 Active Directory 中配置了 Active Directory 证书服务企业 CA,它会自动使用启用智能卡登录的证书注册域控制器。如果您没有 Active Directory 证书服务,请参阅 Requirements for domain controller certificates from a third-party CA
。AWS 建议 Active Directory 企业证书颁发机构自动管理域控制器证书的注册。 注意
如果使用 AWS Managed Microsoft AD,则可以在满足域控制器证书要求的 Amazon EC2 实例上配置证书服务。有关配置了 Active Directory 证书服务的 AWS Managed Microsoft AD 的部署示例,请参阅将 Active Directory 部署到新的 Amazon Virtual Private Cloud。
使用 AWS Managed Microsoft AD 和 Active Directory 证书服务,您还必须创建从控制器的 VPC 安全组到运行证书服务的 Amazon EC2 实例的出站规则。您必须为安全组提供对 TCP 端口 135 以及端口 49152 至 65535 的访问权限,才能启用证书自动注册。Amazon EC2 实例还必须允许域实例(包括域控制器)在这些相同的端口上进行入站访问。有关查找 AWS Managed Microsoft AD 的安全组的更多信息,请参阅配置 VPC 子网和安全组。
-
在 AWS 私有 CA 控制台上导出私有 CA 证书,或者使用 SDK 或 CLI 导出私有 CA 证书。有关更多信息,请参阅导出私有证书。
-
将私有 CA 发布到 Active Directory。登录到域控制器或已加入域的计算机。将私有 CA 证书复制到任意
,然后以域管理员身份运行以下命令。您也可以使用组策略和 Microsoft PKI Health Tool(PKIView)发布 CA。有关更多信息,请参阅配置说明<path>\<file>。 certutil -dspublish -f<path>\<file> RootCAcertutil -dspublish -f<path>\<file> NTAuthCA确保命令成功完成,然后删除私有 CA 证书文件。根据您的 Active Directory 复制设置,CA 可能需要几分钟才能发布到您的域控制器和 AppStream 2.0 实例集实例。
注意
Active Directory 必须在 AppStream 2.0 实例集实例加入域时自动将 CA 分发给受信任的根证书颁发机构存储和 Enterprise NTAuth 存储。
-
对于 Windows 操作系统,CA(证书颁发机构)的分发是自动进行的。但是,对于 Rocky Linux 和 Red Hat Enterprise 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 证书的说明:
-
在映像生成器上,创建一个名为
/etc/sssd/pki/sssd_auth_ca_db.pem的文件。 -
选择与 AppStream 2.0 Directory Config 一起使用的私有证书。
-
选择 CA 证书选项卡。
-
将证书链和证书正文复制到映像生成器上的
/etc/sssd/pki/sssd_auth_ca_db.pem中。
如果 KDC 使用的根 CA 证书与 AppStream 2.0 Directory Config 使用的根 CA 证书不同,请按照以下示例步骤下载它们:
-
连接到与您的映像生成器加入相同域的 Windows 实例。
-
打开
certlm.msc。 -
在左侧窗格中,选择受信任的根证书颁发机构,然后选择证书。
-
对于每个根 CA 证书,打开上下文(右键单击)菜单。
-
选择所有任务,选择导出以打开“证书导出向导”,然后选择下一步。
-
选择 Base64 编码的 X.509 (.CER),然后选择下一步。
-
选择浏览,输入文件名,然后选择下一步。
-
选择完成。
-
在文本编辑器中打开导出的证书。
-
将文件内容复制到映像生成器上的
/etc/sssd/pki/sssd_auth_ca_db.pem中。