Bedingungen für Unternehmenszertifikate konfigurieren

Ein Grundprinzip von BeyondCorp Enterprise lautet: „Der Zugriff auf Dienste wird basierend darauf gewährt, was wir über Sie und Ihr Gerät wissen.“ Die Zugriffsebene für einen einzelnen Nutzer oder ein einzelnes Gerät wird dynamisch abgeleitet, indem mehrere Datenquellen abgefragt werden. BeyondCorp Enterprise nutzt dieses Maß an Vertrauen als Teil seines Entscheidungsprozesses.

Access Context Manager ist die Zero-Trust-Richtlinien-Engine von BeyondCorp Enterprise. Mit Access Context Manager können Administratoren eine differenzierte, auf Attributen basierende Zugriffssteuerung für Anwendungen und Google Cloud-Ressourcen definieren.

Verwenden Sie Zugriffsebenen, um den Zugriff auf Ressourcen basierend auf Kontextinformationen über die Anfrage zuzulassen. Mithilfe von Zugriffsebenen können Sie damit beginnen, Vertrauensstufen zu organisieren. Sie können beispielsweise eine Zugriffsebene mit dem Namen High_Level erstellen, die Anfragen von einer kleinen Gruppe von Personen mit umfangreichen Berechtigungen zulässt. Sie können auch eine allgemeinere Gruppe festlegen, der Sie vertrauen möchten, z. B. einen IP-Bereich, 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 besteht darin, den Zugriff nur zuzulassen, wenn das Gerät verwaltet wird oder dem Unternehmen gehört. Es gibt viele Möglichkeiten festzustellen, ob ein Gerät unternehmenseigen ist. Eine Möglichkeit besteht darin zu ermitteln, ob auf dem Gerät ein gültiges, vom Unternehmen ausgestelltes Zertifikat vorhanden ist. Das Vorhandensein eines Unternehmenszertifikats auf einem Gerät kann darauf hinweisen, dass es sich um ein unternehmenseigenes Gerät handelt.

Unternehmenszertifikate für den kontextsensitiven Zugriff sind ein Feature der Gesamtlösung für den zertifikatbasierten BeyondCorp Enterprise-Zugriff. Diese Funktion nutzt Gerätezertifikate als alternatives kontextsensitives Signal, um festzustellen, ob ein Gerät ein unternehmenseigenes Asset ist. Diese Funktion wird ab Chrome-Browser 110 unterstützt.

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

device.certificates.exists(cert, predicate)

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

Das Zertifikat hat die folgenden Attribute, die zusammen überprüft werden können. Beachten Sie, dass bei Stringvergleichen zwischen Groß- und Kleinschreibung unterschieden wird.

Attribut Beschreibung Beispiel für einen Prädikatausdruck (wobei cert eine Kennung von Makros ist)
is_valid „True“, wenn das Zertifikat gültig und nicht abgelaufen ist (boolesch). cert.is_valid
cert_fingerprint Fingerabdruck des Zertifikats (durch Base64 nicht aufgefülltes SHA256).

Der Fingerabdruck ist der nicht aufgefüllte base64-codierte SHA256-Digest des DER-codierten Zertifikats im Binärformat. Sie können den String aus dem Zertifikat im PEM-Format folgendermaßen mit OpenSSL generieren:

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

cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint Fingerabdruck des Root-CA-Zertifikats, das zum Signieren des Zertifikats verwendet wird (base64-nicht aufgefülltes SHA256).

Der Fingerabdruck ist der nicht aufgefüllte base64-codierte SHA256-Digest des DER-codierten Zertifikats im Binärformat. Sie können den String aus dem Zertifikat im PEM-Format folgendermaßen mit OpenSSL generieren:

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

cert.root_ca_fingerprint == "the_fingerprint"
issuer Ausstellername (vollständig erweiterte Namen).

Den Ausstellernamen können Sie so ermitteln:

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

$ openssl x509 -in ca_1.crt -issuer issuer= /C=IN/ST=UP/L=NCR/O=BCEDemo/OU=BCEDemo_1/CN=inter_1/emailAddress=test_inter1@beyondcorp.in

