Voorbeelden van contextbewuste toegang voor de geavanceerde modus

Deze functie wordt ondersteund in de volgende versies: Frontline Standard, Frontline Plus, Enterprise Standard, Enterprise Plus, Education Standard, Education Plus en Chrome Enterprise Premium. Versies vergelijken

Dit artikel beschrijft toepassingen voor contextbewuste toegang, inclusief beleid waarin aangepaste toegangsniveaus worden gebruikt. In deze voorbeelden maakt u aangepaste toegangsniveaus in de geavanceerde modus met Common Expressions Language (CEL).

Als u wilt, kunt u ook functies en macro's gebruiken als u aangepaste toegangsniveaus maakt met CEL-expressies.

Zie Voorbeelden van contextbewuste toegang voor de basismodus voor voorbeelden van toegangsniveaus die zijn gemaakt in de basismodus (met de interface voor contextbewuste toegang).

Verificatievoorbeelden

Toegang voor gebruikers toestaan op basis van de sterkte van de inloggegevens van de gebruiker

Als u de toegang tot apps met gevoelige gegevens beter wilt beveiligen, kunt u bepalen hoe gebruikers hun identiteit moeten bevestigen in het systeem om toegang te krijgen tot de apps.

U kunt bijvoorbeeld instellen dat gebruikers die zijn ingelogd met alleen een wachtwoord, alleen toegang hebben tot apps die geen gevoelige informatie bevatten, terwijl gebruikers die inloggen met een hardwarebeveiligingssleutel als 2e factor toegang hebben tot de meest gevoelige bedrijfsapps.

Dit toegangsniveau gebruikt request.auth-kenmerken om te verifiëren of gebruikers inloggen met zowel een wachtwoord als een hardwaresleutel voor verificatie in 2 stappen en dus toegang hebben tot gevoelige apps.

request.auth.claims.crd_str.pwd == true && request.auth.claims.crd_str.hwk == true

Toegang geven aan gebruikers met sterke verificatiegegevens

Beheerders willen de toegang tot bedrijfsbronnen vaak pas afdwingen nadat een gebruiker is geverifieerd met sterke inloggegevens. In het volgende voorbeeld worden de kenmerken levels en request.auth als volgt gebruikt:

  • Als gebruikers een bedrijfsapparaat gebruiken, is elke MFA-methode (met uitzondering van sms) voldoende (ze kunnen een pushmelding, een hardware- of softwarebeveiligingssleutel of een eenmalig wachtwoord gebruiken).
  • Als gebruikers geen bedrijfsapparaat gebruiken, moeten ze een hardware- of softwarebeveiligingssleutel gebruiken.

// Require basic MFA (not SMS) on corporate devices and security key (hardware or software) if not
levels.Require_Secure_Device &&
(
(
levels.Require_Corporate_Device &&
request.auth.claims.crd_str.mfa &&
!request.auth.claims.crd_str.sms
) ||
(
!levels.Require_Corporate_Device &&
(
request.auth.claims.crd_str.hwk || request.auth.claims.crd_str.swk
)
)
)

Toegang tot apps alleen toestaan via DBSC-sessies

Beperkt tot web-apps op desktops en niet van toepassing op mobiele apps of API's

U kunt de beveiliging van de toegang tot apps die gevoelige gegevens bevatten, verbeteren door inloggegevens voor apparaatgebonden sessies (Device Bound Session Credentials, DBSC) te vereisen. DBSC bindt de sessie van gebruikers aan hun apparaat wanneer ze de Chrome-browser in Windows gebruiken. Hierdoor kan het risico op sessiekaping aanzienlijk afnemen.

Dit toegangsniveau gebruikt het kenmerk request.auth om te verifiëren of de sessies van een gebruiker zijn gekoppeld aan een specifiek apparaat. Als dit het geval is, wordt toegang verleend tot de app. Als dit niet het geval is (wat betekent dat de sessie niet aan DBSC is gebonden), wordt de toegang geweigerd.

Zorg dat gebruikersaccounts waaraan dit toegangsniveau is toegewezen, voldoen aan de vereisten om toegangsproblemen te voorkomen. Ga naar Vereisten voor het gebruik van DBSC voor meer informatie.

