Avisering

Duet AI heter nu Gemini for Google Workspace. Läs mer

Kontrollera åtkomst till appar baserat på användar- och enhetssammanhang

Exempel på kontextkänslig åtkomst för avancerat läge

I den här artikeln beskrivs användningstillfällen för kontextkänslig åtkomst, däribland policyer med anpassade åtkomstnivåer.  I dessa exempel skapar du anpassade åtkomstnivåer i avancerat läge med hjälp av CEL (Common Expressions Language).

Om du vill så kan du även använda funktioner och makron när du skapar anpassade åtkomstnivåer med CEL-uttryck.

Exempel på åtkomstnivåer som har utvecklats i grundläggande läge (med gränssnittet för kontextkänslig åtkomst) finns i Exempel på kontextkänslig åtkomst för grundläggande läge.

Autentiseringsexempel

Öppna avsnitt  |  Komprimera alla

Tillåt användaråtkomst baserat hur starka användarens inloggningsuppgifter är

Du kan förbättra säkerheten för åtkomst till appar som innehåller känsliga uppgifter genom att fastställa hur användaren autentiserade sig i systemet för att avgöra om hen får åtkomst till appen.

Exempelvis får användare som har loggat in enbart med ett lösenord endast åtkomst till appar som inte innehåller känslig information, medan en användare som är inloggad med en maskinvarusäkerhetsnyckel som en andra faktor kan få åtkomst till de känsligaste företagsapparna.

Denna åtkomstnivå använder attributen request.auth för att verifiera att användarna loggar in med både ett lösenord och en maskinvarunyckel för tvåstegsverifiering och kan komma åt känsliga appar.

request.auth.claims.crd_str.pwd == true && request.auth.claims.crd_str.hwk == true
Tillåta åtkomst till användare med starka autentiseringsuppgifter

Ofta vill administratörer ha åtkomst till företagsresurser efter att användaren har autentiserats med starka användaruppgifter. Följande exempel använder attributen levels och request.auth enligt följande: 

  • Om en användare kommer från en företagsenhet kan alla metoder för flerfaktorsautentisering, förutom sms, (pushmeddelanden, maskinvaru- eller programvarusäkerhetsnyckel eller engångslösenord kan användas)
  • Om en användare har en enhet som inte är en företagsenhet måste en säkerhetsnyckel eller en programvarusäkerhetsnyckel användas

// Kräv grundläggande flerfaktorsautentisering (inte sms) på företagsenheter och säkerhetsnyckel (maskinvara eller programvara) om inte
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
     )
  )
)

Enhetsexempel

Öppna avsnitt  |  Komprimera alla och gå högst upp

Tillåt åtkomst från en enhet baserat på signaler som rapporteras av en BeyondCorp Alliance-partner

Du kan använda enhetssignaler som har rapporterats av en BeyondCorp Alliance-partner. I det här exemplet används Lookouts programvara som app.

Denna åtkomstnivå använder attributet device för att verifiera att enheten som används för åtkomst till Google Workspace rapporteras som policykompatibel av Lookout och statusen är Mycket bra.

device.vendors["Lookout"].is_compliant_device == true && device.vendors["Lookout"].device_health_score == DeviceHealthScore.VERY_GOOD
Tillåt bara åtkomst från en hanterad Chrome-webbläsare med de senaste uppdateringarna

Denna åtkomstnivå använder attributet enhet för att verifiera att användarna använder den senaste versionen av en hanterad Chrome-webbläsare och tillåter enbart åtkomst via en sådan webbläsare.

device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_BROWSER_MANAGED && device.chrome.versionAtLeast("94.0.4606.81") 
Tillåt åtkomst med ett företagscertifikat

Du kan använda företagscertifikat för enheter på anpassade åtkomstnivåer för att avgöra om en enhet är en företagsägd tillgång. Denna åtkomstnivå använder attributet enhet för tillgångsverifieringen. Mer information och fler exempel finns i Konfigurera villkor för företagscertifikat.

