Anda dapat menggunakan kebijakan untuk mengonfigurasi jaringan Wi-Fi di perangkat. Android Management API menggunakan Konfigurasi Jaringan Terbuka, format berbasis JSON standar yang awalnya dikembangkan sebagai bagian dari project Chromium. Lihat spesifikasi untuk mengetahui detail selengkapnya tentang Konfigurasi Jaringan Terbuka.
Untuk menyertakan Konfigurasi Jaringan Terbuka dalam kebijakan, tetapkan
kolom openNetworkConfiguration
pada
resource
Policy
.
Untuk perangkat terkelola sepenuhnya, Anda dapat secara opsional mencegah pengguna
mengonfigurasi setelan Wi-Fi secara manual di perangkat dengan menyetel wifiConfigDisabled
ke
true
di
resource
Policy
.
Fitur yang didukung
Android Management API hanya mendukung subset spesifikasi Konfigurasi Jaringan Terbuka.
- Objek tingkat atas:
Type
harus dihapus atau ditetapkan keUnencryptedConfiguration
. Tidak perlu mengenkripsi konfigurasi jaringan dalam kebijakan karena seluruh kebijakan dienkripsi dalam layanan Android Management API. Selain itu, terdapat enkripsi lapisan kedua untuk informasi sensitif seperti frasa sandi dan kunci pribadi.
- Objek
NetworkConfiguration
:GUID
,Name
,Type
, danWiFi
adalah kolom yang didukung, dan semuanya wajib ada.ProxySettings
adalah kolom opsional. Jika ini digunakan, hanyaManual
danPAC
(Konfigurasi Otomatis Proxy) yang didukung.Type
harus ditetapkan keWiFi
. Jenis jaringan lain tidak didukung.
- Objek
WiFi
:AllowGatewayARPPolling
tidak didukung.SignalStrength
tidak didukung.Security
wajib ada dan nilai berikut didukung: - Tidak ada - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192- Untuk frasa sandi
WEP-PSK
, hanya frasa sandi 40-bit (10 digit) atau 104-bit (26 digit) yang didukung. - Spesifikasi menyatakan bahwa frasa sandi
WEP-PSK
harus diawali dengan awalan0x
. Namun, agar konsisten dengan Framework Android, awalan ini tidak diperlukan. - Untuk menetapkan mode pengacakan MAC, gunakan properti
MACAddressRandomizationMode
yang ditetapkan dengan nilaiHardware
atauAutomatic
. Properti ini saat ini tidak tersedia dalam spesifikasi Konfigurasi Jaringan Terbuka (ONC), tetapi disediakan di AMAPI dan dapat ditentukan saat mengonfigurasi jaringan Wi-Fi. Ini hanya berlaku untuk Android 13 atau yang lebih baru di semua mode pengelolaan.Hardware
menggunakan alamat MAC pabrik saat terhubung ke jaringan.Automatic
memungkinkan framework Wi-Fi menentukan strategi pengacakan MAC secara otomatis. Alamat ini dapat berupa alamat MAC yang dihasilkan secara acak persisten atau non-persisten yang digunakan saat terhubung ke jaringan.
- Objek
EAP
:ClientCertPattern
tidak didukung.SaveCredentials
tidak didukung.UseSystemCAs
tidak didukung.DomainSuffixMatch
didukung.
Konfigurasi nirkabel perusahaan tanpa kolom ini (atau dengan daftar kosong sebagai nilai) dianggap tidak aman dan ditolak oleh platform. Nilai harus berupa nama domain yang valid (misalnya, "example.com", "subdomain.example.com").ClientCertType
hanya mendukung nilaiRef
- 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. Hapus 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 disusun bertingkat dalam kolom openNetworkConfiguration
pada 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" } }] }
Autentikasi EAP
Contoh fragmen kebijakan ini menunjukkan jaringan nirkabel yang dikonfigurasi dengan autentikasi
EAP-TLS. Selain objek NetworkConfigurations
, contoh ini juga 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
ClientCertKeyPairAlias
dapat digunakan untuk menentukan alias dari pasangan kunci yang diinstal
(lihat
DevicePolicyManager.installKeyPair
)
atau pasangan kunci KeyChain yang dihasilkan (lihat
DevicePolicyManager.generateKeyPair
) yang digunakan untuk autentikasi Wi-Fi. Di Android 12 dan
yang lebih tinggi, pasangan kunci KeyChain yang memiliki alias yang ditentukan dengan
ClientCertKeyPairAlias
diberikan untuk autentikasi ke jaringan Wi-Fi dan
digunakan untuk autentikasi ke jaringan Wi-Fi yang sesuai. Di bawah Android 12, nonComplianceDetail
dengan
alasan API_LEVEL
dilaporkan. nonComplianceDetail
dengan
alasan INVALID_VALUE
dan
alasan khusus ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
dilaporkan jika alias pasangan kunci yang ditentukan tidak sesuai dengan
kunci yang 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 jaringan WPA-EAP
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" } ] }