Stel het toegangsniveau in op Controlemodus voordat u de actieve modus aanzet. In de controlemodus kunt u de impact van de handhaving van het toegangsniveau testen zonder de gebruikerstoegang te verstoren.

Gebruik deze CEL-expressie om het aangepaste toegangsniveau te maken:

request.auth.sessionBoundToDevice(origin) == true

Gebruik deze CEL-expressie om DBSC alleen af te dwingen op Windows-apparaten met Chrome-browserversie 136 of hoger:

!(device.os_type == OsType.DESKTOP_WINDOWS && device.chrome.versionAtLeast("136.0.0")) || request.auth.sessionBoundToDevice(origin) == true

Voorbeelden van apparaten

Toegang via een apparaat toestaan op basis van signalen van een BeyondCorp Alliance-partner

U kunt apparaatsignalen gebruiken die zijn gemeld door een BeyondCorp Alliance-partner. In dit voorbeeld wordt Lookout Software gebruikt als de app.

Dit toegangsniveau gebruikt het kenmerk device om te controleren of het apparaat waarmee Google Workspace wordt gebruikt, volgens Lookout voldoet aan het beleid en of het de score Zeer goed heeft.

device.vendors["Lookout"].is_compliant_device == true && device.vendors["Lookout"].device_health_score == DeviceHealthScore.VERY_GOOD

Alleen toegang vanuit een beheerde Chrome-browser met de nieuwste updates toestaan

Dit toegangsniveau gebruikt het kenmerk device om te controleren of gebruikers de nieuwste versie van een beheerde Chrome-browser gebruiken. Toegang wordt alleen toegestaan via zo'n browser.

device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_BROWSER_MANAGED && device.chrome.versionAtLeast("94.0.4606.81")

Toegang met een zakelijk certificaat toestaan

U kunt zakelijke certificaten voor apparaten gebruiken in aangepaste toegangsniveaus om te bepalen of een apparaat eigendom is van het bedrijf. Dit toegangsniveau gebruikt het kenmerk device voor de verificatie van items. Ga naar Configuring enterprise certificate conditions (Voorwaarden voor zakelijke certificaten instellen) voor meer informatie en voorbeelden.

Een apparaat kan meerdere certificaten hebben. Zakelijke certificaten worden in een aangepast toegangsniveau gebruikt met de macro exists(). Voorbeeld:

device.certificates.exists(cert, predicate)

In dit voorbeeld is cert een eenvoudige ID die je in de variabele predicate kunt gebruiken om te binden aan het zakelijke certificaat van het apparaat. De macro exists() combineert predicaatresultaten per element met de operator or (||). Macro's retourneren true als minstens één certificaat voldoet aan de predicaatexpressie.

In de tabel hieronder ziet u welke kenmerken u kunt gebruiken om CEL-expressies te maken voor gebruik in aangepaste toegangsniveaus. Tekenreeksvergelijkingen zijn hoofdlettergevoelig.

