Bedingungen für Unternehmenszertifikate konfigurieren

Ein wichtiges Prinzip von Chrome Enterprise Premium ist, dass der Zugriff auf Dienste auf der Grundlage von Kontextinformationen über Sie und Ihr Gerät gewährt wird. Chrome Enterprise Premium leitet die Zugriffsebene für einen einzelnen Nutzer oder ein einzelnes Gerät dynamisch ab, indem mehrere Datenquellen ausgewertet werden. Diese Vertrauensebene wird dann im Rahmen des Entscheidungsprozesses verwendet.

Access Context Manager ist die Zero-Trust-Richtlinien-Engine von Chrome Enterprise Premium. Mit Access Context Manager können Sie eine differenzierte, attributbasierte Zugriffssteuerung für Anwendungen und Ressourcen von Google Cloud definieren.

Verwenden Sie Zugriffsebenen, um den Zugriff auf Ressourcen basierend auf Kontextinformationen zur Anfrage zu ermöglichen. Mithilfe von Zugriffsebenen können Sie Vertrauensebenen organisieren. Sie können beispielsweise eine Zugriffsebene mit dem Namen High_Level erstellen, die Anfragen von einer kleinen Gruppe von Personen mit hohen Berechtigungen zulässt. Sie können auch eine allgemeinere Gruppe identifizieren, der Sie vertrauen, z. B. einen IP-Adressbereich, von dem Sie Anfragen zulassen möchten. In diesem Fall können Sie eine Zugriffsebene mit dem Namen Medium_Level erstellen, um diese Anfragen zuzulassen.

Eine der wichtigsten Voraussetzungen für den Zero-Trust-Zugriff ist, dass der Zugriff nur dann zugelassen wird, wenn das Gerät vom Unternehmen verwaltet wird oder dem Unternehmen gehört. Es gibt mehrere Möglichkeiten festzustellen, ob ein Gerät dem Unternehmen gehört. Eine Möglichkeit besteht darin, zu prüfen, ob sich auf dem Gerät ein gültiges, vom Unternehmen ausgestelltes Zertifikat befindet. Ein Unternehmenszertifikat auf einem Gerät kann darauf hinweisen, dass es sich um ein unternehmenseigenes Gerät handelt.

Unternehmenszertifikate für den kontextsensitiven Zugriff sind eine Funktion der zertifikatbasierten Zugriffslösung von Chrome Enterprise Premium. Diese Funktion verwendet Gerätezertifikate als alternatives kontextsensitives Signal, um zu bestimmen, ob es sich bei einem Gerät um ein unternehmenseigenes Asset handelt. Diese Funktion wird in Google Chrome ab Version 110 unterstützt.

Da ein Gerät mehrere Zertifikate haben kann, können Sie über das Makro .exists(e, p) auf Unternehmenszertifikate in der benutzerdefinierten Zugriffsebene zugreifen:

device.certificates.exists(cert, predicate)

Im Beispiel ist cert eine Kennung, die in predicate verwendet wird und an das Gerätezertifikat gebunden ist. Das Makro exists() kombiniert die Prädikatsergebnisse pro Element mit dem Operator „or“ (||). Das bedeutet, dass Makros den Wert „true“ zurückgeben, wenn mindestens ein Zertifikat den Ausdruck predicate erfüllt.

Das Zertifikat hat die folgenden Attribute, die zusammen geprüft werden können. Bei Stringvergleichen wird die Groß-/Kleinschreibung beachtet.

Attribut Beschreibung Beispiel für einen Prädikatsausdruck (wobei cert eine Kennung von Makros ist)
is_valid „true“, wenn das Zertifikat gültig und nicht abgelaufen ist (boolescher Wert).

Prüft, ob das Zertifikat nicht abgelaufen ist und von einem vertrauenswürdigen Anker signiert wurde. Beachten Sie, dass die Endpunktprüfung nicht prüft, ob Zertifikate widerrufen wurden.

cert.is_valid
cert_fingerprint Fingerabdruck des Zertifikats (base64-codiertes, nicht aufgefülltes SHA256).

Der Fingerabdruck ist der nicht aufgefüllte base64-codierte SHA256-Digest im Binärformat des DER-verschlüsselten Zertifikats. Der String kann, wie nachfolgend gezeigt, mit OpenSSL aus dem Zertifikat im PEM-Format generiert werden:

$ 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 Fingerabdruck des Root-CA-Zertifikats, das zum Signieren des Zertifikats verwendet wird (base64-codiertes, nicht aufgefülltes SHA256).

Der Fingerabdruck ist der nicht aufgefüllte base64-codierte sha256-Digest (im Binärformat) des DER-verschlüsselten Zertifikats. Der String kann, wie nachfolgend gezeigt, mit OpenSSL aus dem Zertifikat im PEM-Format generiert werden:

