使用端点验证证书启用基于证书的访问

本页介绍了如何使用通过 Endpoint Verification 预配的证书启用基于证书的访问 (CBA)

您可以使用端点验证为设备自动配置自签名证书。借助端点验证预配的证书,您无需 PKI 基础架构即可使用 CBA。这些证书存储在 macOS 上的钥匙串中、Windows 上的证书存储区中,以及 Linux 上的文件系统中。

如果您拥有 PKI 基础架构,请参阅使用企业证书启用基于证书的访问以启用 CBA。

您可以在以下操作系统上启用已预配的端点验证证书:

  • 使用 Chrome 浏览器的 macOS 和 Windows 设备
  • 使用 Google Cloud CLI 的 macOS、Windows 和 Linux

如果您的操作系统未列出,请参阅使用不完全受支持的操作系统

准备工作

在继续之前,请确保您满足以下要求:

设置“端点验证”

按照说明为贵组织中的所有用户设备安装 Chrome 端点验证扩展程序。该扩展程序会将自签名证书预配到您的设备,并将证书元数据同步到 Google Cloud。

安装端点验证帮助程序应用。若要将端点验证与 CBA 搭配使用,必须安装此应用。

配置用户的 Chrome 浏览器

若要将用户的 Chrome 浏览器配置为使用端点验证预配的证书,您必须配置 AutoSelectCertificateFor网址s Chrome 政策,以允许端点验证搜索设备证书并通过 Chrome 收集。

  1. 确保用户的 Chrome 浏览器由 Chrome 浏览器云管理
  2. Google 管理控制台中,添加 AutoSelectCertificateForUrls 政策。

    1. 依次选择设备 > Chrome > 设置 > 用户和浏览器设置 > 客户端证书
    2. 选择适当的组织单元。
    3. 添加政策。以下示例添加了 AutoSelectCertificateForUrls 政策:

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}}
      {"pattern":"https://console-secure.cloud.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}}
      {"pattern":"https://storage.mtls.cloud.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}}
      

完成配置后,用户可以使用 Chrome 浏览器访问 console-secure.cloud.google.com 上受保护的Google Cloud 资源。

(可选)验证政策配置

  1. 在 Chrome 浏览器中,输入 chrome://policy
  2. 验证 AutoSelectCertificateForUrls 是否已列在 Chrome 政策下。
  3. 验证适用对象的值是否为机器。在 ChromeOS 上,适用于的值为当前用户
  4. 确保政策的状态没有冲突。如果状态存在冲突,请参阅了解 Chrome 政策管理了解详情。

配置命令行工具

您可以配置以下工具以使用端点验证预配的证书:

  • Google Cloud CLI
  • Terraform CLI(需要 gcloud CLI 来安装和配置辅助组件。)

由于设备证书存储在 macOS 和 Windows 密钥库中,因此 gcloud CLI 与 Enterprise Certificate Proxy (ECP) 开源组件捆绑在一起,以便与密钥管理 API 交互。

如果您使用的是 Windows 系统,则必须安装 Visual Studio C++ 运行时库。

  1. 安装 gcloud CLI。在启用捆绑的 Python 选项的情况下进行安装。
  2. 启用 CBA
  3. 对于 macOS 和 Linux,请下载并运行 install.sh 脚本。

    ./google-cloud-sdk/install.sh
    
  4. Linux 用户请前往启用预配的 CBA 和 Endpoint Verification 证书 步骤。macOS 和 Windows 用户请完成以下步骤。

    1. 使用 gcloud CLI 安装 ECP 辅助组件。

      
      gcloud components install enterprise-certificate-proxy
      
    2. 使用 gcloud CLI 初始化 ECP 证书配置。

      macOS

      
      gcloud auth enterprise-certificate-config create macos \
      --issuer="Google Endpoint Verification"
      

      Windows

      
      gcloud auth enterprise-certificate-config create windows \
      --issuer="Google Endpoint Verification" \
      --provider=current_user \
      --store=MY
      

      (可选)运行以下命令,手动配置 ECP 证书。

      macOS

      ECP 配置存储在位于 ~/.config/gcloud/certificate_config.json 中的 JSON 文件中。

      {
        "cert_configs": {
            "macos_keychain": {
              "issuer": "Google Endpoint Verification"
            }
        },
        "libs": {
          "ecp": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/bin/ecp",
          "ecp_client": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libecp.dylib",
          "tls_offload": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dylib"
        }
      }
      

      Windows

      ECP 配置存储在位于 %APPDATA%\gcloud\certificate_config.json 中的 JSON 文件中。

      {
        "cert_configs": {
          "windows_store": {
            "store": "MY",
            "provider": "current_user",
            "issuer":"Google Endpoint Verification"
          }
        },
        "libs": {
          "ecp": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/bin/ecp.exe",
          "ecp_client": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libecp.dll",
          "tls_offload": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dll"
        }
      }
      
  5. 启用 CBA 和 Endpoint Verification 预配的证书。

    • 对于 gcloud CLI,请运行以下命令。

      gcloud config set context_aware/use_client_certificate true
      
    • 对于所有其他命令行工具(包括 Terraform),请设置环境变量。

      export GOOGLE_API_USE_CLIENT_CERTIFICATE=1
      

使用不完全受支持的操作系统

如果您的操作系统不在受支持的操作系统列表中,并且您想使用端点验证预配的证书,则可以将相应环境从基于证书的强制执行中豁免,改为使用其他类型的强制执行来保护它们。例如,使用公司自有设备政策。

请注意,与其他类型的强制执行相比,基于证书的强制执行可提供更强的保护,因为它会通过 mTLS 握手强制执行来自设备的每个请求。

以下示例展示了如何将环境从基于证书的强制执行中豁免,并使用其他类型的强制执行来保护它们。

在本示例中,某个组织使用 macOS、Windows 和 ChromeOS 设备。该组织希望保护来自 Google Cloud 控制台的访问。

  1. 创建一个访问权限级别,为所有设备强制执行基于证书的访问权限(ChromeOS 设备除外,此类设备需要使用公司自有设备政策)。将 YAML 文件替换为以下自定义表达式:

    certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
     || (device.os_type == OsType.DESKTOP_CHROME_OS && device.is_corp_owned_device)
    
  2. 完成上文中所述的步骤。

    1. 创建情境感知政策
    2. 设置端点验证
    3. 配置用户的 Chrome 浏览器以使用端点验证预配的证书