Skonfiguruj sieci

Za pomocą zasad możesz konfigurować sieci Wi-Fi na urządzeniu. Android Interfejs Management API wykorzystuje Open Network Configuration, standardowy format oparty na JSON które powstało w ramach projektu Chromium. Zapoznaj się z specyfikacja .

Aby uwzględnić w zasadzie konfigurację otwartej sieci, ustaw parametr openNetworkConfiguration: pole na Policy. .

W przypadku urządzeń w pełni zarządzanych możesz opcjonalnie uniemożliwić użytkownikowi ręczne skonfigurować ustawienia Wi-Fi na urządzeniu, ustawiając wifiConfigDisabled na true w Policy. .

Obsługiwane funkcje

Interfejs Android Management API obsługuje tylko podzbiór sieci Open Network Specyfikacja konfiguracji.

  • Obiekt najwyższego poziomu:
    • Pole Type należy pominąć lub ustawić na UnencryptedConfiguration. Brak musi zaszyfrować konfigurację sieci w ramach zasady, ponieważ cała zasada jest szyfrowana w usłudze Android Management API. Stosuje się też drugą warstwa szyfrowania dla poufnych danych takie jak hasła i klucze prywatne.
  • NetworkConfiguration obiekty:
    • GUID, Name, Type i WiFi są obsługiwane pola i wszystkie są wymagane.
    • ProxySettings to pole opcjonalne. Jeśli jest używany, tylko Obsługiwane są interfejsy Manual i PAC (automatyczna konfiguracja serwera proxy).
    • Pole Type musi mieć wartość WiFi. Inne typy sieci nie są obsługiwane.
  • WiFi obiekty:
    • AllowGatewayARPPolling nie jest obsługiwany.
    • SignalStrength nie jest obsługiwany.
    • Pole Security jest wymagane i obsługiwane są następujące wartości: - Brak – WEP-PSK – WPA-PSK – WPA-EAP – WEP-8021X – WPA3-Enterprise_192
    • W przypadku haseł WEP-PSK tylko 40-bitowe (10-cyfrowe) lub 104-bitowe (26-cyfrowe) hasła są obsługiwane.
    • Specyfikacja wskazuje, że hasła WEP-PSK muszą zaczynać się od prefiks 0x. Jednak dla zachowania spójności z platformą Android Framework prefiks nie jest wymagany.
    • Aby ustawić tryb randomizacji MAC, użyj właściwości MACAddressRandomizationMode. ustawionym wartością Hardware lub Automatic. Ta usługa jest obecnie niedostępna w specyfikacji Open Network Configuration (ONC). ale jest dostępne w AMAPI i można je określić podczas konfigurowania sieci Wi-Fi. Dotyczy to tylko Androida w wersji 13 lub nowszej we wszystkich trybach zarządzania.
      • Podczas nawiązywania połączenia z siecią Hardware używa fabrycznego adresu MAC.
      • Automatic sprawia, że platforma Wi-Fi automatycznie określa MAC strategii randomizacji. Może być trwały lub nietrwały. losowo generowane adresy MAC używane przy nawiązywaniu połączenia w sieci.
  • EAP obiekty:
    • ClientCertPattern nie jest obsługiwany.
    • Aplikacja SaveCredentials nie jest obsługiwana, ponieważ dane logowania są zawsze zapisywane.
    • UseSystemCAs nie jest obsługiwany.
    • DomainSuffixMatch jest obsługiwane. Firmowe konfiguracje sieci bezprzewodowych bez tego pola (lub gdy jest ono puste lista jako wartość), są uwzględniane niezabezpieczonych i odrzuconych przez platformę. Wartościami powinny być prawidłowe nazwy domen (np. „example.com”, „subdomena.example.com”).
    • W przypadku opcji ClientCertType obsługiwane są te wartości: Ref, KeyPairAlias
    • W przypadku opcji Inner obsługiwane są te wartości: MSCHAPv2, PAP
    • W przypadku parametru Outer obsługiwane są te wartości: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, PEAP
  • Certificate obiekty:
    • Remove nie jest obsługiwany. Pomiń certyfikat w konfiguracji .
    • TrustBits nie jest obsługiwany.

Przykłady

Wiele sieci Wi-Fi

Ten przykładowy fragment zasad pokazuje 3 sieci Wi-Fi ze skonfigurowanym parametrem dla różnych systemów bezpieczeństwa. Plik JSON Open Network Configuration jest zagnieżdżony w pliku JSON pole openNetworkConfiguration funkcji 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"
      }
    }
  ]
}

Uwierzytelnianie EAP

Ten przykładowy fragment zasady pokazuje sieć bezprzewodową skonfigurowaną za pomocą EAP-TLS uwierzytelnianie. Oprócz obiektu NetworkConfigurations przykład zawiera 2 obiekty Certificates dla certyfikatów klienta i serwera.

"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"
      }
   ]
}

Pole ClientCertType może być również ustawione na KeyPairAlias, a Za pomocą pola ClientCertKeyPairAlias można określić alias zainstalowanej aplikacji (zobacz DevicePolicyManager.installKeyPair ) lub wygenerowanych (zobacz DevicePolicyManager.generateKeyPair ) para kluczy pęku kluczy wykorzystywana do uwierzytelniania Wi-Fi. Na Androidzie 12 i powyżej, para kluczy pęku kluczy ma alias określony jako ClientCertKeyPairAlias jest dozwolony na potrzeby uwierzytelniania w sieciach Wi-Fi i jest jest używany do uwierzytelniania w odpowiedniej sieci Wi-Fi. W wersji starszej niż Android 12 nonComplianceDetail z API_LEVEL o danej przyczynie. O nonComplianceDetail z INVALID_VALUE przyczyny i ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY Jeśli określony alias pary kluczy nie odpowiada obecny klucz. Oto przykładowa zasada:

"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"
      }
   ]
}

Pole Security może zawierać również wartość WPA3-Enterprise_192, która jest protokołem WPA-EAP z siecią skonfigurowaną w trybie 192-bitowym WPA3.

"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"
      }
   ]
}