Kenmerk Beschrijving Voorbeeld van
predicaatexpressie
(waarbij cert een
ID is van macro's)
is_valid

True als het certificaat geldig is en niet is verlopen.
(Booleaans)

cert.is_valid
cert_fingerprint Vingerafdruk van het certificaat
(base64 unpadded SHA256)
cert.cert_fingerprint == origin.
clientCertFingerprint()
root_ca_fingerprint Vingerafdruk van het root-CA-certificaat dat is gebruikt om dit certificaat te ondertekenen
(base64 unpadded SHA256)
cert.root_ca_fingerprint == "the_fingerprint"
issuer

Naam van uitgever
(volledig uitgevouwen namen)

Voer de volgende opdracht uit voor het certificaat om de naam van de uitgever te vinden:

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

De tekenreeks van de uitgever die wordt gebruikt in het toegangsniveau is het omgekeerde van de uitvoer. Ook wordt de / vervangen door een komma. Voorbeeld:

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"
onderwerp Onderwerpnaam van het certificaat
(volledig uitgevouwen namen)
cert.subject == "CA_SUB"
serial_number

Serienummer van het certificaat
(tekenreeks)

cert.serial_number == "123456789"
template_id Template-ID van certificaattemplate van X.509-extensie voor het certificaat
(tekenreeks)
cert.template_id == "1.3.6.1.4.1.311.21.
8.15608621.11768144.
5720724.
16068415.6889630.81.
2472537.7784047"

Voorbeelden van veelgebruikte beleidsregels:

Controleren of het apparaat een geldig zakelijk certificaat heeft dat is ondertekend door het rootcertificaat van het bedrijf

device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")

De uitgever van het bedrijfscertificaat op het apparaat valideren

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")

Toegang geven aan apparaten waarop schijfversleuteling en schermvergrendeling aanstaan

In dit voorbeeld wordt het kenmerk device gebruikt om te vereisen dat de schijfversleuteling en schermvergrendeling worden aangezet. Daarnaast moet het apparaat worden goedgekeurd door beheerders.

Standaard worden alle apparaten goedgekeurd die door eindpuntverificatie zijn gemaakt. Er kunnen echter gevallen zijn waarin u een apparaat wilt blokkeren, zoals wanneer het is kwijtgeraakt. U wilt dan niet dat het toegang heeft tot de bedrijfsbronnen.

Voor andere voorbeelden van toegangsniveaus in dit document gaan we ervan uit dat dit toegangsniveau de naam Require_Secure_Device heeft.

// Schijfversleuteling en schermvergrendeling vereisen
// Dit is van toepassing op alle grote platforms (Windows, Mac, Linux, CrOS, iOS, Android)
// Dit is een basisvereiste en alle andere toegangsniveaus moeten hiervan afhankelijk zijn
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED &&
device.is_secured_with_screenlock &&
device.is_admin_approved_device

Toegang geven voor apparaten die de Chrome-browser gebruiken met basisbeveiligingsvereisten

In dit voorbeeld gebruikt het toegangsniveau het kenmerk device om te vereisen dat de Chrome-browser met basisbeveiligingsvereisten wordt gebruikt.

// Vereisen dat Chrome wordt beheerd op profiel- of browserniveau,
// rapportage van beveiligingsgebeurtenissen moet aanstaan en de versie moet 97 of hoger zijn
levels.Require_Secure_Device &&
(
device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_BROWSER_MANAGED ||
device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
) &&
device.chrome.is_security_event_analysis_enabled &&
device.chrome.versionAtLeast("97")

Toegang geven voor apparaten die de Chrome-browser gebruiken met beveiligingsvereisten

In dit voorbeeld wordt het kenmerk device gebruikt om te vereisen dat de gebruiker een beheerde Chrome-browser of -profiel gebruikt en dat in Chrome connectors voor bedreigingen en gegevensbescherming aanstaan. In dit voorbeeld wordt het kenmerk levels gebruikt om te verwijzen naar het eerder beschreven toegangsniveau Require Managed Chrome. In het volgende voorbeeld wordt ervan uitgegaan dat het afhankelijke toegangsniveau Require_Managed_Chrome heet.

// Require managed chrome (dependent on "Require_Managed_Chrome" access level)
// and require content inspection for downloads as well as URL check enabled
levels.Require_Managed_Chrome &&
device.chrome.is_file_download_analysis_enabled &&
device.chrome.is_realtime_url_check_enabled

Toegang geven voor apparaten die eigendom zijn van het bedrijf

Een vereiste voor het beheer van toegang is alleen toegang toestaan als het apparaat wordt beheerd door het bedrijf of eigendom is van het bedrijf. Er zijn veel manieren om te bepalen of een apparaat eigendom is van het bedrijf of wordt beheerd door het bedrijf, zoals:

  • Controleren of een apparaat een serienummer heeft dat overeenkomt met een serienummer in het inventarisbeheersysteem van het bedrijf
  • Controleren of een apparaat een geldig zakelijk certificaat heeft dat is uitgegeven door het bedrijf

U kunt deze 2 manieren gebruiken in het volgende aangepaste toegangsniveau dat de kenmerken levels en device gebruikt om te bepalen of een apparaat eigendom is van het bedrijf of wordt beheerd door het bedrijf.

// Het apparaat is een bedrijfsapparaat als aan een van de volgende voorwaarden wordt voldaan:
// 1. Het serienummer komt overeen met het nummer dat is geüpload door de beheerder
// 2. Als het apparaat een geldig, door het bedrijf uitgegeven certificaat heeft
levels.Require_Secure_Device &&
(
device.is_corp_owned_device ||
device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "SOME_ROOT_CA_FINGERPRINT")
)

