Puoi utilizzare i criteri per configurare le reti Wi-Fi su un dispositivo. L'API Android Management utilizza Open Network Configuration, un formato standard basato su JSON sviluppato originariamente nell'ambito del progetto Chromium.
Per includere una configurazione di rete aperta in un criterio, imposta il campo
openNetworkConfiguration in una risorsa
Policy.
Per i dispositivi completamente gestiti, puoi impedire facoltativamente a un utente di configurare manualmente le impostazioni Wi-Fi sul proprio dispositivo impostando wifiConfigDisabled su true nella risorsa Policy.
Funzionalità supportate
L'API Android Management supporta solo un sottoinsieme della specifica Open Network Configuration.
- Oggetto di primo livello:
Typedeve essere omesso o impostato suUnencryptedConfiguration. Non è necessario crittografare la configurazione di rete all'interno di una policy perché l'intera policy è crittografata all'interno del servizio API Android Management. Inoltre, esiste un secondo livello di crittografia per le informazioni sensibili come le passphrase e le chiavi private.
NetworkConfigurationoggetti:GUID,Name,TypeeWiFisono campi supportati e sono tutti obbligatori.ProxySettingsè un campo facoltativo. Se viene utilizzato, sono supportati soloManualePAC(Proxy Auto-Configuration).Typedeve essere impostato suWiFi. Altri tipi di reti non sono supportati.
WiFioggetti:SSIDeHexSSIDsono supportati e almeno uno di questi deve essere presente.- Se sono impostati sia
HexSSIDcheSSID, i valori devono essere coerenti.
- Se sono impostati sia
HiddenSSIDè supportato.- L'
AllowGatewayARPPollingnon è supportato. - L'
SignalStrengthnon è supportato. AutoConnect: questo campo determina se la rete viene attivata automaticamente. Questa impostazione è indipendente dall'opzione di connessione automatica per rete disponibile per gli utenti nelle impostazioni Wi-Fi del dispositivo.- Se impostata su
true, la rete è abilitata, il che significa che il dispositivo può connettersi automaticamente senza una selezione esplicita dell'utente nelle impostazioni Wi-Fi, a meno che l'utente non disattivi la connessione automatica per questa rete. - Se impostata su
false, la rete viene aggiunta all'elenco delle reti salvate, ma non è abilitata. Il dispositivo non si connette automaticamente. Affinché il dispositivo si connetta alla rete, l'utente deve selezionare manualmente la rete una volta dalle impostazioni Wi-Fi. Dopo la prima connessione manuale, la rete viene considerata abilitata e il dispositivo può connettersi automaticamente, a meno che l'utente non disattivi la connessione automatica per questa rete.
- Se impostata su
Securityè obbligatorio e sono supportati i seguenti valori: - None - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
- Per le passphrase
WEP-PSK, sono supportate solo passphrase a 40 bit (10 cifre) o 104 bit (26 cifre). - La specifica indica che le passphrase
WEP-PSKdevono iniziare con il prefisso0x. Tuttavia, per coerenza con Android Framework, questo prefisso non è obbligatorio. - Per impostare la modalità di
randomizzazione MAC,
utilizza la proprietà
MACAddressRandomizationModeimpostata con i valoriHardwareoAutomatic. Questa proprietà non è disponibile nella specifica Open Network Configuration (ONC) ma è fornita in AMAPI e può essere specificata durante la configurazione delle reti Wi-Fi. Questo vale solo per Android 13 e versioni successive in tutte le modalità di gestione.Hardwareutilizza l'indirizzo MAC di fabbrica quando si connette alla rete.Automaticconsente al framework Wi-Fi di decidere automaticamente la strategia di randomizzazione dell'indirizzo MAC. Questi possono essere indirizzi MAC persistenti o non persistenti generati in modo casuale e utilizzati durante la connessione alla rete.
EAPoggetti:- L'
ClientCertPatternnon è supportato. SaveCredentialsnon è supportato perché le credenziali vengono sempre salvate.- L'
UseSystemCAsnon è supportato. ServerCARefè supportato.ServerCARefsè supportato.DomainSuffixMatchè supportato. Le configurazioni wireless aziendali senza questo campo (o con un elenco vuoto come valore) sono considerate non sicure e rifiutate dalla piattaforma . I valori devono essere nomi di dominio validi (ad es. "example.com", "subdomain.example.com").- Per
ClientCertTypesono supportati i seguenti valori:Ref,KeyPairAlias - Per
Innersono supportati i seguenti valori:MSCHAPv2,PAP - Per
Outersono supportati i seguenti valori:EAP-AKA,EAP-TLS,EAP-TTLS,EAP-SIM,PEAP Certificateoggetti:- L'
Removenon è supportato. Ometti invece il certificato nella configurazione. - L'
TrustBitsnon è supportato.
- L'
Esempi
Più reti Wi-Fi
Questo frammento di policy di esempio mostra tre reti Wi-Fi configurate con
diversi schemi di sicurezza. Il JSON Open Network Configuration è nidificato all'interno
del campo openNetworkConfiguration del
JSON Policy.
"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 l'autenticazione EAP-TLS. 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"
],
"ServerCARefs": ["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 campo
ClientCertKeyPairAlias può essere utilizzato per specificare l'alias di una coppia di chiavi KeyChain installata
(vedi
DevicePolicyManager.installKeyPair)
o generata (vedi
DevicePolicyManager.generateKeyPair)
utilizzata per l'autenticazione Wi-Fi. Per Android 12 e versioni successive, la coppia di chiavi KeyChain con l'alias specificato con ClientCertKeyPairAlias viene concessa per l'autenticazione alle reti Wi-Fi e viene utilizzata per l'autenticazione alla rete Wi-Fi corrispondente. Prima di Android 12,
viene
segnalato
un
nonComplianceDetail
con
il
motivo
API_LEVEL. Un
nonComplianceDetail
con
INVALID_VALUE
motivo e
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
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"
],
"ServerCARefs": ["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, ovvero una rete WPA-EAP
configurata con la 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",
"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"
}
]
}