您可以使用政策設定裝置上的 Wi-Fi 網路。Android Management API 會使用開放式網路設定,這是一種標準的 JSON 格式,最初是 Chromium 專案的一部分。如要進一步瞭解開放式網路設定,請參閱規範。
如要在政策中納入開放式網路設定,請在 Policy
資源上設定 openNetworkConfiguration
欄位。
如果是完全受管理的裝置,您可以選擇在 Policy
資源中將 wifiConfigDisabled
設為 true
,藉此防止使用者在裝置上手動設定 Wi-Fi 設定。
支援的功能
Android Management API 僅支援 Open Network Configuration 規格的一部分。
- 頂層物件:
Type
必須省略或設為UnencryptedConfiguration
。您不需要在政策中加密網路設定,因為整個政策會在 Android 管理 API 服務中加密。此外,系統還會為機密資訊 (例如密碼短句和私密金鑰) 提供第二層加密機制。
NetworkConfiguration
物件:GUID
、Name
、Type
和WiFi
都是支援的欄位,且皆為必填欄位。ProxySettings
是選用欄位。如果使用這個選項,系統只會支援Manual
和PAC
(Proxy Auto-Configuration)。Type
必須設為WiFi
。不支援其他類型的網路。
WiFi
物件:- 系統支援
SSID
和HexSSID
,且至少必須提供其中一個。- 如果同時設定
HexSSID
和SSID
,兩者的值必須一致。
- 如果同時設定
- 支援
HiddenSSID
。 - 不支援「
AllowGatewayARPPolling
」。 - 不支援「
SignalStrength
」。 - 必須提供
Security
,且支援下列值: - None - 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
物件:- 不支援「
ClientCertPattern
」。 - 系統一律會儲存憑證,因此不支援
SaveCredentials
。 - 不支援「
UseSystemCAs
」。 - 支援
ServerCARef
。 - 支援
ServerCARefs
。 - 支援
DomainSuffixMatch
。沒有這個欄位 (或以空白清單做為值) 的企業無線網路設定會被視為不安全,並遭到平台拒絕。值應為有效的網域名稱 (例如「example.com」、「subdomain.example.com」)。 ClientCertType
支援以下值:Ref
、KeyPairAlias
Inner
支援以下值:MSCHAPv2
、PAP
Outer
支援以下值:EAP-AKA
、EAP-TLS
、EAP-TTLS
、EAP-SIM
、PEAP
- 不支援「
Certificate
物件:- 系統不支援
Remove
。請改為在設定中省略憑證。 - 不支援「
TrustBits
」。
- 系統不支援
範例
多個 Wi-Fi 網路
這個政策片段範例顯示三個使用不同安全性配置的 Wi-Fi 網路。開放網路設定 JSON 會嵌入 Policy
JSON 的 openNetworkConfiguration
欄位中。
"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" ], "ServerCARefs": ["abc123"], "ClientCertType": "Ref", "ClientCertRef": "xyz456" }, "Security": "WPA-EAP" } } ], "Certificates": [ { "GUID": "abc123", "Type": "Server", "X509": "TWFuIGlzIGRpc3Rpbmd1a" }, { "GUID": "xyz456", "Type": "Client", "PKCS12": "6PQIEQYJKoZbdDu8gwggRlqCCAPEbAAcGClgvcNAQc" } ] }
ClientCertType
欄位也可以設為 KeyPairAlias
,ClientCertKeyPairAlias
欄位可用於指定用於 Wi-Fi 驗證的已安裝 (請參閱 DevicePolicyManager.installKeyPair
) 或產生的 (請參閱 DevicePolicyManager.generateKeyPair
) KeyChain 金鑰組的別名。在 Android 12 以上版本中,具有 ClientCertKeyPairAlias
指定別名的 KeyChain 金鑰組會授予 Wi-Fi 網路驗證權限,並用於驗證對應的 Wi-Fi 網路。在 Android 12 以下版本中,系統會回報 nonComplianceDetail
,並附上 API_LEVEL
原因。如果指定的金鑰組別別名不對應至現有金鑰,系統會回報含有 INVALID_VALUE
原因和 ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
特定原因的 nonComplianceDetail
。以下為政策範例:
"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" ], "ServerCARefs": ["abc123"], "ClientCertType": "KeyPairAlias", "ClientCertKeyPairAlias": "key-alias" }, "Security": "WPA-EAP" } } ], "Certificates": [ { "GUID": "abc123", "Type": "Server", "X509": "TWFuIGlzIGRpc3Rpbmd1a" } ] }
Security
欄位也可以是 WPA3-Enterprise_192
,這是以 WPA3 192 位元模式設定的 WPA-EAP 網路。
"openNetworkConfiguration": { "Type": "UnencryptedConfiguration", "NetworkConfigurations": [ { "Type": "WiFi", "Name": "Example A", "GUID": "A", "WiFi": { "SSID": "Example A", "EAP": { "Outer": "EAP-TLS", "Identity": "example", "ServerCARefs": ["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" } ] }