De vingerafdruk is de unpadded base64-gecodeerde SHA256-digest (in binaire indeling) van het DER-gecodeerde certificaat. De tekenreeks kan worden gemaakt op basis van het certificaat in PEM-indeling met de volgende procedure met openssl:

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

Alleen toegang toestaan als de apparaatgegevens van CrowdStrike nieuw zijn

Er zijn 2 tijdstempels die CrowdStrike uitgeeft als onderdeel van de Falcon Zero Trust Assessments-score (ZTA):
  • Issued at timestamp (iat)
  • Expiry timestamp (exp)

Het toegangsniveau gebruikt het kenmerk device om te controleren of de CrowdStrike-gegevens up-to-date zijn. Chrome Enterprise Premium heeft een ingebouwde vertraging van 90 minuten voor het consumeren van nieuwe beoordelingen van Falcon ZTA. We raden u dus af een duur van minder dan een uur te gebruiken.

// Controleren of wordt voldaan aan een van deze voorwaarden voor gegevens van CrowdStrike:
// Moet voldoen aan een van deze voorwaarden
// 1. Apparaat is in de afgelopen dag beoordeeld
// 2. Beoordeling is niet verlopen (2 weken sinds laatste iat)
"CrowdStrike" in device.vendors && (
request.time - timestamp(device.vendors["CrowdStrike"].data["iat"]) < duration("1d") ||
timestamp(device.vendors["CrowdStrike"].data["exp"]) - request.time > duration("0m")
)

Toegang geven als BeyondCorp Alliance aangeeft dat een apparaat voldoet aan het beleid

Chrome Enterprise Premium werkt samen met veel BeyondCorp Alliance-ecosysteempartners om hun apparaatsignalen en -context te integreren in de Chrome Enterprise Premium-oplossing. Partners kunnen verschillende kenmerken delen met Chrome Enterprise Premium. Een daarvan is het kenmerk is_compliant_device. In het volgende voorbeeld wordt het kenmerk device gebruikt om te controleren of een of meer van de BeyondCorp Alliance-partners zijn geïntegreerd met Chrome Enterprise Premium en aangeven dat het apparaat voldoet aan het beleid.

De macro exists breidt de expressie uit voor elke BeyondCorp Alliance-partner met de operator || (of).

// Check to see if any of the BCA partners consider the device to be compliant
["CrowdStrike", "Tanium", "PANW", "Check Point", "Lookout"].exists(
v, v in device.vendors && device.vendors[v].is_compliant_device
)

Toegang geven als de Android Verified Boot-status groen is

In dit voorbeeld worden device-kenmerken gebruikt om te zorgen dat apparaten met een beveiligde versie van Android werken.

Verified Boot controleert of uitgevoerde code afkomstig is van een vertrouwde bron (meestal de OEM van het apparaat) in plaats van een aanvaller of corruptie. Ga naar Verified Boot voor meer informatie.

// Groene Android Verified Boot-opstartstatus vereisen
device.android_device_security.verified_boot == true

Toegang geven voor apparaten die de CTS-nalevingscontroles doorstaan

In dit voorbeeld worden device-kenmerken gebruikt om te vereisen dat apparaten de Compatibility Test Suite (CTS)-compatibiliteitstests doorstaan. Ga naar Compatibility Test Suite voor meer informatie.

// Vereisen dat apparaten de CTS-nalevingscontroles doorstaan
device.android_device_security.cts_profile_match == true

Toegang geven voor apparaten waarop Google Play Protect Apps verifiëren is aangezet

In dit voorbeeld worden device-kenmerken gebruikt om te vereisen dat apparaten Google Play Protect Apps verifiëren hebben aangezet.

