Anda dapat menggunakan kebijakan untuk mengonfigurasi jaringan Wi-Fi di perangkat. Android Management API menggunakan Open Network Configuration, format berbasis JSON standar yang awalnya dikembangkan sebagai bagian dari project Chromium.
Untuk menyertakan Konfigurasi Jaringan Terbuka dalam kebijakan, tetapkan kolom
openNetworkConfiguration pada
resource
Policy.
Untuk perangkat yang dikelola sepenuhnya, Anda dapat secara opsional mencegah pengguna mengonfigurasi setelan Wi-Fi secara manual di perangkat mereka dengan menyetel wifiConfigDisabled ke true di resource Policy.
Fitur yang didukung
Android Management API hanya mendukung sebagian spesifikasi Open Network Configuration.
- Objek tingkat teratas:
Typeharus dihapus atau ditetapkan keUnencryptedConfiguration. Tidak perlu mengenkripsi konfigurasi jaringan dalam kebijakan karena seluruh kebijakan dienkripsi dalam layanan Android Management API. Selain itu, ada lapisan enkripsi kedua untuk informasi sensitif seperti frasa sandi dan kunci pribadi.
- Objek
NetworkConfiguration:GUID,Name,Type, danWiFiadalah kolom yang didukung, dan semuanya wajib diisi.ProxySettingsadalah kolom opsional. Jika digunakan, hanyaManualdanPAC(Proxy Auto-Configuration) yang didukung.Typeharus disetel keWiFi. Jenis jaringan lainnya tidak didukung.
- Objek
WiFi:SSIDdanHexSSIDdidukung dan setidaknya salah satunya harus ada.- Jika
HexSSIDdanSSIDditetapkan, nilainya harus konsisten.
- Jika
HiddenSSIDdidukung.AllowGatewayARPPollingtidak didukung.SignalStrengthtidak didukung.AutoConnect: Kolom ini menentukan apakah jaringan diaktifkan secara otomatis. Setelan ini tidak bergantung pada opsi hubungkan otomatis per jaringan yang tersedia bagi pengguna di setelan Wi-Fi perangkat.- Jika disetel ke
true, jaringan diaktifkan, yang berarti perangkat dapat terhubung ke jaringan tersebut secara otomatis tanpa pemilihan pengguna yang eksplisit di setelan Wi-Fi, kecuali jika pengguna menonaktifkan sambungan otomatis untuk jaringan ini. - Jika disetel ke
false, jaringan akan ditambahkan ke daftar jaringan tersimpan, tetapi tidak diaktifkan. Perangkat tidak terhubung ke jaringan tersebut secara otomatis. Agar perangkat terhubung ke jaringan, pengguna harus memilih jaringan secara manual satu kali dari setelan Wi-Fi. Setelah koneksi manual pertama, jaringan diperlakukan sebagai diaktifkan dan perangkat dapat terhubung ke jaringan tersebut secara otomatis kecuali pengguna menonaktifkan koneksi otomatis untuk jaringan ini.
- Jika disetel ke
Securitywajib diisi 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-PSKharus dimulai dengan awalan0x. Namun, untuk konsistensi dengan Framework Android, awalan ini tidak diperlukan. - Untuk menyetel mode pengacakan MAC
, gunakan properti
MACAddressRandomizationModeyang disetel dengan nilaiHardwareatauAutomatic. Properti ini tidak tersedia dalam spesifikasi Open Network Configuration (ONC) tetapi disediakan di AMAPI dan dapat ditentukan saat mengonfigurasi jaringan Wi-Fi. Hal ini hanya berlaku untuk Android 13+ pada semua mode pengelolaan.Hardwaremenggunakan alamat MAC pabrik saat terhubung ke jaringan.Automaticmemungkinkan framework Wi-Fi secara otomatis memutuskan strategi perandoman MAC. Alamat MAC ini dapat berupa alamat MAC persisten atau non-persisten yang dibuat secara acak dan digunakan saat terhubung ke jaringan.
- Objek
EAP: ClientCertPatterntidak didukung.SaveCredentialstidak didukung karena kredensial selalu disimpan.UseSystemCAstidak didukung.ServerCARefdidukung.ServerCARefsdidukung.DomainSuffixMatchdidukung. 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").- 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:Removetidak didukung. Hapus sertifikat dalam konfigurasi.TrustBitstidak didukung.
Contoh
Beberapa jaringan Wi-Fi
Fragmen kebijakan contoh ini menunjukkan tiga jaringan Wi-Fi yang dikonfigurasi dengan
skema keamanan yang berbeda. JSON Konfigurasi Jaringan Terbuka disarangkan dalam
kolom openNetworkConfiguration dari
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
Fragmen kebijakan contoh ini menunjukkan jaringan nirkabel yang dikonfigurasi dengan autentikasi EAP-TLS. Selain objek NetworkConfigurations, contoh ini mencakup 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"
],
"ServerCARefs": ["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 disetel ke KeyPairAlias, dan kolom
ClientCertKeyPairAlias dapat digunakan untuk menentukan alias pasangan kunci KeyChain yang diinstal
(lihat
DevicePolicyManager.installKeyPair
)
atau dibuat (lihat
DevicePolicyManager.generateKeyPair
) yang digunakan untuk autentikasi Wi-Fi. Untuk Android 12 dan yang lebih baru, 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. Sebelum Android 12,
nonComplianceDetail
dengan
API_LEVEL
alasan dilaporkan. 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 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"
],
"ServerCARefs": ["abc123"],
"ClientCertType": "KeyPairAlias",
"ClientCertKeyPairAlias": "key-alias"
},
"Security": "WPA-EAP"
}
}
],
"Certificates": [
{
"GUID": "abc123",
"Type": "Server",
"X509": "TWFuIGlzIGRpc3Rpbmd1a"
}
]
}Kolom Security juga dapat berupa WPA3-Enterprise_192, yaitu jaringan WPA-EAP
yang dikonfigurasi dengan mode 192-bit WPA3.
"openNetworkConfiguration": {
"Type": "UnencryptedConfiguration",
"NetworkConfigurations": [
{
"Type": "WiFi",
"Name": "Example A",
"GUID": "A",
"WiFi": {
"SSID": "Example A",
"EAP": {
"Outer": "EAP-TLS",
"Identity": "example",
"ServerCARefs": ["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"
}
]
}