設定企業憑證條件

Chrome Enterprise 進階版的一項重要原則,是根據您和裝置的情境資訊授予服務存取權。Chrome Enterprise 進階版會評估多個資料來源,動態推斷授予單一使用者或裝置的存取權層級,並將這個信任層級做為決策依據。

Access Context Manager 是 Chrome Enterprise 進階版的零信任政策引擎。您可以使用 Access Context Manager,依據屬性為應用程式和 Google Cloud 資源定義精細的存取控管機制。

使用存取層級,根據要求的相關情境資訊,允許存取資源。您可以使用存取層級,開始整理信任層級。舉例來說,您可以建立名為 High_Level 的存取層級,允許一小群高權限人員提出要求。您也可以指定更廣泛的信任群組,例如要允許要求的 IP 位址範圍。在這種情況下,您可以建立名為 Medium_Level 的存取層級,允許這些要求。

零信任存取權的主要要求之一,是只有在裝置由公司管理或擁有時,才允許存取。您可以透過多種方式判斷裝置是否為公司擁有,其中一種方法是判斷裝置上是否有公司核發的有效憑證。裝置上的企業憑證可指出裝置為公司所有。

情境感知存取權的企業憑證,是 Chrome Enterprise 進階版憑證存取解決方案的功能。這項功能會使用裝置憑證做為替代情境感知信號,判斷裝置是否為公司擁有的資產。這項功能適用於 Google Chrome 瀏覽器 110 以上版本。

由於裝置可以有多個憑證,您可以使用巨集 .exists(e, p),在自訂存取層級中存取企業憑證:

device.certificates.exists(cert, predicate)

在範例中,cert 是 predicate 中使用的 ID,會繫結至裝置憑證。exists() 巨集會使用「or」(||) 運算子合併每個元素的述詞結果,也就是說,如果至少有一個憑證符合 predicate 運算式,巨集就會傳回 true。

憑證包含下列屬性,可一併檢查。請注意,字串比較會區分大小寫。

屬性 說明 述詞運算式範例 (其中的 cert 是巨集的 ID)
is_valid 如果憑證有效且並未過期,則傳回 True (布林值)。

檢查憑證是否未過期,且由信任錨點簽署。請注意,端點驗證不會檢查憑證撤銷。

cert.is_valid
cert_fingerprint 憑證指紋 (Base64 未填充 SHA256)。

指紋是 DER 編碼憑證的未填充 base64 編碼 SHA256 摘要 (二進位格式)。只要使用含有 OpenSSL 的程序,即可使用 PEM 格式的憑證產生字串:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha | tr -d =

cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint 用來簽署憑證的根 CA 憑證指紋 (Base64 未填充 SHA256)。

指紋是 DER 編碼憑證的未填充 base64 編碼 SHA256 摘要 (二進位格式)。只要使用含有 OpenSSL 的程序,即可使用 PEM 格式的憑證產生字串:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha | tr -d =

cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT"
issuer 核發機構名稱 (完整的擴充名稱)。

如要找出核發機構名稱,請採取下列做法:

對憑證執行下列指令:

$ openssl x509 -in ca_1.crt -issuer issuer= /C=US/ST=CA/L=MTV/O=ExampleCorp/OU=ExampleUnit/CN=inter_1/emailAddress=admin@example.com

如要取得存取層級的核發者字串,請反轉輸出內容,並將每個正斜線 (/) 替換為半形逗號 (,):

EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US

cert.issuer == "EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US"
subject 憑證的主體名稱 (完整的擴充名稱)。 cert.subject == "CA_SUB"
serial_number 憑證的序號 (字串)。 cert.serial_number == "SERIAL_NUMBER"
template_id 憑證的 X.509 擴充功能憑證範本 ID (字串)。cert.template_id == "TEMPLATE_ID"

下表列出可設定的政策範例:

範例政策 運算式
裝置具備由公司根憑證簽署的有效憑證。 device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
裝置具備由核發者 CA_ABC 核發的有效憑證。 device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=admin@example.com, CN=inter_1, OU=ExampleUnit, O=ExampleCorp, L=MTV, ST=CA, C=US")

設定企業憑證

設定企業憑證前,請務必先設定自訂存取層級。如需操作說明,請參閱「建立自訂存取層級」。

您可以使用 Access Context Manager 自訂存取層級定義,設定適當的政策。自訂存取層級會使用以一般運算語言 (CEL) 子集編寫的布林運算式,測試提出要求的用戶端屬性。

在管理控制台上傳信任錨點

如要讓 Chrome Enterprise 進階版收集及驗證裝置企業憑證,您必須上傳信任錨點和用於核發裝置憑證的中繼憑證。信任錨點是自行簽署的根 CA (憑證授權單位) 憑證,以及相關的中繼和從屬憑證。請按照下列步驟上傳信任錨點:

  1. 前往管理控制台, 依序前往「裝置」 > 「網路」 > 「憑證」。
  2. 選取適當的組織單位。
  3. 選取「新增憑證」。
  4. 輸入憑證名稱。
  5. 上傳憑證。
  6. 勾選「Endpoint Verification」核取方塊。
  7. 按一下「新增」。
  8. 確認使用者屬於您上傳信任錨點的組織單位。

設定 AutoSelectCertificateForUrls 政策

如要讓「端點驗證」功能透過 Chrome 搜尋並收集裝置憑證,您必須完成下列步驟,設定 AutoSelectCertificateForUrls 政策:

  1. 確認 Chrome 瀏覽器是由 Chrome 瀏覽器雲端管理服務管理。

  2. 在管理控制台中新增 AutoSelectCertificateForUrls 政策:

    1. 前往管理控制台,依序前往「裝置」 > 「Chrome」 > 「設定」> 「使用者和瀏覽器設定」 > 「用戶端憑證」。
    2. 選取適當的組織單位。
    3. 根據以下範例,新增 AutoSelectCertificateForUrls 政策:

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
      

      請將 CERTIFICATE_ISSUER_NAME 替換為核發者 CA 的一般名稱。請勿修改 pattern 的值。

如要驗證政策設定,請完成下列步驟:

  1. 在瀏覽器中前往 chrome://policy。
  2. 確認 AutoSelectCertificateForUrls 的設定值。
  3. 確認政策的「套用對象」值已設為「裝置」。在 ChromeOS 上,這個值會套用至「目前使用者」。
  4. 確認政策的「狀態」未顯示「衝突」。

後續步驟