ONC 变量与示例
变量可以让一份网络策略复用于不同用户或设备。是否展开取决于 ONC 作用于登录用户 还是设备范围。
支持的变量
| 变量 | 替换结果 | 常见用途 |
|---|---|---|
${LOGIN_ID} | 登录邮箱中 @ 前的部分 | RADIUS 或 VPN 短用户名 |
${LOGIN_EMAIL} | 完整登录邮箱 | RADIUS 或 VPN 身份 |
${DEVICE_SERIAL_NUMBER} | 设备序列号 | 设备级身份 |
${DEVICE_ASSET_ID} | 管理员设置的资产 ID | 设备级身份 |
${CERT_SAN_EMAIL} | 证书第一个 RFC822 SAN | 证书身份 |
${CERT_SAN_UPN} | 证书 UPN SAN | 类 Active Directory 身份 |
${CERT_SUBJECT_COMMON_NAME} | 证书通用名称 | 证书身份 |
${PASSWORD} | 登录用户密码 | 完整 Wi-Fi EAP 或 L2TP 密码字段 |
${PASSWORD} 是替换变量,不是通用模板。字段必须完全等于 ${PASSWORD};
${PASSWORD}-suffix 不会被替换。
可复用 PEAP 示例
{
"Type": "UnencryptedConfiguration",
"NetworkConfigurations": [
{
"GUID": "{wifi-peap-corporate}",
"Name": "Corporate Wi-Fi",
"Type": "WiFi",
"WiFi": {
"AutoConnect": true,
"SSID": "Corporate",
"Security": "WPA2-Enterprise",
"EAP": {
"Outer": "PEAP",
"Inner": "MSCHAPv2",
"Identity": "${LOGIN_EMAIL}",
"Password": "${PASSWORD}",
"SaveCredentials": true,
"UseSystemCAs": true
}
}
}
]
}
一份文档包含多个网络
NetworkConfigurations 是数组。每个完整网络对象都是单独的数组项,并使用
唯一 GUID:
{
"Type": "UnencryptedConfiguration",
"NetworkConfigurations": [
{
"GUID": "{wifi-primary}",
"Name": "Primary Wi-Fi",
"Type": "WiFi",
"WiFi": {
"AutoConnect": true,
"SSID": "Primary",
"Security": "WPA-PSK",
"Passphrase": "replace-with-managed-secret"
}
},
{
"GUID": "{ethernet-dhcp}",
"Name": "Ethernet",
"Type": "Ethernet",
"Ethernet": {
"Authentication": "None"
}
}
]
}
删除受管理对象
使用原对象的同一 GUID:
{
"Type": "UnencryptedConfiguration",
"NetworkConfigurations": [
{
"GUID": "{wifi-old-network}",
"Remove": true
}
]
}
不要把这个 GUID 复用于其他网络。
校验清单
- 文档能被解析为 JSON,没有注释或末尾逗号。
- 顶层
Type为UnencryptedConfiguration。 - 每个网络和证书 GUID 都非空且唯一。
- 所有证书引用都定义在同一文档中。
- 网络
Type与对象匹配,例如WiFi对应WiFi对象。 - 所选安全、EAP、IP、VPN 和代理模式需要的字段齐全。
- 布尔值和数字没有被写成字符串。
- 示例地址、密码、主机和证书数据已全部替换。
保留经审查的最后一份可用文档。完整字段定义以 ONC 参考为准。