您可以使用政策在设备上配置 Wi-Fi 网络。Android Management API 使用开放网络配置,这是一种基于 JSON 的标准格式 它最初是作为 Chromium 项目的一部分开发的。请参阅 规范 了解开放网络配置的完整详情。
要在政策中包括开放网络配置,请设置
openNetworkConfiguration
字段的
Policy
资源。
对于全托管式设备,您可以选择手动禁止用户
将 wifiConfigDisabled
设为其设备上的 Wi-Fi 设置
true
在
Policy
资源。
支持的功能
Android Management API 仅支持一部分开放网络 配置规范。
- 顶级对象:
<ph type="x-smartling-placeholder">
- </ph>
Type
必须省略或设置为UnencryptedConfiguration
。没有任何 需要对政策中的网络配置进行加密,因为 整个政策在 Android Management API 服务中进行加密。 此外,针对敏感数据, 密码和私钥等信息
NetworkConfiguration
对象: <ph type="x-smartling-placeholder">- </ph>
GUID
、Name
、Type
和WiFi
支持的字段,全都是必填字段。ProxySettings
是一个可选字段。如果使用此属性 支持Manual
和PAC
(代理自动配置)。Type
必须设置为WiFi
。不支持其他类型的网络。
WiFi
对象: <ph type="x-smartling-placeholder">- </ph>
- 不支持
AllowGatewayARPPolling
。 - 不支持
SignalStrength
。 - “
Security
”是必填字段,系统支持使用以下值: - 无 - WEP PSK - WPA-PSK - WPA-EAP - WEP 8021X - WPA3-Enterprise_192 - 对于
WEP-PSK
口令,仅限 40 位(10 位)或 104 位(26 位) 密码。 - 该规范规定,
WEP-PSK
口令必须以 前缀0x
。不过,为了与 Android 框架保持一致,此 前缀不是必需的。 - 如需设置随机分配 MAC 地址模式,请使用属性
MACAddressRandomizationMode
设置为Hardware
或Automatic
值。此媒体资源目前 在开放网络配置 (ONC) 规范中不可用 但在 AMAPI 中提供,且可在配置 Wi-Fi 网络时指定。这仅适用于所有管理模式下的 Android 13 及更高版本。Hardware
在连接到网络时使用出厂 MAC 地址。Automatic
可让 Wi-Fi 框架自动确定 MAC 随机分配策略。这可以是永久性或非永久性 随机生成的 MAC 地址,在连接到 网络。
- 不支持
EAP
对象: <ph type="x-smartling-placeholder">- </ph>
- 不支持
ClientCertPattern
。 - 不支持
SaveCredentials
,因为系统会始终保存凭据。 - 不支持
UseSystemCAs
。 - 支持
DomainSuffixMatch
。 不含此字段(或为空)的企业级无线配置 视为值) 不安全且会被平台拒绝。 值应为有效的域名(例如“example.com” “subdomain.example.com”)。 ClientCertType
支持以下值:Ref
、KeyPairAlias
Inner
支持以下值:MSCHAPv2
、PAP
Outer
支持以下值:EAP-AKA
、EAP-TLS
、EAP-TTLS
、EAP-SIM
、PEAP
- 不支持
Certificate
对象: <ph type="x-smartling-placeholder">- </ph>
- 不支持
Remove
。在配置中省略证书 。 - 不支持
TrustBits
。
- 不支持
示例
多个 Wi-Fi 网络
此示例政策片段显示了三个配置了
不同的安全方案开放网络配置 JSON 嵌套在
openNetworkConfiguration
字段的
Policy
JSON。
"openNetworkConfiguration": { "NetworkConfigurations": [ { "GUID": "a", "Name": "Example A", "Type": "WiFi", "WiFi": { "SSID": "Example A", "Security": "None", "AutoConnect": true } }, { "GUID": "b", "Name": "Example B", "Type": "WiFi", "WiFi": { "SSID": "Example B", "Security": "WEP-PSK", "Passphrase": "1234567890" } }, { "GUID": "c", "Name": "Example C", "Type": "WiFi", "WiFi": { "SSID": "Example C", "Security": "WPA-PSK", "Passphrase": "baseball" } }, { "GUID": "networkA", "Name": "networkA", "Type": "WiFi", "WiFi": { "SSID": "networkA", "Security": "WPA-PSK", "Passphrase": "pwd1234567", "MACAddressRandomizationMode": "Hardware" } } ] }
EAP 身份验证
此示例政策片段显示了配置了 EAP-TLS 的无线网络
身份验证。除了 NetworkConfigurations
对象之外,示例
包含两个用于客户端证书和服务器证书的 Certificates
对象。
"openNetworkConfiguration": { "Type": "UnencryptedConfiguration", "NetworkConfigurations": [ { "GUID": "a", "Name": "Example A", "Type": "WiFi", "WiFi": { "SSID": "Example A", "EAP": { "Outer": "EAP-TLS", "Identity": "example", "DomainSuffixMatch": [ "example.com", "example.org" ], "ServerCARef": "abc123", "ClientCertType": "Ref", "ClientCertRef": "xyz456" }, "Security": "WPA-EAP" } } ], "Certificates": [ { "GUID": "abc123", "Type": "Server", "X509": "TWFuIGlzIGRpc3Rpbmd1a" }, { "GUID": "xyz456", "Type": "Client", "PKCS12": "6PQIEQYJKoZbdDu8gwggRlqCCAPEbAAcGClgvcNAQc" } ] }
ClientCertType
字段也可设置为 KeyPairAlias
,并且
ClientCertKeyPairAlias
字段可用于指定已安装应用的别名
(请参阅
DevicePolicyManager.installKeyPair
)
(请参阅
DevicePolicyManager.generateKeyPair
)的 KeyChain 密钥对。在 Android 12 及以上版本中
KeyChain 密钥对,具有使用
已授权 ClientCertKeyPairAlias
向 Wi-Fi 网络进行身份验证,
用于向相应 Wi-Fi 网络进行身份验证。在 Android 12 之后,
nonComplianceDetail
替换为
API_LEVEL
会报告原因。答
nonComplianceDetail
替换为
INVALID_VALUE
原因和
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
如果指定的密钥对别名与
现有密钥。以下是政策示例:
"openNetworkConfiguration": { "Type": "UnencryptedConfiguration", "NetworkConfigurations": [ { "GUID": "a", "Name": "Example A", "Type": "WiFi", "WiFi": { "SSID": "Example A", "EAP": { "Outer": "EAP-TLS", "Identity": "example", "DomainSuffixMatch": [ "example.com", "example.org" ], "ServerCARef": "abc123", "ClientCertType": "KeyPairAlias", "ClientCertKeyPairAlias": "key-alias" }, "Security": "WPA-EAP" } } ], "Certificates": [ { "GUID": "abc123", "Type": "Server", "X509": "TWFuIGlzIGRpc3Rpbmd1a" } ] }
Security
字段也可以是 WPA3-Enterprise_192
,这是一种 WPA-EAP
采用 WPA3 192 位模式的网络。
"openNetworkConfiguration": { "Type": "UnencryptedConfiguration", "NetworkConfigurations": [ { "Type": "WiFi", "Name": "Example A", "GUID": "A", "WiFi": { "SSID": "Example A", "EAP": { "Outer": "EAP-TLS", "Identity": "example", "ServerCARef": "abc123", "ClientCertType": "Ref", "ClientCertRef": "xyz456", "DomainSuffixMatch": ["example.com"] }, "Security": "WPA3-Enterprise_192", "AutoConnect": true } } ], "Certificates": [ { "GUID": "abc123", "Type": "Server", "X509": "TWFuIGlzIGRpc3Rpbmd1a" }, { "GUID": "xyz456", "Type": "Client", "PKCS12": "6PQIEQYJKoZbdDu8gwggRlqCCAPEbAAcGClgvcNAQc" } ] }