Bir cihazda kablosuz ağları yapılandırmak için politikayı kullanabilirsiniz. Android Management API, başlangıçta Chromium projesi kapsamında geliştirilmiş olan standart bir JSON tabanlı biçim olan Açık Ağ Yapılandırması'nı kullanır.
Bir politikaya Açık Ağ Yapılandırması eklemek için
openNetworkConfiguration
alanını bir
Policy
kaynağında ayarlayın.
Tamamen yönetilen cihazlarda, Policy
kaynağında wifiConfigDisabled
değerini true
olarak ayarlayarak kullanıcının cihazında kablosuz ağ ayarlarını manuel olarak yapılandırmasını isteğe bağlı olarak engelleyebilirsiniz.
Desteklenen özellikler
Android Management API, Open Network Configuration spesifikasyonunun yalnızca bir alt kümesini destekler.
- En üst düzey nesne:
Type
atlanmalı veyaUnencryptedConfiguration
olarak ayarlanmalıdır. Android Management API hizmetinde politikanın tamamı şifrelendiği için politika içindeki ağ yapılandırmasının şifrelenmesine gerek yoktur. Ayrıca, hassas bilgiler (ör. geçiş ifadeleri ve özel anahtarlar) için ikinci bir şifreleme katmanı bulunur.
NetworkConfiguration
nesneleri:GUID
,Name
,Type
veWiFi
desteklenen alanlardır ve tümü zorunludur.ProxySettings
isteğe bağlı bir alandır. Bu özellik kullanılıyorsa yalnızcaManual
vePAC
(Proxy Otomatik Yapılandırması) desteklenir.Type
,WiFi
olarak ayarlanmalıdır. Diğer ağ türleri desteklenmez.
WiFi
nesneleri:SSID
veHexSSID
desteklenir ve bunlardan en az biri bulunmalıdır.- Hem
HexSSID
hem deSSID
ayarlanırsa değerler tutarlı olmalıdır.
- Hem
HiddenSSID
desteklenir.AllowGatewayARPPolling
desteklenmiyor.SignalStrength
desteklenmiyor.AutoConnect
Etkinleştirilirse bu ağ, ağ seçimi sırasında bağlanılacak olası bir aday olarak kabul edilir.Security
gereklidir ve aşağıdaki değerler desteklenir: - Yok - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
WEP-PSK
geçiş ifadeleri için yalnızca 40 bit (10 haneli) veya 104 bit (26 haneli) geçiş ifadeleri desteklenir.- Şartnamede,
WEP-PSK
geçiş ifadelerinin0x
önekiyle başlaması gerektiği belirtilmektedir. Ancak Android Framework ile tutarlılık için bu önek gerekli değildir. - MAC rastgeleleştirme
modunu
ayarlamak için
MACAddressRandomizationMode
özelliğiniHardware
veyaAutomatic
değerleriyle birlikte kullanın. Bu özellik, Açık Ağ Yapılandırması (ONC) spesifikasyonunda kullanılamaz ancak AMAPI'de sağlanır ve kablosuz ağlar yapılandırılırken belirtilebilir. Bu yalnızca tüm yönetim modlarında Android 13 ve sonraki sürümlerde geçerlidir.Hardware
ağa bağlanırken fabrika MAC adresini kullanır.Automatic
, Kablosuz ağ çerçevesinin MAC rastgeleleştirme stratejisine otomatik olarak karar vermesine olanak tanır. Bu, ağa bağlanırken kullanılan kalıcı veya kalıcı olmayan rastgele oluşturulmuş MAC adresleri olabilir.
EAP
nesne:ClientCertPattern
desteklenmiyor.- Kimlik bilgileri her zaman kaydedildiğinden
SaveCredentials
desteklenmez. UseSystemCAs
desteklenmiyor.ServerCARef
desteklenir.ServerCARefs
desteklenir.DomainSuffixMatch
desteklenir. Bu alanın olmadığı (veya değer olarak boş bir liste içeren) kurumsal kablosuz yapılandırmalar güvenli kabul edilmez ve platform tarafından reddedilir. Değerler geçerli alan adları olmalıdır (ör. "example.com", "subdomain.example.com").ClientCertType
için aşağıdaki değerler desteklenir:Ref
,KeyPairAlias
Inner
için aşağıdaki değerler desteklenir:MSCHAPv2
,PAP
Outer
için şu değerler desteklenir:EAP-AKA
,EAP-TLS
,EAP-TTLS
,EAP-SIM
,PEAP
Certificate
nesneleri:Remove
desteklenmiyor. Bunun yerine yapılandırmada sertifikayı atlayın.TrustBits
desteklenmiyor.
Örnekler
Birden fazla kablosuz ağ
Bu örnek politika parçası, farklı güvenlik şemalarıyla yapılandırılmış üç kablosuz ağı gösterir. Açık Ağ Yapılandırması JSON'u, Policy
JSON'unun openNetworkConfiguration
alanına yerleştirilir.
"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" } } ] }
EAP kimlik doğrulaması
Bu örnek politika parçası, EAP-TLS kimlik doğrulamasıyla yapılandırılmış bir kablosuz ağı gösterir. Örnekte, NetworkConfigurations
nesnesine ek olarak istemci ve sunucu sertifikaları için iki Certificates
nesnesi yer almaktadır.
"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" } ] }
ClientCertType
alanı KeyPairAlias
olarak da ayarlanabilir ve ClientCertKeyPairAlias
alanı, kablosuz kimlik doğrulama için kullanılan yüklü (bkz. DevicePolicyManager.installKeyPair
) veya oluşturulmuş (bkz. DevicePolicyManager.generateKeyPair
) KeyChain anahtar çiftinin takma adını belirtmek için kullanılabilir. Android 12 ve sonraki sürümlerde, ClientCertKeyPairAlias
ile belirtilen takma ada sahip KeyChain anahtar çifti, kablosuz ağlarda kimlik doğrulama için verilir ve ilgili kablosuz ağda kimlik doğrulama için kullanılır. Android 12'den önce,
nonComplianceDetail
API_LEVEL
nedeniyle bildirilir. Belirtilen anahtar çifti diğer adı mevcut bir anahtarla eşleşmiyorsa nonComplianceDetail
INVALID_VALUE
nedeniyle ve ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
nedeniyle ilgili hata bildirilir. Aşağıda bir politika örneği verilmiştir:
"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" } ] }
Security
alanı, WPA3 192 bit moduyla yapılandırılmış bir WPA-EAP ağı olan WPA3-Enterprise_192
da olabilir.
"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" } ] }