Melding

Duet AI heet nu Gemini voor Google Workspace. Meer informatie

Toegang tot apps beheren op basis van gebruikers- en apparaatcontext

Voorbeelden van contextbewuste toegang voor de geavanceerde modus

In dit artikel ziet u 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

Gedeelte openen  |  Alles samenvouwen

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.

// Basis-MFA (geen SMS) vereisen op bedrijfsapparaten en beveiligingssleutel (hardware of software) vereisen op niet-bedrijfsapparaten
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
     )
  )
)

Voorbeelden van apparaten

Gedeelte openen  |  Alles samenvouwen en naar bovenkant gaan

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. Zie 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 om te gebruiken in de variabele predicate om te koppelen met het zakelijke certificaat van het apparaat. De macro exists() combineert resultaten per element voor predicaten 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. Vergelijkingen met tekenreeksen 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"
subject 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 zakelijke certificaat 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 Required_Secure_Device heeft.  

// Vereisen dat schrijfsleuteling en schermvergrendeling aanstaan 
// Geldt voor alle grote platforms (Windows, Mac, Linux, CrOS, iOS, Android)
// Dit is een basisniveau, alle andere niveaus 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,
// rapporten van beveiligingsgebeurtenissen moeten zijn geactiveerd en moet versie 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 Required_Managed_Chrome heet.

// Vereis beheerde Chrome (afhankelijk van toegangsniveau Require_Managed_Chrome)
// en vereis contentinspectie voor downloads en URL-controle geactiveerd
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. Het apparaat heeft een geldig zakelijk certificaat dat is uitgegeven door het bedrijf
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) (dit lijkt 2 weken na de issued at timestamp te zijn in de huidige versie)

Het toegangsniveau gebruikt het kenmerk device om te zorgen dat de CrowdStrike-gegevens up-to-date zijn. BeyondCorp Enterprise 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

BeyondCorp Enterprise werkt samen met veel BeyondCorp Alliance-ecosysteempartners om hun apparaatsignalen en -context te integreren in de BeyondCorp Enterprise-oplossing. Partners kunnen verschillende kenmerken delen met BeyondCorp. 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 BeyondCorp Enterprise 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).

// Controleren of een of meer BCA-partners aangeven dat het apparaat voldoet aan het beleid
["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 een veilige versie van Android gebruiken.

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 voldoen aan CTS-nalevingscontroles

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 toegang tot apparaten met mogelijk schadelijke apps te weigeren. Deze apps worden vaak malware genoemd. Ga naar Potentieel schadelijke apps (PHA's) voor meer informatie.

// Toegang weigeren tot apparaten die mogelijk schadelijke apps bevatten android_device_security.has_Polyly_harmful_apps != true

Voorbeelden van toegang op basis van tijd

Gedeelte openen  |  Alles samenvouwen en naar bovenkant gaan

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.

// Ploeg 1: maandag t/m vrijdag, 0:00 uur tot 8:00 uur
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')


// Ploeg 2: maandag t/m vrijdag, 8:00 uur tot 16:00 uur
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')


// Ploeg 3: maandag t/m vrijdag, 16:00 uur tot 0:00 uur
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:00: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”
// De eindtijd is exclusief. In het bovenstaande voorbeeld zijn er dus mogelijk 2 seconden 
// waarin de gebruikers 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.naam_toegangsniveau_1 && levels.naam_toegangsniveau_2

 

Was dit nuttig?

Hoe kunnen we dit verbeteren?
Zoeken
Zoekopdracht wissen
Zoekfunctie sluiten
Hoofdmenu
17774405669098715135
true
Zoeken in het Helpcentrum
true
true
true
true
true
73010
false
false