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
Policy
kaynağında openNetworkConfiguration
alanını 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
: Bu alan, ağın otomatik olarak etkinleştirilip etkinleştirilmeyeceğini belirler. Bu ayar, cihazın Wi-Fi ayarlarında kullanıcıların ağ başına kullanabildiği otomatik bağlanma seçeneğinden bağımsızdır.true
olarak ayarlanırsa ağ etkinleştirilir. Bu durumda, kullanıcı bu ağ için otomatik bağlantıyı devre dışı bırakmadığı sürece cihaz, kablosuz ağ ayarlarında açıkça kullanıcı seçimi yapılmasına gerek kalmadan ağa otomatik olarak bağlanabilir.false
olarak ayarlanırsa ağ, kayıtlı ağlar listesine eklenir ancak etkinleştirilmez. Cihaz otomatik olarak bağlanmaz. Cihazın ağa bağlanması için kullanıcının kablosuz ayarlarından ağı bir kez manuel olarak seçmesi gerekir. İlk manuel bağlantıdan sonra ağ etkin olarak kabul edilir ve kullanıcı bu ağ için otomatik bağlantıyı devre dışı bırakmadığı sürece cihaz otomatik olarak bağlanabilir.
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ğiyle birlikteHardware
veyaAutomatic
değerlerini kullanın. Bu özellik, Open Network Configuration (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ında, farklı güvenlik şemalarıyla yapılandırılmış üç kablosuz ağ gösterilmektedir. 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 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" } ] }