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