किसी डिवाइस पर वाई-फ़ाई नेटवर्क कॉन्फ़िगर करने के लिए, नीति का इस्तेमाल किया जा सकता है. Android Management API, ओपन नेटवर्क कॉन्फ़िगरेशन का इस्तेमाल करता है. यह JSON पर आधारित एक स्टैंडर्ड फ़ॉर्मैट है. इसे मूल रूप से Chromium प्रोजेक्ट के हिस्से के तौर पर डेवलप किया गया था.
किसी नीति में ओपन नेटवर्क कॉन्फ़िगरेशन शामिल करने के लिए, Policy
संसाधन पर openNetworkConfiguration
फ़ील्ड सेट करें.
पूरी तरह से मैनेज किए जा रहे डिवाइसों के लिए, Policy
संसाधन में wifiConfigDisabled
को true
पर सेट करके, किसी उपयोगकर्ता को अपने डिवाइस पर वाई-फ़ाई सेटिंग को मैन्युअल तरीके से कॉन्फ़िगर करने से रोका जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
इस्तेमाल की जा सकने वाली सुविधाएं
Android Management API, ओपन नेटवर्क कॉन्फ़िगरेशन की खास शर्तों के साथ ही काम करता है.
- टॉप-लेवल ऑब्जेक्ट:
Type
को हटा दिया जाना चाहिए याUnencryptedConfiguration
पर सेट किया जाना चाहिए. किसी नीति में नेटवर्क कॉन्फ़िगरेशन को एन्क्रिप्ट (सुरक्षित) करने की ज़रूरत नहीं है, क्योंकि पूरी नीति को Android Management API सेवा में एन्क्रिप्ट (सुरक्षित) किया जाता है. इसके अलावा, पासफ़्रेज़ और निजी कुंजियों जैसी संवेदनशील जानकारी के लिए, एन्क्रिप्शन की दूसरी लेयर होती है.
NetworkConfiguration
ऑब्जेक्ट:GUID
,Name
,Type
, औरWiFi
, इस्तेमाल किए जा सकने वाले फ़ील्ड हैं. इन सभी फ़ील्ड में वैल्यू डालना ज़रूरी है.ProxySettings
की वैल्यू देना ज़रूरी नहीं है. इसका इस्तेमाल करने पर, सिर्फ़Manual
औरPAC
(प्रॉक्सी अपने-आप कॉन्फ़िगर होने की सुविधा) काम करती हैं.Type
कोWiFi
पर सेट किया जाना चाहिए. अन्य तरह के नेटवर्क काम नहीं करते.
WiFi
ऑब्जेक्ट:SSID
औरHexSSID
का इस्तेमाल किया जा सकता है. इनमें से कम से कम एक मौजूद होना चाहिए.- अगर
HexSSID
औरSSID
, दोनों सेट हैं, तो वैल्यू एक जैसी होनी चाहिए.
- अगर
HiddenSSID
का इस्तेमाल किया जा सकता है.AllowGatewayARPPolling
का इस्तेमाल नहीं किया जा सकता।SignalStrength
का इस्तेमाल नहीं किया जा सकता।AutoConnect
: इस फ़ील्ड से यह तय होता है कि नेटवर्क अपने-आप चालू होगा या नहीं. यह सेटिंग, डिवाइस की वाई-फ़ाई सेटिंग में जाकर, हर नेटवर्क के लिए अपने-आप कनेक्ट होने के विकल्प से अलग होती है.- अगर इसे
true
पर सेट किया जाता है, तो नेटवर्क चालू हो जाता है. इसका मतलब है कि डिवाइस, वाई-फ़ाई सेटिंग में उपयोगकर्ता के चुने बिना ही इससे अपने-आप कनेक्ट हो सकता है. हालांकि, ऐसा तब तक होता है, जब तक उपयोगकर्ता इस नेटवर्क के लिए अपने-आप कनेक्ट होने की सुविधा बंद नहीं कर देता. false
पर सेट करने पर, नेटवर्क को सेव किए गए नेटवर्क की सूची में जोड़ दिया जाता है, लेकिन इसे चालू नहीं किया जाता. डिवाइस इससे अपने-आप कनेक्ट नहीं होता. डिवाइस को नेटवर्क से कनेक्ट करने के लिए, उपयोगकर्ता को वाई-फ़ाई सेटिंग में जाकर, नेटवर्क को एक बार मैन्युअल तरीके से चुनना होगा. पहली बार मैन्युअल तरीके से कनेक्ट करने के बाद, नेटवर्क को चालू माना जाता है. साथ ही, डिवाइस इससे अपने-आप कनेक्ट हो सकता है. हालांकि, ऐसा तब तक होता है, जब तक उपयोगकर्ता इस नेटवर्क के लिए, अपने-आप कनेक्ट होने की सुविधा बंद न कर दे.
- अगर इसे
Security
एट्रिब्यूट की वैल्यू देना ज़रूरी है. इसके लिए, इन वैल्यू का इस्तेमाल किया जा सकता है: - None - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
WEP-PSK
पासफ़्रेज़ के लिए, सिर्फ़ 40-बिट (10 अंकों) या 104-बिट (26 अंकों) वाले पासफ़्रेज़ इस्तेमाल किए जा सकते हैं.- स्पेसिफ़िकेशन के मुताबिक,
WEP-PSK
पासफ़्रेज़0x
प्रीफ़िक्स से शुरू होने चाहिए. हालांकि, Android फ़्रेमवर्क के साथ एक जैसा अनुभव देने के लिए, इस प्रीफ़िक्स की ज़रूरत नहीं है. - MAC रैंडमाइज़ेशन मोड सेट करने के लिए,
MACAddressRandomizationMode
प्रॉपर्टी का इस्तेमाल करें. इसकी वैल्यूHardware
याAutomatic
पर सेट करें. यह प्रॉपर्टी, ओपन नेटवर्क कॉन्फ़िगरेशन (ओएनसी) स्पेसिफ़िकेशन में उपलब्ध नहीं है. हालांकि, यह AMAPI में उपलब्ध है और वाई-फ़ाई नेटवर्क कॉन्फ़िगर करते समय इसे सेट किया जा सकता है. यह सुविधा, Android 13 या इसके बाद के वर्शन वाले डिवाइसों पर, सभी मैनेजमेंट मोड के लिए उपलब्ध है.Hardware
नेटवर्क से कनेक्ट होने पर, फ़ैक्ट्री एमएसी पते का इस्तेमाल करता है.Automatic
से, वाई-फ़ाई फ़्रेमवर्क को यह तय करने की अनुमति मिलती है कि मैक पते को रैंडम बनाने की रणनीति क्या होगी. ये स्थायी या अस्थायी तौर पर जनरेट किए गए एमएसी पते हो सकते हैं. इनका इस्तेमाल नेटवर्क से कनेक्ट करते समय किया जाता है.
EAP
ऑब्जेक्ट:ClientCertPattern
का इस्तेमाल नहीं किया जा सकता।SaveCredentials
फ़ंक्शन का इस्तेमाल नहीं किया जा सकता, क्योंकि क्रेडेंशियल हमेशा सेव किए जाते हैं.UseSystemCAs
का इस्तेमाल नहीं किया जा सकता।ServerCARef
का इस्तेमाल किया जा सकता है.ServerCARefs
का इस्तेमाल किया जा सकता है.DomainSuffixMatch
का इस्तेमाल किया जा सकता है. इस फ़ील्ड के बिना (या वैल्यू के तौर पर खाली सूची के साथ) एंटरप्राइज़ वायरलेस कॉन्फ़िगरेशन को असुरक्षित माना जाता है. साथ ही, प्लैटफ़ॉर्म से अस्वीकार कर दिया जाता है. वैल्यू, मान्य डोमेन नेम होने चाहिए. जैसे, "example.com", "subdomain.example.com".ClientCertType
एट्रिब्यूट के लिए, ये वैल्यू इस्तेमाल की जा सकती हैं:Ref
,KeyPairAlias
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" } } ] }
ईएपी की मदद से पुष्टि करना
नीति के इस उदाहरण में, EAP-TLS
ऑथेंटिकेशन के साथ कॉन्फ़िगर किया गया वायरलेस नेटवर्क दिखाया गया है. उदाहरण में, 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" ], "ServerCARefs": ["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
वजह के साथ A की रिपोर्ट की जाती है. नीचे नीति का एक उदाहरण दिया गया है:
"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
फ़ील्ड, WPA3-Enterprise_192
भी हो सकता है. यह WPA-EAP नेटवर्क है, जिसे WPA3 192-बिट मोड के साथ कॉन्फ़िगर किया गया है.
"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" } ] }