नेटवर्क कॉन्फ़िगर करें

किसी डिवाइस पर वाई-फ़ाई नेटवर्क कॉन्फ़िगर करने के लिए, नीति का इस्तेमाल किया जा सकता है. Android Management API, 'ओपन नेटवर्क कॉन्फ़िगरेशन' का इस्तेमाल करता है. यह JSON पर आधारित एक स्टैंडर्ड फ़ॉर्मैट है, जिसे मूल रूप से Chromium प्रोजेक्ट के हिस्से के तौर पर बनाया गया था. ओपन नेटवर्क कॉन्फ़िगरेशन के बारे में पूरी जानकारी पाने के लिए, खास जानकारी देखें.

किसी नीति में ओपन नेटवर्क कॉन्फ़िगरेशन शामिल करने के लिए, openNetworkConfiguration फ़ील्ड को Policy संसाधन पर सेट करें.

पूरी तरह से मैनेज किए जा रहे डिवाइसों के लिए, उपयोगकर्ता को उनके डिवाइस पर वाई-फ़ाई सेटिंग को मैन्युअल तरीके से कॉन्फ़िगर करने से रोका जा सकता है. इसके लिए, Policy संसाधन में wifiConfigDisabled को true पर सेट करें.

इस्तेमाल की जा सकने वाली सुविधाएं

Android Management API सिर्फ़ Open Network कॉन्फ़िगरेशन की खास बातों के किसी सबसेट के साथ काम करता है.

  • टॉप लेवल ऑब्जेक्ट:
    • Type को छोड़ देना चाहिए या UnencryptedConfiguration पर सेट करना चाहिए. किसी नीति में दिए गए नेटवर्क कॉन्फ़िगरेशन को एन्क्रिप्ट (सुरक्षित) करने की ज़रूरत नहीं होती, क्योंकि पूरी नीति Android Management API सेवा में एन्क्रिप्ट (सुरक्षित) होती है. इसके अलावा, संवेदनशील जानकारी के लिए एन्क्रिप्शन की एक दूसरी लेयर होती है जैसे कि लंबा पासवर्ड और निजी कुंजियां.
  • NetworkConfiguration ऑब्जेक्ट:
    • GUID, Name, Type, और WiFi फ़ील्ड का इस्तेमाल किया जा सकता है. ये सभी ज़रूरी हैं.
    • ProxySettings फ़ील्ड भरना ज़रूरी नहीं है. अगर इसका इस्तेमाल किया जाता है, तो सिर्फ़ Manual और PAC (प्रॉक्सी ऑटो-कॉन्फ़िगरेशन) के साथ काम करता है.
    • Type को WiFi पर सेट करना ज़रूरी है. अन्य तरह के नेटवर्क काम नहीं करते.
  • WiFi ऑब्जेक्ट:
    • AllowGatewayARPPolling का इस्तेमाल नहीं किया जा सकता।
    • SignalStrength का इस्तेमाल नहीं किया जा सकता।
    • Security ज़रूरी है और इन वैल्यू का इस्तेमाल किया जा सकता है: - कोई नहीं - WEP-PSK - WPA-PSK - WPA-AP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK लंबे पासवर्ड के लिए, सिर्फ़ 40-बिट (10 अंकों) या 104-बिट (26 अंकों वाले) लंबे पासवर्ड इस्तेमाल किए जा सकते हैं.
    • स्पेसिफ़िकेशन में बताया गया है कि WEP-PSK लंबे पासवर्ड, 0x प्रीफ़िक्स से शुरू होने चाहिए. हालांकि, Android फ़्रेमवर्क के साथ काम करने के लिए, इस प्रीफ़िक्स की ज़रूरत नहीं है.
    • एमएसी रैंडमाइज़ेशन मोड सेट करने के लिए, Hardware या Automatic वैल्यू के साथ सेट की गई MACAddressRandomizationMode प्रॉपर्टी का इस्तेमाल करें. यह प्रॉपर्टी फ़िलहाल ओपन नेटवर्क कॉन्फ़िगरेशन (ONC) स्पेसिफ़िकेशन में उपलब्ध नहीं है, लेकिन यह AMAPI में उपलब्ध है. साथ ही, इसे वाई-फ़ाई नेटवर्क कॉन्फ़िगर करते समय तय किया जा सकता है. यह सेटिंग, सभी मैनेजमेंट मोड में सिर्फ़ Android 13 और इसके बाद के वर्शन पर लागू होती है.
      • नेटवर्क से कनेक्ट करने पर Hardware, फ़ैक्ट्री MAC पते का इस्तेमाल करता है.
      • Automatic की मदद से वाई-फ़ाई फ़्रेमवर्क, एमएसी रैंडमाइज़ेशन की रणनीति अपने-आप तय कर लेता है. यह नेटवर्क से कनेक्ट करते समय इस्तेमाल किए जाने वाले, नियमित तौर पर जनरेट हुए या लगातार न दिखने वाले MAC पते हो सकते हैं.
  • EAP ऑब्जेक्ट:
    • ClientCertPattern का इस्तेमाल नहीं किया जा सकता।
    • SaveCredentials का इस्तेमाल नहीं किया जा सकता।
    • UseSystemCAs का इस्तेमाल नहीं किया जा सकता।
    • DomainSuffixMatch का इस्तेमाल किया जा सकता है.
      एंटरप्राइज़ वायरलेस कॉन्फ़िगरेशन के लिए, इस फ़ील्ड या वैल्यू के तौर पर खाली सूची वाले कॉन्फ़िगरेशन को असुरक्षित माना जाता है और प्लैटफ़ॉर्म ने अस्वीकार कर दिया है. वैल्यू, मान्य डोमेन नेम होने चाहिए (जैसे कि "example.com", "subdomain.example.com").
    • ClientCertType के साथ सिर्फ़ Ref वैल्यू इस्तेमाल की जा सकती है
    • Inner के लिए ये वैल्यू इस्तेमाल की जा सकती हैं: MSCHAPv2, PAP
    • Outer के लिए ये वैल्यू इस्तेमाल की जा सकती हैं: EAP-AKA, EAP-TLS, EAP-TTLS, EAP-SIM, और PEAP
  • Certificate ऑब्जेक्ट:
    • Remove का इस्तेमाल नहीं किया जा सकता। इसके बजाय कॉन्फ़िगरेशन में सर्टिफ़िकेट को छोड़ दें.
    • TrustBits का इस्तेमाल नहीं किया जा सकता।

