本页详细介绍了用于为自定义访问权限级别构建通用表达式语言 (CEL) 表达式的对象和属性。其中包含示例。
如需详细了解 CEL,请参阅 CEL 语言定义。
此网页包含以下部分:
对象
Access Context Manager 提供四个包含访问权限级别属性的对象。
物体 | |
---|---|
origin
|
包含用于标识请求来源的属性。 |
request.auth
|
包含用于标识请求的身份验证和授权方面的属性。 |
levels
|
包含用于定义依赖于其他访问权限级别的属性。 |
device
|
包含描述请求来源设备的属性。 |
origin
属性
本部分列出了 origin
对象支持的属性。
属性 | |||||
---|---|---|---|---|---|
ip
|
|
||||
region_code
|
|
request.auth
属性
本部分列出了 request.auth
对象支持的属性。
属性 | |||||
---|---|---|---|---|---|
principal
|
|
levels
属性
本部分列出了 levels
对象支持的属性。
属性 | |||||
---|---|---|---|---|---|
level name
|
|
device
属性
本部分列出了 device
对象支持的属性。
属性 | |||||
---|---|---|---|---|---|
encryption_status
|
|
||||
is_admin_approved_device
|
|
||||
is_corp_owned_device
|
|
||||
is_secured_with_screenlock
|
|
||||
os_type
|
|
||||
vendors
|
|
||||
verified_chrome_os
|
|
函数
Access Context Manager 提供以下函数,用于自定义访问权限级别的 CEL 表达式。
函数 | |||||
---|---|---|---|---|---|
inIpRange(address, [subnets])
|
|
||||
device.versionAtLeast(minVersion)
|
|
||||
certificateBindingState(origin, device)
|
|
CEL 表达式示例
本部分将介绍用于创建自定义访问权限级别的 CEL 表达式示例。
示例 1
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ["US"] || device.is_admin_approved_device)
此示例表示需要满足以下条件才能允许请求的访问权限级别:
发出请求的设备已加密。
以下一项或多项正确:
请求来自美国。
发出请求的设备已通过网域管理员的批准。
示例 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"))
此示例表示需要满足以下条件才能允许请求的访问权限级别:
以下其中一项是正确的:
发出请求的设备使用桌面 Windows 操作系统,并且归您的组织所有。
发起请求的设备使用桌面 Mac 操作系统、经网域管理员批准并至少使用 MacOS 10.11。
示例 3
(certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE)
此示例表示需要满足以下条件才能允许请求的访问权限级别:
certificateBindingState
扩展程序函数确定请求时提供的证书与设备注册端点验证时注册的其中一个设备证书相匹配。