En enhet kan ha fler än ett certifikat. Företagscertifikat används på anpassad åtkomstnivå med makrot exists(). Exempel:

device.certificates.exists(cert, predicate)

I det här exemplet är cert en enkel identifierare som används i variabeln predicate för bindning till enhetens företagscertifikat. Makrot exists() kombinerar predicate-resultat per element med operatorn or (||). Makron returnerar true om minst ett certifikat uppfyller predicate-uttrycket.

I tabellen nedan listas attribut som du kan använda för att skapa CEL-uttryck som ska användas med anpassade åtkomstnivåer.  Observera att strängjämförelser är skiftlägeskänsliga.

Attribut Beskrivning Exempel på predicate-
uttryck
(där cert är en
identifierare för makron)
is_valid

Har värdet True om certifikatet är giltigt och inte har upphört att gälla.
(boolesk)

cert.is_valid
cert_fingerprint Fingeravtryck för certifikatet
(base64 unpadded SHA256)
cert.cert_fingerprint == origin.
clientCertFingerprint()
root_ca_fingerprint Fingeravtryck för rotcertifikatutfärdare som används för att signera certifikatet
(base64 unpadded SHA256)
cert.root_ca_fingerprint == "the_fingerprint"
issuer

Utfärdarens namn
(fullständigt namn)

Du hittar utfärdarens namn genom att köra följande kommando på certifikatet:

$ 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

Utfärdarsträngen som används på åtkomstnivån är motsatsen till utdata och / ersätts med ett kommatecken, till exempel:

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"
ämne Certifikatets ämnesnamn
(fullständigt namn)
cert.subject == "CA_SUB"
serial_number

Certifikatets serienummer
(sträng)

cert.serial_number == “123456789”
template_id Mall-id för X.509-tillägget CertificateTemplate för certifikatet
(sträng)
cert.template_id = "1.3.6.1.4.1.311.21.
8.15608621.11768144.
5720724.
16068415.6889630.81.
2472537.7784047"

Exempel på vanliga policyer:

Verifiera att enheten har ett giltigt företagscertifikat signerat av företagets rotcertifikat

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

Validera utfärdaren av företagscertifikatet på enheten

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

Tillåt åtkomst till enheter med diskkryptering och skärmlås aktiverat

I det här exemplet används device-attributet för att kräva att både diskkryptering och skärmlås aktiveras. Dessutom måste enheten godkännas av administratörer.

Som standard är alla enheter som har skapats med ändpunktsverifiering godkända. Det finns dock fall där du kanske vill blockera en enhet, till exempel när en enhet kommer bort. I dessa fall vill du inte att enheterna ska ha åtkomst till företagets resurser.

För andra exempel på åtkomstnivåer i det här dokumentet utgår vi från att åtkomstnivån har namnet Require_Secure_Device.  

// Kräv diskkryptering och skärmlås aktiverat
// Detta gäller alla huvudplattformar (Windows, Mac, Linux, CrOS, iOS, Android)
// Detta är grunden och den är beroende av alla andra åtkomstnivåer
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED &&
device.is_secured_with_screenlock &&
device.is_admin_approvals_device

Tillåt åtkomst till enheter med webbläsaren Chrome med grundläggande säkerhetskrav

I det här exemplet använder åtkomstnivån attributet enhet för att kräva webbläsaren Chrome med grundläggande säkerhetskrav.

// Kräv att Chrome hanteras på profil- eller webbläsarnivå, måste ha
// rapportering av säkerhetshändelser aktiverad och måste vara version 97 eller senare
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")

Tillåta åtkomst till enheter med webbläsaren Chrome med säkerhetskrav

I det här exemplet används attributet enhet för att kräva att användaren kommer från en hanterad webbläsare eller profil i Chrome och att Chrome har aktiverat hot- och dataskyddsanslutare. I exemplet används attributet nivåer för att hänvisa till den tidigare beskrivna åtkomstnivån Kräv hanterad Chrome. Följande exempel förutsätter att den beroende åtkomstnivån heter Require_Managed_Chrome

