Configura reti

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 su UnencryptedConfiguration. 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 e WiFi sono campi supportati e sono tutti obbligatori.
    • ProxySettings è un campo facoltativo. In questo caso, solo Manual e PAC (configurazione automatica del proxy) sono supportati.
    • Type deve essere impostato su WiFi. 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 prefisso 0x. 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 valori Hardware o Automatic. 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.
  • 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 e 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 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"
      }
   ]
}