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:
Typeatlanmalı veyaUnencryptedConfigurationolarak 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.
NetworkConfigurationnesneleri:GUID,Name,TypeveWiFidesteklenen alanlardır ve tümü zorunludur.ProxySettingsisteğe bağlı bir alandır. Bu özellik kullanılıyorsa yalnızcaManualvePAC(Proxy Otomatik Yapılandırması) desteklenir.Type,WiFiolarak ayarlanmalıdır. Diğer ağ türleri desteklenmez.
WiFinesneleri:SSIDveHexSSIDdesteklenir ve bunlardan en az biri bulunmalıdır.- Hem
HexSSIDhem deSSIDayarlanırsa değerler tutarlı olmalıdır.
- Hem
HiddenSSIDdesteklenir.AllowGatewayARPPollingdesteklenmiyor.SignalStrengthdesteklenmiyor.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.trueolarak 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.falseolarak 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.
Securitygereklidir ve aşağıdaki değerler desteklenir: - Yok - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
WEP-PSKgeçiş ifadeleri için yalnızca 40 bit (10 haneli) veya 104 bit (26 haneli) geçiş ifadeleri desteklenir.- Şartnamede,
WEP-PSKgeç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 birlikteHardwareveyaAutomaticdeğ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.Hardwareağ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.
EAPnesne:ClientCertPatterndesteklenmiyor.- Kimlik bilgileri her zaman kaydedildiğinden
SaveCredentialsdesteklenmez. UseSystemCAsdesteklenmiyor.ServerCARefdesteklenir.ServerCARefsdesteklenir.DomainSuffixMatchdesteklenir. 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").ClientCertTypeiçin aşağıdaki değerler desteklenir:Ref,KeyPairAliasInneriçin aşağıdaki değerler desteklenir:MSCHAPv2,PAPOuteriçin şu değerler desteklenir:EAP-AKA,EAP-TLS,EAP-TTLS,EAP-SIM,PEAPCertificatenesneleri:Removedesteklenmiyor. Bunun yerine yapılandırmada sertifikayı atlayın.TrustBitsdesteklenmiyor.
Ö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"
}
]
}