エンタープライズ証明書条件を構成する

Chrome Enterprise Premium の重要な原則は、サービスへのアクセス権限が、ユーザーとそのデバイスに関するコンテキスト情報に基づいて付与されることです。Chrome Enterprise Premium は、複数のデータソースを評価して、1 人のユーザーまたはデバイスに付与されるアクセスレベルを動的に推測し、この信頼レベルを決定プロセスの一部として使用します。

Access Context Manager は、Chrome Enterprise Premium のゼロトラスト ポリシー エンジンです。Access Context Manager を使用すると、アプリケーションと Google Cloud リソースに対してきめ細かい属性ベースのアクセス制御を定義できます。

アクセスレベルを使用して、リクエストのコンテキスト情報に基づいてリソースへのアクセスを許可します。アクセスレベルを使用すると、信頼の階層を整理できます。たとえば、High_Level というアクセスレベルを作成して、高い権限を持つユーザーの少人数のグループからのリクエストを許可できます。リクエストを許可する IP アドレス範囲など、信頼できるより一般的なグループを特定することもできます。その場合、Medium_Level というアクセスレベルを作成して、これらのリクエストを許可します。

ゼロトラスト アクセスの主な要件の 1 つは、デバイスが会社によって管理または所有されている場合のみアクセスを許可することです。デバイスが会社の所有かどうかを判断する方法はいくつかあります。その 1 つの方法は、会社が発行した有効な証明書がデバイスに存在するかどうかを判断することです。デバイスにエンタープライズ証明書が存在することで、そのデバイスが会社所有であることを確認できます。

コンテキストアウェア アクセス用のエンタープライズ証明書は、Chrome Enterprise Premium の証明書ベース アクセス ソリューション全体の一つの機能です。この機能は、デバイス証明書を代替のコンテキストアウェア シグナルとして使用して、デバイスが企業所有のアセットかどうかを判断します。この機能は、Google Chrome ブラウザ バージョン 110 以降でサポートされています。

デバイスには複数の証明書を含めることができます。そのため、マクロ .exists(e, p) を使用してカスタム アクセスレベルでエンタープライズ証明書にアクセスできます。

device.certificates.exists(cert, predicate)

この例では、cert は、predicate で使用する識別子であり、デバイス証明書にバインドされます。exists() マクロは、要素ごとの述語結果を「or」(||)演算子で結合します。つまり、少なくとも 1 つの証明書が predicate 式を満たす場合、マクロは true を返します。

証明書には次のような属性があり、これらは同時にチェックできます。文字列の比較では大文字と小文字が区別されます。

属性 説明 述語式の例(cert はマクロの識別子)
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 のカスタム アクセスレベル定義を使用して、適切なポリシーを設定できます。カスタム アクセスレベルでは、Common Expression Language(CEL)のサブセットで作成されたブール式を使用して、リクエストを発行するクライアントの属性をテストします。

管理コンソールでトラスト アンカーをアップロードする

Chrome Enterprise Premium がデバイスのエンタープライズ証明書を収集して検証するためには、デバイス証明書の発行に使用するトラスト アンカーと中間証明書をアップロードする必要があります。トラスト アンカーは、自己署名のルート CA(認証局)証明書および関連する中間証明書と下位証明書です。次の手順を完了して、トラスト アンカーをアップロードします。

  1. [管理コンソール] に移動し、[デバイス] > [ネットワーク] > [証明書] に移動します。
  2. 適切な組織部門を選択します。
  3. [証明書を追加] を選択します。
  4. 証明書名を入力します。
  5. 証明書をアップロードします。
  6. [エンドポイントの確認] チェックボックスをオンにします。
  7. [追加] をクリックします。
  8. トラスト アンカーをアップロードした組織部門にユーザーが属していることを確認します。

AutoSelectCertificateForUrls ポリシーを構成する

Endpoint Verification が 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. ポリシーのステータスに競合がないことを確認します。

次のステップ