Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina descrive in dettaglio gli oggetti e gli attributi utilizzati per creare
Common Expression Language (CEL)
le espressioni per livelli di accesso personalizzati. Sono inclusi esempi.
Contiene attributi che descrivono il dispositivo da cui ha avuto origine la richiesta
da cui proviene.
Attributi origin
Questa sezione elenca gli attributi supportati dall'oggetto origin.
Attributi
ip
Tipo
string
Descrizione
L'indirizzo IP da cui ha avuto origine la richiesta. Se l'indirizzo IP
non può essere determinato, origin.ip valuta
a un errore. Ti consigliamo di utilizzare
inIpRange per verificare se l'indirizzo IP di origine rientra in un
determinato intervallo di indirizzi IP anziché eseguire un confronto di stringhe.
Esempio:
inIpRange(origin.ip,["203.0.113.24"])
region_code
Tipo
string
Descrizione
Il codice ISO 3166-1 alpha-2 per il paese o la regione di provenienza della richiesta. Se non è possibile determinare il codice regione, origin.region_code viene valutato come errore.
Questa sezione elenca gli attributi supportati dall'oggetto levels.
Attributi
level name
Tipo
boolean
Descrizione
level name corrisponde al nome di un modello esistente
livello di accesso.
Se utilizzate, le condizioni del livello di accesso specificato devono
essere soddisfatti in aggiunta agli altri requisiti della tua
livello di accesso.
Esempio:
levels.allow_corp_ips
Dove allow_corp_ips è il nome di un
livello di accesso.
Attributo device
Questa sezione elenca gli attributi supportati dall'oggetto device. Se non c'è alcun dispositivo
associati agli identificatori nella richiesta, vengono trovati tutti i seguenti
viene restituito un errore.
Attributi
encryption_status
Tipo
enum
Descrizione
Descrive lo stato di crittografia del dispositivo.
Valori enum:
enumDeviceEncryptionStatus{// The encryption status of the device is not specified or not known.ENCRYPTION_UNSPECIFIED==0;// The device does not support encryption.ENCRYPTION_UNSUPPORTED==1;// The device supports encryption, but is currently unencrypted.UNENCRYPTED==2;// The device is encrypted.ENCRYPTED==3;}
Se il dispositivo è stato approvato dall'amministratore
di dominio.
Esempio:
device.is_admin_approved_device==true
is_corp_owned_device
Tipo
boolean
Descrizione
Indica se il dispositivo è di proprietà dell'organizzazione.
Esempio:
device.is_corp_owned_device==true
is_secured_with_screenlock
Tipo
boolean
Descrizione
Indica se sul dispositivo è attiva la funzione di blocco schermo.
Esempio:
device.is_secured_with_screenlock==true
os_type
Tipo
enum
Descrizione
Identifica il sistema operativo utilizzato dal dispositivo.
Valori enum:
enumOsType{// The operating system of the device is not specified or not known.OS_UNSPECIFIED==0;// A desktop Mac operating system.DESKTOP_MAC==1;// A desktop Windows operating system.DESKTOP_WINDOWS==2;// A desktop Linux operating system.DESKTOP_LINUX==3;// An Android operating system.ANDROID==4;// An iOS operating system.IOS==5;// A desktop ChromeOS operating system.DESKTOP_CHROME_OS==6;}
L'oggetto vendors viene utilizzato per accedere ai dati forniti
da fornitori di terze parti per la sicurezza e la gestione degli endpoint. Ciascuna
il fornitore può compilare tre attributi condivisi di primo livello:
is_compliant_device,
is_managed_device e
device_health_score.
Inoltre, i fornitori possono fornire le proprie chiavi e i propri valori
a cui viene fatto riferimento utilizzando l'attributo data.
Le chiavi disponibili per l'attributo data variano
da fornitore a fornitore. Quando confronti il valore-chiave nell'espressione del criterio, assicurati di essere coerente. Ad esempio, se prevedi che il valore della chiave sia una stringa o un valore booleano, assicurati di confrontarlo con una stringa o con un valore booleano nell'espressione del criterio corrispondente. Tieni presente che quando il valore è un numero intero, devi confrontarlo con un numero doppio nell'espressione del criterio.
Valori enum:
// Health score of the device as provided by the vendor (possibly third party).enumDeviceHealthScore{// The health score for the device is not specified or unknown.DEVICE_HEALTH_SCORE_UNSPECIFIED=0;// The health of the device is very poor.VERY_POOR=1;// The health of the device is poor.POOR=2;// The health of the device is ok.NEUTRAL=3;// The health of the device is good.GOOD=4;// The health of the device is very good.VERY_GOOD=5;}
Il browser è gestito, a livello di browser o di profilo, e dall'azienda nel dominio corretto?
Un browser viene considerato gestito se i criteri vengono gestiti e sottoposti a push a livello centrale e se il dominio del browser o del profilo gestito corrisponde al dominio previsto sul lato server.
Di seguito sono riportati gli stati di gestione di Chrome disponibili:
Stato
MANAGED
Il browser o il profilo è gestito dal cliente.
UNMANAGED
Il browser o il profilo non è gestito da nessun cliente.
MANAGED_BY_OTHER_DOMAIN
Il browser o il profilo è gestito da un altro cliente.
Controlla se il sistema operativo del dispositivo include almeno un determinato
completamente gestita. Ti consigliamo di utilizzare questa funzione con
Attributo device.os_type.
Esempio:
device.versionAtLeast("10.0")==true
certificateBindingState(origin, device)
Tipo
(Peer, DeviceType) -> numero intero
Descrizione
Controlla se il certificato client associato all'origine
corrisponde al dispositivo e segnala lo stato.
Lo stato restituito dalla funzione può essere uno dei seguenti:
Verifica se l'operando della stringa inizia con l'argomento prefisso.
Esempio:
"Samplestring".startsWith("Sample")
endsWith()
Tipo
string.(string) -> bool
Descrizione
Verifica se l'operando stringa termina con l'argomento suffisso.
Esempio:
"Samplestring".endsWith("string")
origin.clientCertFingerprint()
Tipo
Origine.() -> stringa
Descrizione
Restituisce l'impronta del certificato associato all'origine. Puoi utilizzare questa opzione nelle macro per testare i certificati dei dispositivi.
Esempio:
// Checks if the enterprise certificate associated with the origin matches the device.device.certificates.exists(cert,cert.is_valid && cert.cert_fingerprint==origin.clientCertFingerprint())
Macro per le espressioni CEL
Puoi utilizzare le seguenti macro nelle espressioni CEL per i livelli di accesso personalizzati:
Macro
Descrizione
has(e.f)
Verifica se un campo è disponibile. Per ulteriori dettagli, consulta Selezione dei campi. Esempio:
Verifica se un predicato contiene tutti gli elementi di un elenco e o le chiavi di una mappa e. Qui x è un identificatore da utilizzare in p che si lega all'elemento o alla chiave. La macro all() combina i risultati del predicato per elemento con l'operatore and (&&). Di conseguenza, se un predicato restituisce false, la macro restituisce false, ignorando eventuali errori di altri predicati. Esempio:
Restituisce false perché non tutti gli elementi sono maggiori di 1: [1,2,3].all(x, x > 1)
e.exists(x, p)
Come la macro all(), ma combina i risultati del predicato con l'operatore or (||). Esempio:
Il risultato è true perché nell'elenco è presente almeno un elemento maggiore di 1: [1,2,3].exists(x, x > 1)
Controlla se il certificato aziendale associato al dispositivo corrisponde all'emittente: 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")
e.exists_one(x, p)
Come la macro exists(), ma restituisce true solo se il predicato di esattamente un elemento o una chiave restituisce true e il resto false. Qualsiasi altra combinazione di risultati booleani viene valutata come false e qualsiasi errore dei predicati fa sì che la macro generi un errore. Esempio:
Restituisce false perché più di un elemento è maggiore di 1: [1,2,3].exists_one(x, x > 1)
Espressioni CEL di esempio
Questa sezione include esempi di espressioni CEL utilizzate per creare livelli di accesso personalizzati.
Questo esempio rappresenta un livello di accesso che richiede la conformità alle seguenti condizioni per consentire una richiesta:
Una delle seguenti condizioni è vera:
Il dispositivo da cui ha avuto origine la richiesta utilizza un computer Windows
del tuo sistema operativo ed è di proprietà della tua organizzazione.
Il dispositivo da cui ha avuto origine la richiesta utilizza un Mac desktop
sistema operativo, è approvato dall'amministratore del dominio e
utilizzando almeno MacOS 10.11.
Questo esempio rappresenta un livello di accesso che richiede la conformità alla seguente condizione per consentire una richiesta:
La funzione di estensione certificateBindingState determina che
il certificato presentato all'ora della richiesta corrisponde a uno dei dispositivi
certificati registrati al momento della registrazione del dispositivo
verifica endpoint.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-10-05 UTC."],[],[]]