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_GOODAlleen 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. |
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 Voer de volgende opdracht uit voor het certificaat om de naam van de uitgever te vinden: $ openssl x509 -in ca_1.crt -noout 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 |
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
- 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.