उदाहरण

एक से ज़्यादा वाई-फ़ाई नेटवर्क

नीति का यह उदाहरण, अलग-अलग सुरक्षा स्कीम से कॉन्फ़िगर किए गए तीन वाई-फ़ाई नेटवर्क दिखाता है. ओपन नेटवर्क कॉन्फ़िगरेशन JSON, Policy JSON के openNetworkConfiguration फ़ील्ड में नेस्ट किया गया है.

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

ईएपी की पुष्टि

नीति का यह उदाहरण, ईएपी-टीएलएस की पुष्टि करने वाले वायरलेस नेटवर्क को दिखाता है. इस उदाहरण में, NetworkConfigurations ऑब्जेक्ट के अलावा, क्लाइंट और सर्वर सर्टिफ़िकेट के लिए दो Certificates ऑब्जेक्ट शामिल हैं.

"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 फ़ील्ड को KeyPairAlias पर भी सेट किया जा सकता है. साथ ही, ClientCertKeyPairAlias फ़ील्ड का इस्तेमाल, इंस्टॉल किए गए (DevicePolicyManager.installKeyPair देखें) या जनरेट किए गए (DevicePolicyManager.generateKeyPair को देखें) KeyChain कुंजी के जोड़े के उपनाम की जानकारी देने के लिए किया जा सकता है. इसका इस्तेमाल वाई-फ़ाई की पुष्टि करने के लिए किया जाता है. Android 12 और इसके बाद वाले वर्शन पर, ClientCertKeyPairAlias के साथ बताए गए KeyChain कुंजी जोड़े को वाई-फ़ाई नेटवर्क की पुष्टि करने की अनुमति दी जाती है. साथ ही, इसका इस्तेमाल इससे जुड़े वाई-फ़ाई नेटवर्क की पुष्टि करने के लिए किया जाता है. Android 12 के नीचे, API_LEVEL वाले nonComplianceDetail की वजह बताई गई है. अगर कुंजी जोड़ने वाला उपनाम, मौजूदा कुंजी से मेल नहीं खाता है, तो nonComplianceDetail INVALID_VALUE वजह और ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY इसकी खास वजह रिपोर्ट की जाती है. नीति का एक उदाहरण नीचे दिया गया है:

"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 फ़ील्ड WPA3-Enterprise_192 भी हो सकता है. यह WPA-ईएपी नेटवर्क होता है, जिसे WPA3 192-बिट मोड से कॉन्फ़िगर किया जाता है.

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