Ağları yapılandırma

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ı veya UnencryptedConfiguration 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 ve WiFi desteklenen alanlardır ve tümü zorunludur.
    • ProxySettings isteğe bağlı bir alandır. Bu özellik kullanılıyorsa yalnızca Manual ve PAC (Proxy Otomatik Yapılandırması) desteklenir.
    • Type, WiFi olarak ayarlanmalıdır. Diğer ağ türleri desteklenmez.
  • WiFi nesneleri:
    • SSID ve HexSSID desteklenir ve bunlardan en az biri bulunmalıdır.
      • Hem HexSSID hem de SSID ayarlanırsa değerler tutarlı olmalıdır.
    • 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ş ifadelerinin 0x ö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ğini Hardware veya Automatic 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"
      }
   ]
}