设备配置文件为组织中的特定设备集定义了 Cloudflare One 客户端设置。您可以创建多个配置文件,并根据用户身份、设备位置和其他条件应用不同的设置。
例如,同一个身份提供程序组(代表特定的办公地点)中的用户可能拥有需要从其 WARP 隧道中排除的不同路由,或者某些设备类型(例如 Linux)可能需要不同的 DNS 设置以适应本地开发服务。
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Team & Resources(团队和资源) > Devices(设备) > Device profiles(设备配置文件) > General profiles(常规配置文件)。
- 选择 Create new profile(创建新配置文件)。这将复制 Default(默认) 配置文件。
- 输入配置文件的任意名称。
- 创建规则以定义将使用此配置文件的设备。详细了解可用的选择器、运算符和值。
- 为这些设备配置设备客户端设置。
- 选择 Create profile(创建配置文件)。
您的配置文件将显示在 Profile settings(配置文件设置) 列表中。您可以根据所需的优先级顺序在列表中重新排列配置文件。
向 Devices API 发送 POST 请求:
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"allow_mode_switch": false,
"allow_updates": false,
"allowed_to_leave": false,
"auto_connect": 600,
"captive_portal": 180,
"description": "Example device profile recommended in the implementation documentation. For details, refer to https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/device-profiles/",
"disable_auto_fallback": true,
"enabled": true,
"exclude_office_ips": false,
"match": "identity.email in {\"jdoe@example.com\"} or any(identity.groups.name[*] in {\"developers\" \"admin\"}) and os.name == \"windows\"",
"name": "Example device profile",
"precedence": 101,
"service_mode_v2": {
"mode": "warp"
},
"support_url": "https://support.example.com",
"switch_locked": true
}'-
向您的
cloudflare_api_token↗ 添加以下权限:Zero Trust 写入
-
使用
cloudflare_zero_trust_device_custom_profile↗ 资源创建一个新配置文件:resource "cloudflare_zero_trust_device_custom_profile" "example" { account_id = var.cloudflare_account_id name = "Example device profile" description = "Example device profile recommended in the implementation documentation. For details, refer to https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/device-profiles/" allow_mode_switch = false allow_updates = false allowed_to_leave = false auto_connect = 600 captive_portal = 180 disable_auto_fallback = true enabled = true exclude_office_ips = false precedence = 101 service_mode_v2 = {mode = "warp"} support_url = "https://support.example.com" switch_locked = true tunnel_protocol = "wireguard" match = trimspace(replace(<<-EOT identity.email in {"jdoe@example.com"} or any(identity.groups.name[*] in {"developers" "admin"}) and os.name == "windows" EOT , "\n", " ")) }
-
在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Team & Resources(团队和资源) > Devices(设备) > Device profiles(设备配置文件) > General profiles(常规配置文件)。
-
找到您要更新的设备配置文件并选择 Configure(配置)。
-
选择 Save profile(保存配置文件)。
新更新的设置可能需要多达 10 分钟才能传播到设备。
要验证特定设备最后活动的设备配置文件:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Team & Resources(团队和资源) > Devices(设备)。
- 在设备下,找到您的设备。
- 检查 Last active device profile(最后活动设备配置文件) 下的设备配置文件。
要验证用户设备的最后活动设备配置文件:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Team & Resources(团队和资源) > Users(用户)。
- 在 Username(用户名) 下,找到您要调查的用户。
- 选择 Devices(设备) 以查看该用户使用的所有设备。
- 找到您要调查的设备,并在 Device profile(设备配置文件) 列下验证该设备的最后活动设备配置文件。
或者,您可以使用 DEX 远程捕获来收集客户端诊断日志。设备配置文件的 UUID 将显示在您的检测报告中的 Profile ID 下。
要检查当前设备上使用的是哪个设备配置文件和配置文件设置,请打开终端并运行:
warp-cli settings设备配置文件的 UUID 将显示在 Profile ID 字段中。
您可以配置设备配置文件以匹配以下选择器或标准。仅当用户通过登录身份提供商 (IdP) 注册设备时,基于身份的选择器才可用。
根据用户的电子邮件应用设备配置文件。
| UI 名称 | API 示例值 |
|---|---|
| User email | identity.email == "user-name@company.com" |
根据用户在 IdP 中被配置为成员的 IdP 组电子邮件地址应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| User group emails | identity.groups.email == "contractors@company.com" |
根据用户在 IdP 中被配置为成员的 IdP 组 ID 应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| User group IDs | identity.groups.id == "12jf495bhjd7893ml09o" |
根据用户在 IdP 中被配置为成员的 IdP 组名称应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| User group names | identity.groups.name == "\"finance\"" |
根据设备的操作系统应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| 操作系统 | os.name in {\"windows\" \"mac\"} |
根据设备的 OS 版本应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| 操作系统版本 | os.version == \"1.2.0\" |
根据设备连接到的托管网络应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| 托管网络 | network == \"Austin office\" |
根据来自 SAML IdP 的属性名称和值应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| SAML Attributes(SAML 属性) | identity.saml_attributes == "\"group=finance\"" |
根据用于注册设备的服务令牌应用设备配置文件。
| UI 名称 | API 示例 |
|---|---|
| 服务令牌 | identity.service_token_uuid == \"f174e90a-fafe-4643-bbbc-4a0ed4fc8415\" |
运算符决定了设备配置文件如何匹配选择器。
| 运算符 | 含义 |
|---|---|
| is | 等于定义的值 |
| in | 匹配至少一个定义的值 |
要在表达式中评估多个条件,请选择一个逻辑运算符:
| 运算符 | 含义 |
|---|---|
| And | 匹配表达式中的所有条件 |
| Or(或) | 匹配表达式中的任一条件 |
Cloudflare One 客户端根据层次结构动态评估设备配置文件。当设备连接时,客户端自上而下检查在仪表板中显示的配置文件。客户端遵循首次匹配原则——一旦设备匹配了某个配置文件,客户端将停止评估,后续任何配置文件都无法覆盖该决定。
Default(默认) 配置文件始终位于列表底部。只有当设备不满足其上方列出的任何配置文件的条件时,它才会被应用。如果您将另一个自定义配置文件设为默认值,所有设置都将复制到 Default(默认) 配置文件中。
管理员可以创建多个配置文件,根据特定条件(例如用户身份、位置或操作系统)应用不同的设置。理解这种自上而下的评估顺序对于确保向设备应用正确的策略至关重要。