// Kräv hanterad Chrome (beroende av åtkomstnivån ”Require_Hanterad_Chrome”)
// och kräv innehållsgranskning för nedladdningar samt aktiverad granskning av webbadresser
evels.Require_Managed_Chrome &&
device.chrome.is_file_download_analysis_enabled &&
device.chrome.is_realtime_url_check_enabled

Tillåt åtkomst till företagsägda enheter

Ett krav för att kontrollera åtkomsten är att bara tillåta åtkomst när enheten hanteras eller ägs av företaget. Det finns många sätt att avgöra om en enhet är företagsägd eller hanterad. Här är några exempel:

  • Om en enhet har ett serienummer som matchar ett som finns i företagets system för tillgångshantering
  • Om enheten har ett giltigt företagscertifikat som har utfärdats av företaget

Dessa två tillvägagångssätt kan användas på följande anpassade åtkomstnivå som använder levels- och device-attribut för att avgöra om enheten är företagsägd eller hanterad.

// Enheten tillhör ett företag om något av följande villkor är uppfyllda:
// 1. Om serienumret matchar det administratören har laddat upp
// 2. Om enheten har ett giltigt företagsutfärdat certifikat
levels.Require_Secure_Device &&
(
device.is_corp_owned_device ||
enhet.certifikat.exists(cert, cert.is_giltig && cert.root_ca_fingerprint == "SOME_ROOT_CA_FINGERPRINT")
)

Fingeravtrycket är det base64-kodade (unpadded) sha256-kondensatet(i binärt format) av det DER-kodade certifikatet. Strängen kan genereras från certifikatet i PEM-format via följande procedur med openssl:

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

Tillåt enbart åtkomst när enhetsdata från CrowdStrike har uppdaterats
Det finns två tidsstämplar som CrowdStrike utfärdar som en del av Falcon Zero Trust Assessments-poängen (ZTA):
  • Tidsstämpel för utfärdande (iat) 
  • Tidsstämpel för utgång (exp) (vilket verkar vara två veckor från tidsstämpeln för utfärdande i den nuvarande versionen)

Åtkomstnivån använder attributet enhet för att säkerställa att CrowdStrike-data är uppdaterad. Observera att BeyondCorp Enterprise har en fördröjning på 90 minuter för att använda nya bedömningar från Falcon ZTA. Därför bör du inte använda varaktigheter under en timme. 

// Kontrollera att ett av dessa villkor gäller för data från Crowdstrike:
// Måste uppfylla ett av dessa villkor
// 1. Enheten utvärderades under det senaste dygnet
// 2. Utvärderingen har inte upphört att gälla (två veckor sedan senaste 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")
)

Tillåt åtkomst när BeyondCorp Alliance anser att en enhet är kompatibel

BeyondCorp Enterprise samarbetar med många ekosystempartner från BeyondCorp Alliance för att integrera enhetssignaler och kontext i BeyondCorp Enterprise-lösningen. Partner kan dela valfritt antal attribut med BeyondCorp och ett av dem är attributet is_compliance_device. I följande exempel används device-attributet för att visa hur vi kan kontrollera om någon BeyondCorp Alliance-partner har integrerat med BeyondCorp Enterprise och anser att enheten är kompatibel.

Makrot exists utökar uttrycket för varje BeyondCorp Alliance-partner med en ||-operator (eller).

// Kontrollera om någon av BCA-partner anser att enheten är kompatibel
["CrowdStrike", "Tanium", "PANW", "Check Point", "Lookout"].exists(
v, v i device.vendors && device.vendors[v].is_compatible_device
)

Tillåt åtkomst när status för verifierad Android-uppstart är grön

I det här exemplet används attributet device för att se till att enheterna kör en säker version av Android.

Verifierad uppstart kontrollerar att körd kod kommer från en betrodd källa (vanligen OEM-tillverkare), och inte från en angripare eller från förvanskning. Mer information finns i Verifierad uppstart.

// Kräv grön status för verifierad Android-uppstart
device.android_device_security.verified_boot == true

