Ağları yapılandırma

Politikayı bir cihazdaki kablosuz ağları yapılandırmak için kullanabilirsiniz. Android Management API, ilk olarak Chromium projesi kapsamında geliştirilen JSON tabanlı standart bir biçim olan Açık Ağ Yapılandırması'nı kullanır. Açık Ağ Yapılandırması ile ilgili tüm ayrıntılar için spesifikasyona bakın.

Bir politikaya Açık Ağ Yapılandırması eklemek için bir Policy kaynağında openNetworkConfiguration alanını ayarlayın.

Tümüyle yönetilen cihazlarda, isteğe bağlı olarak bir kullanıcının cihazındaki kablosuz ağ ayarlarını manuel olarak yapılandırmasını önlemek için kaynaktaki wifiConfigDisabled değerini true olarak ayarlayabilirsiniz.Policy

Desteklenen özellikler

Android Management API, Açık Ağ Yapılandırması spesifikasyonunun yalnızca bir alt kümesini destekler.

  • Üst düzey nesne:
    • Type belirtilmemeli veya UnencryptedConfiguration olarak ayarlanmalıdır. Politikanın tamamı Android Management API hizmeti içinde şifrelendiğinden, bir politika içinde ağ yapılandırmasının şifrelenmesine gerek yoktur. Buna ek olarak, parolalar ve özel anahtarlar gibi hassas bilgiler için ikinci bir şifreleme katmanı vardır.
  • NetworkConfiguration nesne:
    • GUID, Name, Type ve WiFi desteklenen alanlardır ve zorunludur.
    • ProxySettings isteğe bağlı bir alandır. Bu kullanılırsa yalnızca Manual ve PAC (Proxy Otomatik Yapılandırması) desteklenir.
    • Type, WiFi olarak ayarlanmalıdır. Diğer ağ türleri desteklenmez.
  • WiFi nesne:
    • AllowGatewayARPPolling desteklenmiyor.
    • SignalStrength desteklenmiyor.
    • Security gereklidir ve şu değerler desteklenir: - Yok - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK parolaları için yalnızca 40 bit (10 basamaklı) veya 104 bit (26 basamaklı) parolalar desteklenir.
    • Spesifikasyon, WEP-PSK parolalarının 0x önekiyle başlaması gerektiğini belirtir. Ancak, Android Framework ile tutarlılık için bu önek gerekli değildir.
    • MAC rastgele hale getirme modunu ayarlamak için Hardware veya Automatic değerleriyle ayarlanmış MACAddressRandomizationMode özelliğini kullanın. Bu özellik şu anda Açık Ağ Yapılandırması (ONC) spesifikasyonunda kullanılamıyor ancak AMAPI'de sağlanır ve kablosuz ağlar yapılandırılırken belirtilebilir. Bu durum yalnızca Android 13 ve sonraki sürümler için tüm yönetim modlarında geçerlidir.
      • Hardware, ağa bağlanırken fabrika MAC adresini kullanır.
      • Automatic, kablosuz ağ çerçevesinin MAC rastgele hale getirme stratejisine otomatik olarak karar vermesini sağlar. Bu, ağa bağlanırken kullanılan, rastgele oluşturulmuş MAC adresleri kalıcı veya kalıcı olmayan olabilir.
  • EAP nesne:
    • ClientCertPattern desteklenmiyor.
    • SaveCredentials desteklenmiyor.
    • UseSystemCAs desteklenmiyor.
    • DomainSuffixMatch destekleniyor.
      Bu alanı bulunmayan (veya değer olarak boş bir listeye sahip olan) kurumsal kablosuz yapılandırmaları güvenli olarak kabul edilmez ve platform tarafından reddedilir. Değerler geçerli alan adları olmalıdır (ör. "example.com", "subdomain.example.com").
    • ClientCertType yalnızca Ref değerini destekler
    • Inner için şu değerler desteklenir: MSCHAPv2, PAP
    • Outer için şu değerler desteklenir: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, PEAP
  • Certificate nesne:
    • Remove desteklenmiyor. Bunun yerine yapılandırmadaki 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östermektedir. Open Network Configuration JSON, Policy JSON'nin openNetworkConfiguration alanına yerleştirilmiştir.

"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östermektedir. Örnek, NetworkConfigurations nesnesine ek olarak istemci ve sunucu sertifikaları için iki Certificates nesnesi içerir.

"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"
      }
   ]
}

ClientCertType alanı KeyPairAlias olarak da ayarlanabilir ve ClientCertKeyPairAlias alanı, kablosuz kimlik doğrulaması için kullanılan yüklü bir anahtarın takma adını (bkz. DevicePolicyManager.installKeyPair) veya oluşturulan (bkz. DevicePolicyManager.generateKeyPair) Anahtar Zinciri anahtar çiftini belirtmek için kullanılabilir. Android 12 ve sonraki sürümlerde, takma adı ClientCertKeyPairAlias ile belirtilmiş olan KeyChain anahtar çifti, kablosuz ağların kimlik doğrulaması için verilir ve ilgili kablosuz ağın kimlik doğrulamasında kullanılır. Android 12'nin altında API_LEVEL nedeniyle bir nonComplianceDetail bildirilir. Belirtilen anahtar çifti takma adı mevcut bir anahtara karşılık gelmiyorsa INVALID_VALUE nedeni ve ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY ile ilgili nedeni olan bir nonComplianceDetail bildirilir. Aşağıda örnek bir politika 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"
               ],
               "ServerCARef": "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 olabilir.

"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"
      }
   ]
}