किसी डिवाइस पर वाई-फ़ाई नेटवर्क कॉन्फ़िगर करने के लिए, नीति का इस्तेमाल किया जा सकता है. 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_192WEP-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" } ] }