

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

# Certificate-based 身份验证和 WorkSpaces 个人
<a name="certificate-based-authentication"></a>

您可以使用基于证书的身份验证 WorkSpaces 来移除用户输入 Active Directory 域密码的提示。通过对您的 Active Directory 域使用基于证书的身份验证，您可以：
+ 依靠您的 SAML 2.0 身份提供商对用户进行身份验证，并提供 SAML 断言以匹配 Active Directory 中的用户。
+ 使用更少的用户提示启用单点登录体验。
+ 使用 SAML 2.0 身份提供商启用无密码身份验证流程。

Certificate-based 身份验证使用您 AWS 账户中的 AWS 私有 CA 资源。 AWS 私有 CA 允许创建私有证书颁发机构 (CA) 层次结构，包括根证书颁发机构和从属 CA。使用 AWS 私有 CA，您可以创建自己的 CA 层次结构，并使用它颁发证书，用于对内部用户进行身份验证。有关更多信息，请参阅 [AWS 私有证书颁发机构 《用户指南》](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)。

使用基于证书 AWS 私有 CA 的身份验证时， WorkSpaces 将在会话身份验证期间自动为您的用户请求证书。使用预调配了证书的虚拟智能卡对用户进行 Active Directory 身份验证。

Certificate-based 使用最新的 WorkSpaces Web Access、Windows 和 macOS 客户端应用程序的 DCV 捆绑包 WorkSpaces 上的 Windows 支持身份验证。打开 Amazon WorkSpaces [客户端下载](https://clients.amazonworkspaces.com/)以查找最新版本：
+ Windows 客户端 5.5.0 或更高版本
+ macOS 客户端 5.6.0 或更高版本

有关使用 Amazon 配置基于证书的身份验证的更多信息 WorkSpaces，请参阅[如何为 Amazon 配置基于证书的身份验证 WorkSpaces](https://aws.amazon.com/blogs/desktop-and-application-streaming/how-to-configure-certificate-based-authentication-for-amazon-workspaces/)和[在高度监管的环境中使用应用程序进行基于证书的身份验证的设计注意事项](https://aws.amazon.com/blogs/desktop-and-application-streaming/design-considerations-in-highly-regulated-environments-for-certificate-based-authentication-with-appstream-2-0-workspaces/)以及。 WorkSpaces WorkSpaces

## 先决条件
<a name="cert-based-auth-prerequesites"></a>

在启用基于证书的身份验证之前，请完成以下步骤。

1. 使用 SAML 2.0 集成配置您的 WorkSpaces 目录，以使用基于证书的身份验证。有关更多信息，请参阅[与 SAML 2.0 WorkSpaces 集成](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-saml.html)。

1. 在 SAML 断言中配置 `userPrincipalName` 属性。有关更多信息，请参阅[为 SAML 身份验证响应创建断言](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html#create-assertions-saml-auth)。

1. 在 SAML 断言中配置 `ObjectSid` 属性。这是执行与 Active Directory 用户的强映射所必需的。 Certificate-based 如果该属性与 SAML `NameID` \_subject 中指定的用户的 Active Directory 安全标识符 (SID) 不匹配，则身份验证将失败。有关更多信息，请参阅[为 SAML 身份验证响应创建断言](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html#create-assertions-saml-auth)。
**注意**  
根据 [Microsoft KB5014754](https://support.microsoft.com/en-us/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16)，2025 年 9 月 10 日之后，基于证书的身份验证要求必须配置 `ObjectSid` 属性。

1. 将 [sts: TagSession](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) 权限添加到用于 SAML 2.0 配置的 IAM 角色信任策略（如果尚未存在）。使用基于证书的身份验证时需要此权限。有关更多信息，请参阅[创建 SAML 2.0 联合身份验证 IAM 角色](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html#create-saml-iam-role)。

1.  AWS 私有 CA 如果您的 Active Directory 中没有配置私有证书颁发机构 (CA)，请使用创建私有证书颁发机构 (CA)。 AWS 私有 CA 必须使用基于证书的身份验证。有关更多信息，请参阅[规划 AWS 私有 CA 部署并](https://docs.aws.amazon.com/privateca/latest/userguide/PcaPlanning.html)按照指南为基于证书的身份验证配置 CA。以下 AWS 私有 CA 设置是基于证书的身份验证用例中最常见的设置：

   1. CA 类型选项：

      1. Short-lived 证书 CA 使用模式（如果您仅使用 CA 为基于证书的身份验证颁发最终用户证书，则建议使用）

      1. 带有根 CA 的单级层次结构（或者，在希望与现有 CA 层次结构集成时选择从属 CA）

   1. 密钥算法选项：RSA 2048

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

   1. 证书吊销选项：CRL 分发
**注意**  
Certificate-based 身份验证需要可从桌面和域控制器访问的在线 CRL 分发点。这需要对为私有 CA CRL 条目配置的 Amazon S3 存储桶进行未经身份验证的访问权限，或者如果 CloudFront分配阻止公开访问，则该分配将有权访问 S3 存储桶。有关这些选项的更多信息，请参阅[计划证书吊销列表 (CRL)](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-bpa)。

1. 使用名为 `euc-private-ca` 的键标记您的私有 CA，以指定该 CA 用于 EUC 基于证书的身份验证。该键不需要值。有关更多信息，请参阅[管理私有 CA 的标签](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCaTagging.html)。

1. Certificate-based 身份验证使用虚拟智能卡进行登录。按照 Active Directory 中[使用第三方证书颁发机构启用智能卡登录的指导原则](https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/enabling-smart-card-logon-third-party-certification-authorities)，执行以下步骤：
   + 使用域控制器证书配置域控制器，以对智能卡用户进行身份验证。如果您在 Active Directory 中配置了 Active Directory 证书服务企业 CA，则系统会自动使用启用智能卡登录的证书注册域控制器。如果您没有 Active Directory 证书服务，请参阅[对第三方 CA 的域控制器证书的要求](https://learn.microsoft.com/en-US/troubleshoot/windows-server/windows-security/requirements-domain-controller)。您可以使用 AWS 私有 CA创建域控制器证书。如果这样做，请不要使用为短期证书配置的私有 CA。
**注意**  
如果您正在使用 AWS Managed Microsoft AD，则可以在 EC2 实例上配置证书服务以满足域控制器证书的要求。有关 AWS Managed Microsoft AD 配置[AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-ad-deploying-new-vpc.html)了 Active Directory 证书服务的部署示例，请参阅。 AWS 私有 CA 可以配置为 Active Directory 证书服务 CA 的从属机构，也可以在使用时将其配置为自己的根 AWS Managed Microsoft AD。  
 AWS Managed Microsoft AD 和 Active Directory 证书服务的另一项配置任务是创建从控制器 VPC 安全组到运行证书服务的 EC2 实例的出站规则，允许 TCP 端口 135 和 49152-65535 启用证书自动注册。此外，正在运行的 EC2 实例还必须允许域实例（包括域控制器）在这些相同的端口上进行入站访问。有关查找安全组的更多信息， AWS Managed Microsoft AD 请参阅[配置您的 VPC 子网和安全组](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust_prepare_mad.html#tutorial_setup_trust_open_vpc)。
   + 在 AWS 私有 CA 控制台上或使用 SDK 或 CLI，选择您的 CA，然后在 CA 证书下导出 CA 私有证书。有关更多信息，请参阅[导出私有证书](https://docs.aws.amazon.com/acm/latest/userguide/export-private.html)。
   + 将 CA 发布到 Active Directory。登录到域控制器或已加入域的计算机。将私有 CA 证书复制到任意 `<path>\<file>`，然后以域管理员身份运行以下命令。或者，您也可以使用组策略和 Microsoft PKI Health Tool (PKIView) 工具发布 CA。有关更多信息，请参阅[配置说明](https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/enabling-smart-card-logon-third-party-certification-authorities#configuration-instructions)。

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

     确保命令成功完成，然后删除私有证书文件。根据 Active Directory 复制设置，CA 可能需要几分钟才能发布到您的域控制器和桌面实例。
**注意**  
Active Directory 要求 Active Directory 在 WorkSpaces 台式机加入域时自动将 CA 分发给受信任的根证书颁发机构和企业 nTauth 存储区。

## 启用基于证书的身份验证
<a name="enable-cert-based-auth"></a>

要启用基于证书的身份验证，请完成以下步骤。

1. 打开 WorkSpaces 控制台，网址为[https://console.aws.amazon.com/workspaces/v2/home](https://console.aws.amazon.com/workspaces/v2/home)。

1. 在导航窗格中，选择**目录**。

1. 选择您的目录 ID WorkSpaces。

1. 在**身份验证**下，单击**编辑**。

1. 单击 “**编辑 Certificate-Based 身份验证”**。

1. 选中**启用 Certificate-Based 身份验证**。

1. 确认您的私有 CA ARN 已关联到列表中。私有 CA 应位于同一个 AWS 账户中 AWS 区域，并且必须使用名为 euc-private-ca 的密钥进行标记，才能出现在列表中。

1. 单击 “**保存更改**”。 Certificate-based 身份验证现已启用。

1. 重启你的 Windows WorkSpaces on DCV 捆绑包以使更改生效。有关更多信息，请参阅[重启 a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/reboot-workspaces.html)。

1. 重启后，当用户使用支持的客户端通过 SAML 2.0 进行身份验证时，将不再收到输入域密码的提示。

**注意**  
启用基于证书的身份验证登录时，即使在目录中启用了多重身份验证 (MFA) WorkSpaces，也不会提示用户进行多重身份验证 (MFA)。使用基于证书的身份验证时，可以通过 SAML 2.0 身份提供商启用 MFA。有关 AWS Directory Service MFA 的更多信息，请参阅[Multi-factor 身份验证（AD Connector）](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_mfa.html)或[启用多因素](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_mfa.html#supportedamazonapps)身份验证。 AWS Managed Microsoft AD

## 管理基于证书的身份验证
<a name="manage-cert-based-auth"></a>

**CA 证书**  
在典型配置中，私有 CA 证书的有效期为 10 年。有关更换证书过期的 CA 或重新颁发具有新有效期的 CA 的更多信息，请参阅[管理私有 CA 生命周期](https://docs.aws.amazon.com/privateca/latest/userguide/ca-lifecycle.html)。

**最终用户证书**  
为 WorkSpaces 基于证书的身份验证 AWS 私有 CA 而颁发的最终用户证书不需要续订或撤销。这些证书是短暂的。 WorkSpaces每 24 小时自动颁发一次新证书。这些最终用户证书的有效期比典型的 AWS 私有 CA CRL 发行版短。因此，无需吊销最终用户证书，这些证书也不会出现在 CRL 中。

**审核报告**  
您可以创建审核报告，以列出您的私有 CA 已颁发和吊销的所有证书。有关更多信息，请参阅[将审核报告与私有 CA 结合使用](https://docs.aws.amazon.com/privateca/latest/userguide/PcaAuditReport.html)。

**日志记录和监控**  
您可以使用[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)来记录对 by 的 API 调 AWS 私有 CA 用 WorkSpaces。有关更多信息，请参阅[使用 CloudTrail](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCtIntro.html)。在[CloudTrail事件历史记录](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)中`GetCertificate`，`IssueCertificate`您可以查看由 WorkSpaces`EcmAssumeRoleSession`用户名`acm-pca.amazonaws.com`创建的事件源中的事件名称。每个 EUC 基于证书的身份验证请求都将记录这些事件。

## 启用跨账户 PCA 共享
<a name="enable-pca-sharing"></a>

 当您使用私有 CA 跨账户共享时，您可以向其他账户授予使用集中式 CA 的权限，这样就无需在每个账户中都使用私有 CA。通过使用 [AWS Resource Access Manager](https://aws.amazon.com/ram/) 来管理权限，该 CA 可以生成和颁发证书。私有 CA 跨账户共享可在同一区域内与 WorkSpaces 基于证书的身份验证 (CBA) 一起使用。 AWS 

**与 CBA 一起使用共享的私有 WorkSpaces CA 资源**

1. 在集中 AWS 账户中配置 CBA 的私有 CA。有关更多信息，请参阅 [Certificate-based 身份验证和 WorkSpaces 个人](#certificate-based-authentication)。

1.  按照[如何使用 AWS RAM 跨 AWS 账户共享 ACM 私有 CA 中的步骤，与 WorkSpaces 资源使用 CBA 的资源账户共享私有 CA](https://aws.amazon.com/blogs/security/how-to-use-aws-ram-to-share-your-acm-private-ca-cross-account/)。您无需完成步骤 3 来创建证书。您可以与个人 AWS 账户共享私有 CA，也可以通过 Organizations AWS 共享。要与个人账户共享，您需要使用 Resource Access Manager（RAM）控制台或 API 接受资源账户中的共享私有 CA。在配置共享时，请确认资源账户中私有 CA 的 RAM 资源共享使用的是 `AWS RAMBlankEndEntityCertificateAPICSRPassthroughIssuanceCertificateAuthority` 托管权限模板。此模板与 WorkSpaces 服务角色在颁发 CBA 证书时使用的 PCA 模板一致。

1. 共享成功后，应该能够使用资源账户中的私有 CA 控制台查看共享的私有 CA。

1. 使用 API 或 CLI 在目录属性中将私有 CA ARN 与 CBA 相关联。 WorkSpaces 目前， WorkSpaces 控制台不支持选择共享的私有 CA ARN。CLI 命令示例：

   ```
   aws workspaces modify-certificate-based-auth-properties —resource-id <value> —certificate-based-auth-properties Status=<value>,CertificateAuthorityArn=<value>
   ```