$ 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 Ausstellername (vollständig erweiterte Namen).

So finden Sie den Ausstellernamen:

Führen Sie den folgenden Befehl für das Zertifikat aus:

$ 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

Um den Ausstellerstring für die Zugriffsebene abzurufen, kehren Sie die Ausgabe um und ersetzen Sie jeden Schrägstrich (/) durch ein Komma (,):

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 Name des Zertifikats (vollständig erweiterte Namen). cert.subject == "CA_SUB"
serial_number Seriennummer des Zertifikats (String). cert.serial_number == "SERIAL_NUMBER"
template_id Vorlagen-ID der Zertifikatsvorlage der X.509-Erweiterung für das Zertifikat (String). cert.template_id == "TEMPLATE_ID"

Die folgende Tabelle enthält Beispiele für Richtlinien, die Sie festlegen können:

Beispielrichtlinie Ausdruck
Das Gerät hat ein gültiges Zertifikat, das vom Root-Zertifikat des Unternehmens signiert wurde. device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
Das Gerät hat ein gültiges Zertifikat, das vom Aussteller CA_ABC ausgestellt wurde. 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")

Unternehmenszertifikate konfigurieren

Bevor Sie Unternehmenszertifikate konfigurieren, müssen Sie benutzerdefinierte Zugriffsebenen konfigurieren. Eine entsprechende Anleitung finden Sie hier.

Sie können eine benutzerdefinierte Zugriffsebene in Access Context Manager definieren, um die entsprechenden Richtlinien festzulegen. Benutzerdefinierte Zugriffsebenen verwenden boolesche Ausdrücke, die in einer Teilmenge der Common Expression Language (CEL) geschrieben sind, um die Attribute eines Clients zu testen, der eine Anfrage stellt.

Trust-Anker in die Admin-Konsole hochladen

Damit Chrome Enterprise Premium das Unternehmenszertifikat des Geräts erfassen und validieren kann, müssen Sie die Trust-Anchors und alle Zwischenzertifikate hochladen, die zum Ausstellen des Gerätezertifikats verwendet werden. Die Trust-Anker sind das selbst signierte Root-Zertifikat der Zertifizierungsstelle und die relevanten Zwischen- und untergeordneten Zertifikate. Führen Sie die folgenden Schritte aus, um die Trust-Anker hochzuladen:

  1. Rufen Sie die Admin-Konsole auf und gehen Sie zu Geräte > Netzwerke > Zertifikate.
  2. Wählen Sie die entsprechende Organisationseinheit aus.
  3. Wählen Sie Zertifikat hinzufügen aus.
  4. Geben Sie den Zertifikatsnamen ein.
  5. Laden Sie das Zertifikat hoch.
  6. Klicken Sie das Kästchen Endpunktprüfung an.
  7. Klicken Sie auf Hinzufügen.
  8. Achten Sie darauf, dass die Nutzer der Organisationseinheit angehören, für die Sie die Trust-Anchor hochgeladen haben.

Richtlinie „AutoSelectCertificateForUrls“ konfigurieren

Damit die Endpunktprüfung das Gerätezertifikat suchen und über Chrome erfassen kann, müssen Sie die Richtlinie AutoSelectCertificateForUrls konfigurieren. Führen Sie dazu die folgenden Schritte aus:

  1. Prüfen Sie, ob der Chrome-Browser über die Chrome-Verwaltung über die Cloud verwaltet wird.

  2. Fügen Sie in der Admin-Konsole die Richtlinie AutoSelectCertificateForUrls hinzu:

    1. Rufen Sie die Admin-Konsole auf und gehen Sie zu Geräte > Chrome > Einstellungen > Nutzer- und Browsereinstellungen > Clientzertifikate.
    2. Wählen Sie die entsprechende Organisationseinheit aus.
    3. Fügen Sie die Richtlinie AutoSelectCertificateForUrls hinzu, wie im folgenden Beispiel gezeigt:

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

      Ersetzen Sie CERTIFICATE_ISSUER_NAME durch den gemeinsamen Namen der Zertifizierungsstelle des Ausstellers. Ändern Sie den Wert von pattern nicht.

Führen Sie die folgenden Schritte aus, um die Richtlinienkonfiguration zu prüfen:

  1. Rufen Sie im Browser chrome://policy auf.
  2. Prüfen Sie den konfigurierten Wert für AutoSelectCertificateForUrls.
  3. Achten Sie darauf, dass der Wert für Gilt für auf Computer festgelegt ist. Unter ChromeOS gilt der Wert für den aktuellen Nutzer.
  4. Achten Sie darauf, dass der Status der Richtlinie nicht Konflikt lautet.

Nächste Schritte