En esta página, se detallan los objetos y atributos que se usan a fin de compilar las expresiones del lenguaje de expresión común (CEL) para los niveles de acceso personalizados. Se incluyen ejemplos.
Para obtener más información sobre CEL, consulta la definición del lenguaje de CEL.
Esta página contiene las siguientes secciones:
Objetos
Access Context Manager proporciona cuatro objetos que contienen atributos de nivel de acceso.
Objetos | |
---|---|
origin
|
Contiene atributos que identifican el origen de la solicitud. |
request.auth
|
Contiene atributos que identifican aspectos de autenticación y autorización de la solicitud. |
levels
|
Contiene atributos para definir la dependencia en otros niveles de acceso. |
device
|
Contiene atributos que describen el dispositivo del que se originó la solicitud. |
Atributos de origin
En esta sección, se enumeran los atributos que admite el objeto origin
.
Atributos | |||||
---|---|---|---|---|---|
ip
|
|
||||
region_code
|
|
Atributos de request.auth
En esta sección, se enumeran los atributos que admite el objeto request.auth
.
Atributos | |||||
---|---|---|---|---|---|
principal
|
|
Atributo levels
En esta sección, se enumeran los atributos que admite el objeto levels
.
Atributos | |||||
---|---|---|---|---|---|
level name
|
|
Atributo device
En esta sección, se enumeran los atributos que admite el objeto device
.
Atributos | |||||
---|---|---|---|---|---|
encryption_status
|
|
||||
is_admin_approved_device
|
|
||||
is_corp_owned_device
|
|
||||
is_secured_with_screenlock
|
|
||||
os_type
|
|
||||
vendors
|
|
||||
verified_chrome_os
|
|
Funciones
Access Context Manager proporciona las siguientes funciones para usar en las expresiones CEL en los niveles de acceso personalizados.
Funciones | |||||
---|---|---|---|---|---|
inIpRange(address, [subnets])
|
|
||||
device.versionAtLeast(minVersion)
|
|
||||
certificateBindingState(origin, device)
|
|
Ejemplo de expresiones CEL
En esta sección, se incluyen ejemplos de expresiones CEL que se usan para crear niveles de acceso personalizados.
Ejemplo 1
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ["US"] || device.is_admin_approved_device)
En este ejemplo, se representa un nivel de acceso que requiere que se cumplan las siguientes condiciones para permitir una solicitud:
El dispositivo del que se originó la solicitud está encriptado.
Una o más de las siguientes afirmaciones es verdadera:
La solicitud se originó en los Estados Unidos.
El dispositivo de donde se originó la solicitud es aprobado por el administrador del dominio.
Ejemplo 2
(device.os_type == OsType.DESKTOP_WINDOWS && device.is_corp_owned_device) || (device.os_type == OsType.DESKTOP_MAC && device.is_admin_approved_device && device.versionAtLeast("10.11.0"))
En este ejemplo, se representa un nivel de acceso que requiere que se cumplan las siguientes condiciones para permitir una solicitud:
Debe cumplirse una de las siguientes condiciones:
El dispositivo desde el cual se originó la solicitud usa un sistema operativo Windows de escritorio y es propiedad de tu organización.
El dispositivo que originó la solicitud usa una computadora con sistema operativo Mac, el administrador del dominio lo aprueba, y tiene, al menos, MacOS 10.11.
Ejemplo 3
(certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE)
En este ejemplo, se representa un nivel de acceso que requiere que se cumpla la siguiente condición para permitir una solicitud:
- La función de extensión
certificateBindingState
determina que el certificado presentado en el momento de la solicitud coincide con uno de los certificados de dispositivo que se registró cuando se registró el dispositivo en la verificación del extremo.