Puoi utilizzare i criteri per configurare le reti Wi-Fi su un dispositivo. Android L'API di gestione utilizza Open Network Configuration, un formato standard basato su JSON sviluppata originariamente nell'ambito del progetto Chromium. Consulta le specifico per i dettagli completi sulla configurazione di rete aperta.
Per includere una configurazione di rete aperta in un criterio, imposta il valore
campo openNetworkConfiguration
in un
Policy
risorsa.
Per i dispositivi completamente gestiti, puoi facoltativamente impedire a un utente di
configurando le impostazioni Wi-Fi sul dispositivo impostando wifiConfigDisabled
su
true
nel
Policy
:
risorsa.
Funzionalità supportate
L'API Android Management supporta solo un sottoinsieme della rete Specifica della configurazione.
- Oggetto di primo livello:
Type
deve essere omesso o impostato suUnencryptedConfiguration
. Non sono presenti crittografare la configurazione di rete all'interno di un criterio, l'intero criterio è criptato all'interno del servizio API Android Management. Inoltre, c'è un secondo livello di crittografia per i dati come passphrase e chiavi private.
NetworkConfiguration
oggetti:GUID
,Name
,Type
eWiFi
sono campi supportati e sono tutti obbligatori.ProxySettings
è un campo facoltativo. In questo caso, soloManual
ePAC
(configurazione automatica del proxy) sono supportati.Type
deve essere impostato suWiFi
. Non sono supportati altri tipi di rete.
WiFi
oggetti:- L'
AllowGatewayARPPolling
non è supportato. - L'
SignalStrength
non è supportato. - Il campo
Security
è obbligatorio e sono supportati i seguenti valori: Nessuno - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192 - Per le passphrase
WEP-PSK
, solo a 40 bit (10 cifre) o 104 bit (26 cifre) le passphrase sono supportate. - La specifica afferma che le passphrase di
WEP-PSK
devono iniziare con il prefisso0x
. Tuttavia, per coerenza con il framework Android, questo il prefisso non è obbligatorio. - Per impostare la modalità di randomizzazione degli MAC, utilizza la proprietà
MACAddressRandomizationMode
impostato con i valoriHardware
oAutomatic
. Questa proprietà è attualmente non disponibile nella specifica Open Network Configuration (ONC) ma viene fornito in AMAPI e può essere specificato durante la configurazione delle reti Wi-Fi. Si applica solo ad Android 13 e versioni successive in tutte le modalità di gestione.Hardware
utilizza l'indirizzo MAC di fabbrica per la connessione alla rete.Automatic
consente al framework Wi-Fi di decidere automaticamente il MAC di randomizzazione. Può essere persistente o non persistente indirizzi MAC generati in modo casuale, che vengono utilizzati per la connessione in rete.
- L'
EAP
oggetti:- L'
ClientCertPattern
non è supportato. - L'app
SaveCredentials
non è supportata perché le credenziali vengono sempre salvate. - L'
UseSystemCAs
non è supportato. DomainSuffixMatch
è supportato. Configurazioni wireless aziendali senza questo campo (o con un campo elenco come valore) sono considerate non sicuri e rifiutati dalla piattaforma. I valori devono essere nomi di dominio validi (ad es. "example.com", "sottodominio.esempio.com").- Per
ClientCertType
sono supportati i seguenti valori:Ref
,KeyPairAlias
- Per
Inner
sono supportati i seguenti valori:MSCHAPv2
,PAP
- Per
Outer
sono supportati i seguenti valori:EAP-AKA
,EAP-TLS
,EAP-TTLS
,EAP-SIM
ePEAP
- L'
Certificate
oggetti:- L'
Remove
non è supportato. Ometti il certificato nella configurazione . - L'
TrustBits
non è supportato.
- L'
Esempi
Più reti Wi-Fi
Questo frammento di criterio di esempio mostra tre reti Wi-Fi configurate con
schemi di sicurezza diversi. Il file JSON Open Network Configuration è nidificato all'interno
il campo openNetworkConfiguration
del
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" } } ] }
Autenticazione EAP
Questo frammento di criterio di esempio mostra una rete wireless configurata con EAP-TLS
autenticazione. Oltre all'oggetto NetworkConfigurations
, l'esempio
include due oggetti Certificates
per i certificati client e server.
"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" } ] }
Il campo ClientCertType
può anche essere impostato su KeyPairAlias
e il
Il campo ClientCertKeyPairAlias
può essere utilizzato per specificare l'alias di un'istanza
(vedi
DevicePolicyManager.installKeyPair
)
o generati (vedi
DevicePolicyManager.generateKeyPair
) Coppia di chiavi KeyChain utilizzata per l'autenticazione Wi-Fi. Su Android 12 e
sopra, la coppia di chiavi KeyChain con l'alias specificato
ClientCertKeyPairAlias
è stato autorizzato per l'autenticazione sulle reti Wi-Fi e pertanto
utilizzati per l'autenticazione sulla rete Wi-Fi corrispondente. Al di sotto di Android 12, è presente una
nonComplianceDetail
con
API_LEVEL
viene segnalato il motivo. R
nonComplianceDetail
con
INVALID_VALUE
motivo e
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
il motivo specifico viene segnalato se l'alias della coppia di chiavi specificato non corrisponde a
una chiave esistente. Di seguito è riportato un esempio di criterio:
"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" } ] }
Il campo Security
può anche essere WPA3-Enterprise_192
, che è un WPA-EAP
rete configurata con modalità WPA3 a 192 bit.
"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" } ] }