Ağları yapılandırma

Politikayı kullanarak cihazdaki kablosuz ağları yapılandırabilirsiniz. Android Management API, başlangıçta Chromium projesi kapsamında geliştirilmiş standart bir JSON tabanlı biçim olan Open Network Configuration'ı 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 Policy kaynağındaki openNetworkConfiguration alanını ayarlayın.

Tamamen yönetilen cihazlarda, kullanıcının cihazındaki kablosuz ağ ayarlarını manuel olarak yapılandırmasını isteğe bağlı olarak engellemek için Policy kaynağında wifiConfigDisabled değerini true olarak ayarlayabilirsiniz.

Desteklenen özellikler

Android Management API, Open Network Configuration spesifikasyonunun yalnızca bir alt kümesini destekler.

  • Üst düzey nesne:
    • Type atlanmalı veya UnencryptedConfiguration olarak ayarlanmalıdır. Politikanın tamamı Android Management API hizmetinde şifrelendiğinden, politikadaki ağ yapılandırmasının şifrelenmesi gerekmez. Ayrıca, şifre ve özel anahtar gibi hassas bilgiler için ikinci bir şifreleme katmanı vardır.
  • NetworkConfiguration nesneleri:
    • GUID, Name, Type ve WiFi desteklenen alanlardır ve tümü gereklidir.
    • ProxySettings isteğe bağlı bir alandır. Bu yöntem 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 nesneleri:
    • SSID ve HexSSID desteklenir ve bunlardan en az biri bulunmalıdır.
      • Hem HexSSID hem de SSID ayarlanmışsa değerler tutarlı olmalıdır.
    • HiddenSSID desteklenir.
    • AllowGatewayARPPolling desteklenmiyor.
    • SignalStrength desteklenmiyor.
    • Security zorunludur ve aşağıdaki değerler desteklenir: - Yok - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK şifre anahtarları için yalnızca 40 bit (10 haneli) veya 104 bit (26 haneli) şifre anahtarları desteklenir.
    • Spesifikasyonda, WEP-PSK şifre anahtarlarının 0x ön ekiyle başlaması gerektiği belirtilmektedir. Ancak Android Framework ile tutarlılık sağlamak için bu ön ek gerekli değildir.
    • MAC rastgeleleştirme modunu ayarlamak için Hardware veya Automatic değerleriyle ayarlanmış MACAddressRandomizationMode mülkünü kullanın. Bu özellik şu anda Açık Ağ Yapılandırması (ONC) spesifikasyonunda kullanılamamaktadır ancak AMAPI'de sağlanmakta ve kablosuz ağlar yapılandırılırken belirtilebilir. Bu durum, yalnızca tüm yönetim modlarında Android 13 ve sonraki sürümler için geçerlidir.
      • Hardware, ağa bağlanırken fabrika MAC adresini kullanır.
      • Automatic, MAC rastgeleleştirme stratejisine kablosuz ağ çerçevesinin 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 nesneleri:
    • ClientCertPattern desteklenmiyor.
    • Kimlik bilgileri her zaman kaydedildiği için SaveCredentials desteklenmez.
    • UseSystemCAs desteklenmiyor.
    • ServerCARef desteklenir.
    • ServerCARefs desteklenir.
    • DomainSuffixMatch desteklenir. Bu alanı içermeyen (veya değeri boş liste olan) kurumsal kablosuz yapılandırmalar güvenli değildir ve platform tarafından reddedilir. Değerler geçerli alan adları olmalıdır (ör. "example.com", "altalan.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 aşağıdaki değerler desteklenir: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, PEAP
  • Certificate nesneleri:
    • Remove desteklenmiyor. Bunun yerine yapılandırmada sertifikayı çıkarı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ında, EAP-TLS kimlik doğrulamasıyla yapılandırılan bir kablosuz ağ gösterilmektedir. Örnekte, NetworkConfigurations nesnesine ek olarak istemci ve sunucu sertifikaları için iki Certificates nesnesi de yer alı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. ClientCertKeyPairAlias alanı, kablosuz kimlik doğrulaması için kullanılan KeyChain anahtar çiftinin takılı (DevicePolicyManager.installKeyPair bölümüne bakın) veya oluşturulmuş (DevicePolicyManager.generateKeyPair bölümüne bakın) 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ğrulaması için verilir ve ilgili kablosuz ağda kimlik doğrulaması için kullanılır. Android 12'nin altında, API_LEVEL ile başlayan bir nonComplianceDetail bildirilir. Belirtilen anahtar çifti takma adı mevcut bir anahtara karşılık gelmiyorsa INVALID_VALUE ile başlayan ve ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY ile biten bir nonComplianceDetail 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 modu ile 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",
               "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"
      }
   ]
}