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

本页面介绍了如何使用端点验证预配的证书启用 基于证书的访问权限 (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 与企业证书代理 (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 和端点验证预配的证书 步骤。 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 配置存储在 JSON 文件中,该文件位于 ~/.config/gcloud/certificate_config.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 配置存储在 JSON 文件中,该文件位于 %APPDATA%\gcloud\certificate_config.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 和端点验证预配的证书。

    • 对于 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 浏览器配置为使用端点验证预配的证书