Tillåt åtkomst till enheter som uppfyller CTS-efterlevnadskontroller

I det här exemplet används attributet device för att kräva att enheter godkänns i CTS-efterlevnadskontroller. Mer information finns i kompatibilitetstestsviten.

// Kräv att enheterna godkänns för CTS-efterlevnadskontroller
device.android_device_security.cts_profile_match == true

Tillåta åtkomst till enheter där Verifiera appar har aktiverats i Google Play Protect

I det här exemplet används device-attribut för att kräva att Verifiera appar för Google Play Protect har aktiverats.

Verifiera appar söker igenom appar efter hot när de är installerade från andra källor än Google Play. Här görs även regelbunden genomsökningar av enheter efter appar som kan vara skadliga. Funktionen Verifiera appar är aktiverad som standard. För enheter med avancerad hantering kan du ange om användarna kan inaktivera funktionen. Mer information finns i Tillämpa inställningar för Android-mobilenheter.

// Kräv att Verifiera appar i Google Play Protect har aktiverats för enheter
device.android_device_security.verify_apps_enabled == true

Tillåt inte åtkomst till enheter som kan ha skadliga appar

I det här exemplet används device-attribut för att neka åtkomst till enheter som kan ha skadliga appar. Sådana appar kallas ofta skadlig programvara. Mer information finns i Potentiellt skadliga appar.

// Neka åtkomst till enheter som kan ha skadliga appar android_device_security.has_potentially_harmful_apps != true

Exempel på tidsbaserad åtkomst

Öppna avsnitt  |  Komprimera alla och gå högst upp

Tillåt enbart skiftarbetare åtkomst under arbetstid

Företag vill se till att deras skiftarbetare bara kan få åtkomst till företagets resurser under arbetstid. Följande åtkomstnivåer använder nivåer-attributet för att definiera tre skift under måndag till fredag.

// Skift 1 – måndag till fredag, midnatt till kl. 8.00
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”).


// Skift 2 – måndag till fredag, kl. 8.00–16.00
levels.Required_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”)


// Skift 3 – måndag till fredag, kl. 16.00 till midnatt
levels.Required_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')


// Ge skiftarbetare åtkomst till resurser från måndag till fredag mellan kl. 9.00 och 17.00 förutom fjärde 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')

Tillåt tillfällig åtkomst

Det kan hända att företag vill tillåta åtkomst i nödsituationer när administratören inte har åtkomst till en säker enhet men behöver nödåtkomst under kort tid. 

I det här fallet skapar du en tid- och platsbegränsad åtkomstnivå med hjälp av levels-attributet och tilldelar den specifika administratören nivån. När den här åtkomstnivån har tilldelats är den endast giltig under den angivna tiden. När perioden har löpt ut styrs administratörsåtkomsten på nytt av befintliga krav.

// Tillåt tillfällig åtkomst till resurser den 1 mars 2022 mellan kl. 22.00 och midnatt
// och denna åtkomst måste komma från regionen USA.
level.Required_Secure_Device &&
request.time.between('2022-03-01T23:00:00+08:00', '2022-03-02T23:59:59+08:00') &&
origin.region_code == ”USA”
// Observera att sluttiden är exkluderande, så den som anges ovan har potentiellt två sekunder då
// användarna kanske inte har åtkomst. Ett annat alternativ är att använda
// !between('00:00:01','16:00:00')
 

Exempel på en kombination av villkor från två nivåer

Definiera en ny åtkomstnivå genom att kombinera villkor från två åtkomstnivåer

Denna åtkomstnivå använder levels-attribut och kräver att användare uppfyller de kombinerade villkoren för två åtkomstnivåer. I det här exemplet hänvisar access_level_name_1 och access_level_name_2 till Internt namn.

levels.access_level_name_1 && levels.access_level_name_2

 

Var det här till hjälp?

Hur kan vi förbättra den?
Sök
Rensa sökning
Stäng sökrutan
Huvudmeny
15858584142863180572
true
Sök i hjälpcentret
true
true
true
true
true
73010
false
false