Met Apps verifiëren worden apps gescand op beveiligingsrisico's wanneer deze worden geïnstalleerd via andere bronnen dan Google Play. Apparaten worden ook regelmatig gescand op potentieel schadelijke apps. Apps verifiëren staat standaard aan. Voor apparaten met geavanceerd beheer kunt u bepalen of gebruikers deze instelling kunnen uitzetten. Ga naar Instellingen toepassen op mobiele Android-apparaten voor meer informatie.

// Vereisen dat Google Play Protect Apps verifiëren aan staat
device.android_device_security.verify_apps_enabled == true

Toegang tot apparaten met potentieel schadelijke apps weigeren

In dit voorbeeld worden device-kenmerken gebruikt om de toegang te weigeren voor apparaten waarop potentieel schadelijke apps staan. Deze apps worden vaak malware genoemd. Ga naar Potentieel schadelijke apps (PHA's) voor meer informatie.

// Toegang weigeren tot apparaten die potentieel schadelijke apps bevatten android_device_security.has_potentially_harmful_apps != true

Voorbeelden van toegang op basis van tijd

Werknemers die in ploegendienst werken alleen tijdens hun werktijden toegang geven

Sommige bedrijven willen dat mensen die in ploegendienst werken alleen tijdens hun werktijden toegang hebben tot bedrijfsbronnen. Voor de volgende toegangsniveaus wordt het kenmerk levels gebruikt om 3 ploegen op te geven van maandag tot en met vrijdag.

// Shift 1 - Monday to Friday, midnight to 8am
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").between('00:00:00', '08:00:00')


// Shift 2 - Monday to Friday, 8am to 4pm
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").between('08:00:00', '16:00:00')


// Shift 3 - Monday to Friday, 4pm to midnight
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").between('16:00:00', '00:00:00')


// Werknemers die in ploegendienst werken toegang geven tot bronnen van maandag t/m vrijdag tussen 9:00 uur en 17:00 uur, behalve op 4 juli.
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
!(
request.time.getMonth("America/Los_Angeles") == 6 &&
request.time.getDayOfMonth("America/Los_Angeles") == 3
) &&
request.time.timeOfDay("America/Los_Angeles").between('09:30:00', '17:00:00')

Tijdelijke toegang toestaan

Bedrijven willen soms toegang geven tijdens noodgevallen als de beheerder geen toegang heeft tot een beveiligd apparaat, maar toch tijdelijk noodtoegang nodig heeft.

Maak in dit geval een op tijd en locatie beperkt toegangsniveau met het kenmerk levels en wijs het toe aan de specifieke beheerder. Als dit toegangsniveau is toegewezen, is het alleen geldig tijdens de opgegeven tijd. Nadat deze periode voorbij is, valt beheerderstoegang weer onder de bestaande vereisten.

// Tijdelijk toegang tot resources toestaan op 1 maart 2022 tussen 22:00 uur en 0:00 uur
// en de toegang moet binnen de regio VS zijn.
levels.Require_Secure_Device &&
request.time.between('2022-03-01T23:00:00+08:00', '2022-03-02T23:59:59+08:00') &&
origin.region_code == "US"
// Houd er rekening mee dat de eindtijd exclusief is, dus de bovenstaande heeft mogelijk 2 seconden dat
// de gebruikers misschien geen toegang hebben. U kunt ook deze waarde gebruiken:
// !between('00:00:01','16:00:00')

Voorbeeld van voorwaarden van 2 toegangsniveaus combineren

Een nieuw toegangsniveau instellen door de voorwaarden van 2 toegangsniveaus te combineren

Dit toegangsniveau gebruikt levels-kenmerken en vereist dat gebruikers voldoen aan de gecombineerde voorwaarden van 2 toegangsniveaus. In dit voorbeeld verwijzen naam_toegangsniveau_1 en naam_toegangsniveau_2 naar Internal Name.

levels.access_level_name_1 && levels.access_level_name_2


Google, Google Workspace en gerelateerde merken en logo's zijn handelsmerken van Google LLC. Alle andere bedrijfs- en productnamen zijn handelsmerken van de bedrijven waarmee ze in verband worden gebracht.