Configura reti

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 che è stato originariamente sviluppato nell'ambito del progetto Chromium. Consulta la specifica per i dettagli completi sulla configurazione di rete aperta.

Per includere una configurazione di rete aperta in un criterio, imposta il campo openNetworkConfiguration su una risorsa Policy.

Per i dispositivi completamente gestiti, puoi facoltativamente impedire 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:
    • Type deve essere omesso o impostato su UnencryptedConfiguration. Non è necessario criptare la configurazione di rete all'interno di un criterio perché l'intero criterio viene criptato all'interno del servizio API Android Management. Inoltre, è presente un secondo livello di crittografia per le informazioni sensibili, come passphrase e chiavi private.
  • NetworkConfiguration oggetti:
    • GUID, Name, Type e WiFi sono campi supportati e sono tutti obbligatori.
    • ProxySettings è un campo facoltativo. Se utilizzi questa opzione, sono supportati solo Manual e PAC (configurazione automatica proxy).
    • Type deve essere impostato su WiFi. Non sono supportati altri tipi di reti.
  • 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 sono supportate solo le passphrase a 40 bit (10 cifre) o 104 bit (26 cifre).
    • La specifica indica che le passphrase WEP-PSK devono iniziare con il prefisso 0x. Tuttavia, per la coerenza con il framework Android, questo prefisso non è obbligatorio.
    • Per impostare la modalità di randomizzazione MAC, utilizza la proprietà MACAddressRandomizationMode impostata con i valori Hardware o Automatic. Questa proprietà non è al momento 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.
      • Hardware utilizza l'indirizzo MAC di fabbrica per la connessione alla rete.
      • Automatic consente al framework Wi-Fi di decidere automaticamente la strategia di randomizzazione MAC. Possono essere indirizzi MAC permanenti o non persistenti generati in modo casuale che vengono utilizzati per la connessione alla rete.
  • EAP oggetti:
    • L'ClientCertPattern non è supportato.
    • L'SaveCredentials non è supportato.
    • L'UseSystemCAs non è 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").
    • ClientCertType supporta solo il valore Ref
    • Per Inner sono supportati i seguenti valori: MSCHAPv2, PAP
    • Per Outer sono supportati i seguenti valori: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, PEAP
  • Certificate oggetti:
    • L'Remove non è supportato. Ometti il certificato nella configurazione.
    • L'TrustBits non è supportato.

Esempi

Più reti Wi-Fi

Questo frammento di criterio di esempio mostra tre reti Wi-Fi configurate con schemi di sicurezza diversi. 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"
               ],
               "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 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. Su Android 12 e versioni successive, la coppia di chiavi KeyChain con l'alias specificato con ClientCertKeyPairAlias viene concessa per l'autenticazione sulle reti Wi-Fi e viene utilizzata per l'autenticazione sulla rete Wi-Fi corrispondente. Sotto Android 12, è stato segnalato un motivo nonComplianceDetail con API_LEVEL. Viene segnalato un motivo nonComplianceDetail con un motivo specifico di INVALID_VALUE e un motivo specifico per ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY 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 è 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",
               "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"
      }
   ]
}