Mengonfigurasi jaringan

Anda dapat menggunakan kebijakan untuk mengonfigurasi jaringan Wi-Fi di perangkat. Android Management API menggunakan Konfigurasi Jaringan Terbuka, yaitu format berbasis JSON standar yang awalnya dikembangkan sebagai bagian dari proyek Chromium. Lihat spesifikasi untuk detail selengkapnya tentang Konfigurasi Jaringan Terbuka.

Untuk menyertakan Konfigurasi Jaringan Terbuka dalam kebijakan, setel kebijakan Kolom openNetworkConfiguration pada Policy resource Anda

Untuk perangkat terkelola sepenuhnya, Anda dapat secara opsional mencegah pengguna mengonfigurasi setelan Wi-Fi di perangkat mereka dengan menyetel wifiConfigDisabled ke true di Policy resource Anda

Fitur yang didukung

Android Management API hanya mendukung subset Jaringan Terbuka Spesifikasi konfigurasi.

  • Objek tingkat teratas:
    • Type harus dihilangkan atau ditetapkan ke UnencryptedConfiguration. Tidak ada mengenkripsi konfigurasi jaringan dalam suatu kebijakan karena seluruh kebijakan dienkripsi dalam layanan Android Management API. Selain itu, ada lapisan enkripsi kedua untuk informasi seperti frasa sandi dan kunci pribadi.
  • Objek NetworkConfiguration:
    • GUID, Name, Type, dan WiFi adalah kolom yang didukung, dan semuanya wajib diisi.
    • ProxySettings adalah kolom opsional. Jika digunakan, hanya Manual dan PAC (Konfigurasi Otomatis Proxy) didukung.
    • Type harus ditetapkan ke WiFi. Jenis jaringan lainnya tidak didukung.
  • Objek WiFi:
    • AllowGatewayARPPolling tidak didukung.
    • SignalStrength tidak didukung.
    • Security diperlukan dan nilai berikut didukung: - Tidak ada - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • Untuk frasa sandi WEP-PSK, hanya 40-bit (10 digit) atau 104-bit (26 digit) frasa sandi didukung.
    • Spesifikasi menyatakan bahwa frasa sandi WEP-PSK harus diawali dengan awalan 0x. Namun, agar konsisten dengan Framework Android, awalan tidak diperlukan.
    • Untuk menetapkan mode pengacakan MAC, gunakan properti MACAddressRandomizationMode ditetapkan dengan nilai Hardware atau Automatic. Properti ini saat ini tidak tersedia di spesifikasi Konfigurasi Jaringan Terbuka (ONC) tetapi disediakan dalam AMAPI dan dapat ditentukan saat mengonfigurasi jaringan WiFi. Hal ini hanya berlaku untuk Android 13+ di semua mode pengelolaan.
      • Hardware menggunakan alamat MAC pabrik saat terhubung ke jaringan.
      • Automatic memungkinkan framework Wi-Fi menentukan MAC secara otomatis strategi pengacakan. Hal ini dapat bersifat persisten atau tidak tetap alamat MAC yang dibuat secara acak yang digunakan saat menyambungkan ke jaringan.
  • Objek EAP:
    • ClientCertPattern tidak didukung.
    • SaveCredentials tidak didukung.
    • UseSystemCAs tidak didukung.
    • DomainSuffixMatch didukung.
      Konfigurasi nirkabel perusahaan tanpa kolom ini (atau dengan kolom kosong {i>list as value<i}) dianggap tidak aman dan ditolak oleh platform. Nilai harus berupa nama domain yang valid (misalnya "example.com", "subdomain.example.com").
    • Nilai berikut didukung untuk ClientCertType: Ref, KeyPairAlias
    • Nilai berikut didukung untuk Inner: MSCHAPv2, PAP
    • Nilai berikut didukung untuk Outer: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, PEAP
  • Objek Certificate:
    • Remove tidak didukung. Menghapus sertifikat dalam konfigurasi sebagai gantinya.
    • TrustBits tidak didukung.

Contoh

Beberapa jaringan Wi-Fi

Contoh fragmen kebijakan ini menunjukkan tiga jaringan Wi-Fi yang dikonfigurasi dengan skema keamanan yang berbeda. JSON Konfigurasi Jaringan Terbuka berada di dalam kolom openNetworkConfiguration dari kolom 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"
   }
 }]
}

Autentikasi EAP

Contoh fragmen kebijakan ini menunjukkan jaringan nirkabel yang dikonfigurasi dengan EAP-TLS autentikasi. Selain objek NetworkConfigurations, contoh menyertakan dua objek Certificates untuk sertifikat klien dan 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"
      }
   ]
}

Kolom ClientCertType juga dapat ditetapkan ke KeyPairAlias, dan kolom Kolom ClientCertKeyPairAlias dapat digunakan untuk menentukan alias dari (lihat DevicePolicyManager.installKeyPair ) atau dibuat (lihat DevicePolicyManager.generateKeyPair ) Pasangan kunci KeyChain yang digunakan untuk autentikasi Wi-Fi. Di Android 12 dan di atas, pasangan kunci KeyChain yang memiliki alias yang ditentukan dengan ClientCertKeyPairAlias diberikan untuk autentikasi jaringan Wi-Fi dan digunakan untuk otentikasi ke jaringan Wi-Fi yang sesuai. Di bawah Android 12, nonComplianceDetail dengan API_LEVEL alasan dilaporkan. J nonComplianceDetail dengan INVALID_VALUE alasan dan ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY alasan spesifik dilaporkan jika alias pasangan kunci yang ditentukan tidak sesuai dengan kunci yang sudah ada. Berikut adalah contoh kebijakan:

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

Kolom Security juga dapat berupa WPA3-Enterprise_192 yang merupakan WPA-EAP jaringan yang dikonfigurasi dengan mode WPA3 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"
      }
   ]
}