Der in der Zugriffsebene verwendete Ausstellerstring ist die Umkehrung der Ausgabe und der Schrägstrich (/) wird durch ein Komma ersetzt. Beispiel:

EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN

cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN"
subject Name des Zertifikats (vollständig erweiterte Namen). cert.subject == "CA_SUB"
serial_number Seriennummer des Zertifikats (String). cert.serial_number = "123456789"
template_id Vorlagen-ID der Zertifikatsvorlage der X.509-Erweiterung für das Zertifikat (String). cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047"

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")
Gerät hat ein gültiges Zertifikat des Ausstellers CA_ABC. device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")

Unternehmenszertifikate konfigurieren

Bevor Sie Unternehmenszertifikate konfigurieren, müssen Sie benutzerdefinierte Zugriffsebenen konfiguriert haben. Eine Anleitung finden Sie unter Benutzerdefinierte Zugriffsebene erstellen.

Sie können in Access Context Manager eine benutzerdefinierte Definition der Zugriffsebene verwenden, 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-Anchors in der Admin-Konsole hochladen

Damit BeyondCorp Enterprise das Gerätezertifikat erfassen und validieren kann, müssen Sie die Trust Anchors hochladen, die zum Ausstellen des Gerätezertifikats verwendet werden. Die Trust-Anchors beziehen sich hier auf das selbst signierte Stammzertifikat der Zertifizierungsstelle und die relevanten Zwischen- und untergeordneten Zertifikate. So laden Sie die Vertrauensanker hoch:

  1. Gehen Sie in der Admin-Konsole zu Geräte > Netzwerke > Zertifikate.
  2. Wählen Sie die gewünschte Organisationseinheit aus.
  3. Wählen Sie Zertifikat hinzufügen aus.
  4. Geben Sie den Namen des Zertifikats 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 Nutzer zu der Organisationseinheit gehören, für die die Vertrauensanker hochgeladen werden.

Richtlinie „AutoSelectCertificateForUrls“ konfigurieren

Damit die Endpunktprüfung das Gerätezertifikat durchsuchen und über Chrome erfassen kann, müssen Sie die Chrome-Richtlinie „AutoSelectCertificateForURLs“ konfigurieren. Gehen Sie dazu so vor:

  1. Achten Sie darauf, dass der Chrome-Browser mit der Chrome-Verwaltung über die Cloud verwaltet wird.

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

    1. Gehen Sie in der Admin-Konsole zu Geräte > Chrome > Einstellungen > Nutzer- und Browsereinstellungen > Clientzertifikate.
    2. Wählen Sie die gewünschte 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 allgemeinen Namen der Stammzertifizierungsstelle. Ändern Sie nicht den Wert von pattern.

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

  1. Rufen Sie im Browser chrome://policy auf.
  2. Überprüfen Sie den konfigurierten Wert für AutoSelectCertificateForUrls.
  3. Der Wert der Richtlinie Gilt für muss auf Computer festgelegt sein. Im Chrome-Betriebssystem wird der Wert auf Aktueller Nutzer* angewendet.
  4. Achten Sie darauf, dass der Status für die Richtlinie keinen Konflikt hat.

Fehlerbehebung bei der Konfiguration

Prüfen Sie die Zertifikatsattribute auf der Seite mit den Gerätedetails, um sicherzustellen, dass die Zertifikatsattribute korrekt aufgeführt sind.

Mithilfe der Protokolle der Endpunktprüfung können Sie Probleme beheben. Führen Sie die folgenden Schritte aus, um die Logs für die Endpunktprüfung herunterzuladen:

  1. Klicken Sie mit der rechten Maustaste auf die Erweiterung „Endpunktprüfung“ und gehen Sie dann zu Optionen.
  2. Wählen Sie Logebene > Alle > Protokolle herunterladen aus.
  3. Stellen Sie eine Supportanfrage bei Cloud Customer Care und geben Sie die Logs für die weitere Fehlerbehebung frei.