নেটওয়ার্ক কনফিগার করুন

আপনি একটি ডিভাইসে Wi-Fi নেটওয়ার্ক কনফিগার করতে নীতি ব্যবহার করতে পারেন৷ অ্যান্ড্রয়েড ম্যানেজমেন্ট এপিআই ওপেন নেটওয়ার্ক কনফিগারেশন ব্যবহার করে, একটি স্ট্যান্ডার্ড JSON-ভিত্তিক ফর্ম্যাট যা মূলত ক্রোমিয়াম প্রকল্পের অংশ হিসাবে তৈরি করা হয়েছিল। ওপেন নেটওয়ার্ক কনফিগারেশনের সম্পূর্ণ বিবরণের জন্য স্পেসিফিকেশন পড়ুন।

একটি নীতিতে একটি ওপেন নেটওয়ার্ক কনফিগারেশন অন্তর্ভুক্ত করতে, একটি Policy সম্পদে openNetworkConfiguration ক্ষেত্র সেট করুন।

সম্পূর্ণরূপে পরিচালিত ডিভাইসগুলির জন্য, আপনি ঐচ্ছিকভাবে একজন ব্যবহারকারীকে তাদের ডিভাইসে Wi-Fi সেটিংস ম্যানুয়ালি কনফিগার করা থেকে বিরত রাখতে পারেন Policy সম্পদে wifiConfigDisabled কে true সেট করে৷

সমর্থিত বৈশিষ্ট্য

অ্যান্ড্রয়েড ম্যানেজমেন্ট API শুধুমাত্র ওপেন নেটওয়ার্ক কনফিগারেশন স্পেসিফিকেশনের একটি উপসেট সমর্থন করে।

  • শীর্ষ-স্তরের বস্তু:
    • Type অবশ্যই বাদ দিতে হবে বা UnencryptedConfiguration সেট করতে হবে। একটি নীতির মধ্যে নেটওয়ার্ক কনফিগারেশন এনক্রিপ্ট করার কোন প্রয়োজন নেই কারণ পুরো নীতিটি Android ম্যানেজমেন্ট API পরিষেবার মধ্যে এনক্রিপ্ট করা হয়েছে৷ অতিরিক্তভাবে, পাসফ্রেজ এবং ব্যক্তিগত কীগুলির মতো সংবেদনশীল তথ্যের জন্য এনক্রিপশনের একটি দ্বিতীয় স্তর রয়েছে।
  • NetworkConfiguration অবজেক্ট:
    • GUID , Name , Type , এবং WiFi সমর্থিত ক্ষেত্রগুলি এবং সবগুলিই প্রয়োজন৷
    • ProxySettings একটি ঐচ্ছিক ক্ষেত্র। এটি ব্যবহার করা হলে, শুধুমাত্র Manual এবং PAC (প্রক্সি অটো-কনফিগারেশন) সমর্থিত।
    • Type WiFi সেট করা আবশ্যক. অন্যান্য ধরনের নেটওয়ার্ক সমর্থিত নয়।
  • WiFi অবজেক্ট:
    • SSID এবং HexSSID সমর্থিত এবং তাদের মধ্যে অন্তত একটি উপস্থিত থাকতে হবে৷
      • HexSSID এবং SSID উভয়ই সেট করা থাকলে, মানগুলি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
    • HiddenSSID সমর্থিত।
    • AllowGatewayARPPolling সমর্থিত নয়।
    • SignalStrength সমর্থিত নয়।
    • Security প্রয়োজন এবং নিম্নলিখিত মানগুলি সমর্থিত: - কিছুই নয় - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK পাসফ্রেজের জন্য, শুধুমাত্র 40-বিট (10-ডিজিট) বা 104-বিট (26-ডিজিটের) পাসফ্রেজ সমর্থিত।
    • স্পেসিফিকেশনে বলা হয়েছে যে WEP-PSK পাসফ্রেজ অবশ্যই 0x উপসর্গ দিয়ে শুরু হবে। যাইহোক, অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সামঞ্জস্যের জন্য, এই উপসর্গের প্রয়োজন নেই।
    • MAC র্যান্ডমাইজেশন মোড সেট করতে, Hardware বা Automatic মানগুলির সাথে সেট করা সম্পত্তি MACAddressRandomizationMode ব্যবহার করুন। এই সম্পত্তিটি বর্তমানে ওপেন নেটওয়ার্ক কনফিগারেশন (ONC) স্পেসিফিকেশনে অনুপলব্ধ কিন্তু AMAPI-তে দেওয়া হয়েছে এবং ওয়াইফাই নেটওয়ার্ক কনফিগার করার সময় নির্দিষ্ট করা যেতে পারে। এটি সমস্ত পরিচালনা মোডে শুধুমাত্র Android 13+ এর ক্ষেত্রে প্রযোজ্য।
      • নেটওয়ার্কের সাথে সংযোগ করার সময় Hardware ফ্যাক্টরি MAC ঠিকানা ব্যবহার করে।
      • Automatic ওয়াই-ফাই ফ্রেমওয়ার্ককে স্বয়ংক্রিয়ভাবে MAC র্যান্ডমাইজেশন কৌশল নির্ধারণ করতে দেয়। এটি হয় স্থায়ী বা অ-স্থায়ী এলোমেলোভাবে জেনারেট করা MAC ঠিকানা হতে পারে যা নেটওয়ার্কের সাথে সংযোগ করার সময় ব্যবহৃত হয়।
  • 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 সমর্থিত নয়।

উদাহরণ

একাধিক Wi-Fi নেটওয়ার্ক

এই উদাহরণ নীতি খণ্ডটি বিভিন্ন নিরাপত্তা স্কিম সহ কনফিগার করা তিনটি Wi-Fi নেটওয়ার্ক দেখায়৷ ওপেন নেটওয়ার্ক কনফিগারেশন 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 প্রমাণীকরণ

এই উদাহরণ নীতি খণ্ডটি 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 ) KeyPair-এর জন্য কী ব্যবহার করা হয়েছে প্রমাণীকরণ অ্যান্ড্রয়েড 12 এবং তার উপরে, ClientCertKeyPairAlias সাথে নির্দিষ্ট উপনাম সহ KeyChain কী জোড়া ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য দেওয়া হয় এবং সংশ্লিষ্ট ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য ব্যবহার করা হয়। Android 12 এর নিচে, API_LEVEL কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয়েছে। INVALID_VALUE কারণ এবং ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY নির্দিষ্ট কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয় যদি নির্দিষ্ট কী যুগল উপনাম একটি বিদ্যমান কী-এর সাথে সঙ্গতিপূর্ণ না হয়। নিম্নলিখিত একটি উদাহরণ নীতি:

"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 ও হতে পারে যা WPA3 192-বিট মোডের সাথে কনফিগার করা একটি WPA-EAP নেটওয়ার্ক।

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

আপনি একটি ডিভাইসে Wi-Fi নেটওয়ার্ক কনফিগার করতে নীতি ব্যবহার করতে পারেন৷ অ্যান্ড্রয়েড ম্যানেজমেন্ট এপিআই ওপেন নেটওয়ার্ক কনফিগারেশন ব্যবহার করে, একটি স্ট্যান্ডার্ড JSON-ভিত্তিক ফর্ম্যাট যা মূলত ক্রোমিয়াম প্রকল্পের অংশ হিসাবে তৈরি করা হয়েছিল। ওপেন নেটওয়ার্ক কনফিগারেশনের সম্পূর্ণ বিবরণের জন্য স্পেসিফিকেশন পড়ুন।

একটি নীতিতে একটি ওপেন নেটওয়ার্ক কনফিগারেশন অন্তর্ভুক্ত করতে, একটি Policy সম্পদে openNetworkConfiguration ক্ষেত্র সেট করুন।

সম্পূর্ণরূপে পরিচালিত ডিভাইসগুলির জন্য, আপনি ঐচ্ছিকভাবে একজন ব্যবহারকারীকে তাদের ডিভাইসে Wi-Fi সেটিংস ম্যানুয়ালি কনফিগার করা থেকে বিরত রাখতে পারেন Policy সম্পদে wifiConfigDisabled কে true সেট করে৷

সমর্থিত বৈশিষ্ট্য

অ্যান্ড্রয়েড ম্যানেজমেন্ট API শুধুমাত্র ওপেন নেটওয়ার্ক কনফিগারেশন স্পেসিফিকেশনের একটি উপসেট সমর্থন করে।

  • শীর্ষ-স্তরের বস্তু:
    • Type অবশ্যই বাদ দিতে হবে বা UnencryptedConfiguration সেট করতে হবে। একটি নীতির মধ্যে নেটওয়ার্ক কনফিগারেশন এনক্রিপ্ট করার কোন প্রয়োজন নেই কারণ পুরো নীতিটি Android ম্যানেজমেন্ট API পরিষেবার মধ্যে এনক্রিপ্ট করা হয়েছে৷ অতিরিক্তভাবে, পাসফ্রেজ এবং ব্যক্তিগত কীগুলির মতো সংবেদনশীল তথ্যের জন্য এনক্রিপশনের একটি দ্বিতীয় স্তর রয়েছে।
  • NetworkConfiguration অবজেক্ট:
    • GUID , Name , Type , এবং WiFi সমর্থিত ক্ষেত্রগুলি এবং সবগুলিই প্রয়োজন৷
    • ProxySettings একটি ঐচ্ছিক ক্ষেত্র। এটি ব্যবহার করা হলে, শুধুমাত্র Manual এবং PAC (প্রক্সি অটো-কনফিগারেশন) সমর্থিত।
    • Type WiFi সেট করা আবশ্যক. অন্যান্য ধরনের নেটওয়ার্ক সমর্থিত নয়।
  • WiFi অবজেক্ট:
    • SSID এবং HexSSID সমর্থিত এবং তাদের মধ্যে অন্তত একটি উপস্থিত থাকতে হবে৷
      • HexSSID এবং SSID উভয়ই সেট করা থাকলে, মানগুলি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
    • HiddenSSID সমর্থিত।
    • AllowGatewayARPPolling সমর্থিত নয়।
    • SignalStrength সমর্থিত নয়।
    • Security প্রয়োজন এবং নিম্নলিখিত মানগুলি সমর্থিত: - কিছুই নয় - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK পাসফ্রেজের জন্য, শুধুমাত্র 40-বিট (10-ডিজিট) বা 104-বিট (26-ডিজিটের) পাসফ্রেজ সমর্থিত।
    • স্পেসিফিকেশনে বলা হয়েছে যে WEP-PSK পাসফ্রেজ অবশ্যই 0x উপসর্গ দিয়ে শুরু হবে। যাইহোক, অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সামঞ্জস্যের জন্য, এই উপসর্গের প্রয়োজন নেই।
    • MAC র্যান্ডমাইজেশন মোড সেট করতে, Hardware বা Automatic মানগুলির সাথে সেট করা সম্পত্তি MACAddressRandomizationMode ব্যবহার করুন। এই সম্পত্তিটি বর্তমানে ওপেন নেটওয়ার্ক কনফিগারেশন (ONC) স্পেসিফিকেশনে অনুপলব্ধ কিন্তু AMAPI-তে দেওয়া হয়েছে এবং ওয়াইফাই নেটওয়ার্ক কনফিগার করার সময় নির্দিষ্ট করা যেতে পারে। এটি সমস্ত পরিচালনা মোডে শুধুমাত্র Android 13+ এর ক্ষেত্রে প্রযোজ্য।
      • নেটওয়ার্কের সাথে সংযোগ করার সময় Hardware ফ্যাক্টরি MAC ঠিকানা ব্যবহার করে।
      • Automatic ওয়াই-ফাই ফ্রেমওয়ার্ককে স্বয়ংক্রিয়ভাবে MAC র্যান্ডমাইজেশন কৌশল নির্ধারণ করতে দেয়। এটি হয় স্থায়ী বা অ-স্থায়ী এলোমেলোভাবে জেনারেট করা MAC ঠিকানা হতে পারে যা নেটওয়ার্কের সাথে সংযোগ করার সময় ব্যবহৃত হয়।
  • 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 সমর্থিত নয়।

উদাহরণ

একাধিক Wi-Fi নেটওয়ার্ক

এই উদাহরণ নীতি খণ্ডটি বিভিন্ন নিরাপত্তা স্কিম সহ কনফিগার করা তিনটি Wi-Fi নেটওয়ার্ক দেখায়৷ ওপেন নেটওয়ার্ক কনফিগারেশন 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 প্রমাণীকরণ

এই উদাহরণ নীতি খণ্ডটি 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 ) KeyPair-এর জন্য কী ব্যবহার করা হয়েছে প্রমাণীকরণ অ্যান্ড্রয়েড 12 এবং তার উপরে, ClientCertKeyPairAlias সাথে নির্দিষ্ট উপনাম সহ KeyChain কী জোড়া ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য দেওয়া হয় এবং সংশ্লিষ্ট ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য ব্যবহার করা হয়। Android 12 এর নিচে, API_LEVEL কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয়েছে। INVALID_VALUE কারণ এবং ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY নির্দিষ্ট কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয় যদি নির্দিষ্ট কী যুগল উপনাম একটি বিদ্যমান কী-এর সাথে সঙ্গতিপূর্ণ না হয়। নিম্নলিখিত একটি উদাহরণ নীতি:

"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 ও হতে পারে যা WPA3 192-বিট মোডের সাথে কনফিগার করা একটি WPA-EAP নেটওয়ার্ক।

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

আপনি একটি ডিভাইসে Wi-Fi নেটওয়ার্ক কনফিগার করতে নীতি ব্যবহার করতে পারেন৷ অ্যান্ড্রয়েড ম্যানেজমেন্ট এপিআই ওপেন নেটওয়ার্ক কনফিগারেশন ব্যবহার করে, একটি স্ট্যান্ডার্ড JSON-ভিত্তিক ফর্ম্যাট যা মূলত ক্রোমিয়াম প্রকল্পের অংশ হিসাবে তৈরি করা হয়েছিল। ওপেন নেটওয়ার্ক কনফিগারেশনের সম্পূর্ণ বিবরণের জন্য স্পেসিফিকেশন পড়ুন।

একটি নীতিতে একটি ওপেন নেটওয়ার্ক কনফিগারেশন অন্তর্ভুক্ত করতে, একটি Policy সম্পদে openNetworkConfiguration ক্ষেত্র সেট করুন।

সম্পূর্ণরূপে পরিচালিত ডিভাইসগুলির জন্য, আপনি ঐচ্ছিকভাবে একজন ব্যবহারকারীকে তাদের ডিভাইসে Wi-Fi সেটিংস ম্যানুয়ালি কনফিগার করা থেকে বিরত রাখতে পারেন Policy সম্পদে wifiConfigDisabled কে true সেট করে৷

সমর্থিত বৈশিষ্ট্য

অ্যান্ড্রয়েড ম্যানেজমেন্ট API শুধুমাত্র ওপেন নেটওয়ার্ক কনফিগারেশন স্পেসিফিকেশনের একটি উপসেট সমর্থন করে।

  • শীর্ষ-স্তরের বস্তু:
    • Type অবশ্যই বাদ দিতে হবে বা UnencryptedConfiguration সেট করতে হবে। একটি নীতির মধ্যে নেটওয়ার্ক কনফিগারেশন এনক্রিপ্ট করার কোন প্রয়োজন নেই কারণ পুরো নীতিটি Android ম্যানেজমেন্ট API পরিষেবার মধ্যে এনক্রিপ্ট করা হয়েছে৷ অতিরিক্তভাবে, পাসফ্রেজ এবং ব্যক্তিগত কীগুলির মতো সংবেদনশীল তথ্যের জন্য এনক্রিপশনের একটি দ্বিতীয় স্তর রয়েছে।
  • NetworkConfiguration অবজেক্ট:
    • GUID , Name , Type , এবং WiFi সমর্থিত ক্ষেত্রগুলি এবং সবগুলিই প্রয়োজন৷
    • ProxySettings একটি ঐচ্ছিক ক্ষেত্র। এটি ব্যবহার করা হলে, শুধুমাত্র Manual এবং PAC (প্রক্সি অটো-কনফিগারেশন) সমর্থিত।
    • Type WiFi সেট করা আবশ্যক. অন্যান্য ধরনের নেটওয়ার্ক সমর্থিত নয়।
  • WiFi অবজেক্ট:
    • SSID এবং HexSSID সমর্থিত এবং তাদের মধ্যে অন্তত একটি উপস্থিত থাকতে হবে৷
      • HexSSID এবং SSID উভয়ই সেট করা থাকলে, মানগুলি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
    • HiddenSSID সমর্থিত।
    • AllowGatewayARPPolling সমর্থিত নয়।
    • SignalStrength সমর্থিত নয়।
    • Security প্রয়োজন এবং নিম্নলিখিত মানগুলি সমর্থিত: - কিছুই নয় - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK পাসফ্রেজের জন্য, শুধুমাত্র 40-বিট (10-ডিজিট) বা 104-বিট (26-ডিজিটের) পাসফ্রেজ সমর্থিত।
    • স্পেসিফিকেশনে বলা হয়েছে যে WEP-PSK পাসফ্রেজ অবশ্যই 0x উপসর্গ দিয়ে শুরু হবে। যাইহোক, অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সামঞ্জস্যের জন্য, এই উপসর্গের প্রয়োজন নেই।
    • MAC র্যান্ডমাইজেশন মোড সেট করতে, Hardware বা Automatic মানগুলির সাথে সেট করা সম্পত্তি MACAddressRandomizationMode ব্যবহার করুন। এই সম্পত্তিটি বর্তমানে ওপেন নেটওয়ার্ক কনফিগারেশন (ONC) স্পেসিফিকেশনে অনুপলব্ধ কিন্তু AMAPI-তে দেওয়া হয়েছে এবং ওয়াইফাই নেটওয়ার্ক কনফিগার করার সময় নির্দিষ্ট করা যেতে পারে। এটি সমস্ত পরিচালনা মোডে শুধুমাত্র Android 13+ এর ক্ষেত্রে প্রযোজ্য।
      • নেটওয়ার্কের সাথে সংযোগ করার সময় Hardware ফ্যাক্টরি MAC ঠিকানা ব্যবহার করে।
      • Automatic ওয়াই-ফাই ফ্রেমওয়ার্ককে স্বয়ংক্রিয়ভাবে MAC র্যান্ডমাইজেশন কৌশল নির্ধারণ করতে দেয়। এটি হয় স্থায়ী বা অ-স্থায়ী এলোমেলোভাবে জেনারেট করা MAC ঠিকানা হতে পারে যা নেটওয়ার্কের সাথে সংযোগ করার সময় ব্যবহৃত হয়।
  • 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 সমর্থিত নয়।

উদাহরণ

একাধিক Wi-Fi নেটওয়ার্ক

এই উদাহরণ নীতি খণ্ডটি বিভিন্ন নিরাপত্তা স্কিম সহ কনফিগার করা তিনটি Wi-Fi নেটওয়ার্ক দেখায়৷ ওপেন নেটওয়ার্ক কনফিগারেশন 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 প্রমাণীকরণ

এই উদাহরণ নীতি খণ্ডটি 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 ) KeyPair-এর জন্য কী ব্যবহার করা হয়েছে প্রমাণীকরণ অ্যান্ড্রয়েড 12 এবং তার উপরে, ClientCertKeyPairAlias সাথে নির্দিষ্ট উপনাম সহ KeyChain কী জোড়া ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য দেওয়া হয় এবং সংশ্লিষ্ট ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য ব্যবহার করা হয়। Android 12 এর নিচে, API_LEVEL কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয়েছে। INVALID_VALUE কারণ এবং ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY নির্দিষ্ট কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয় যদি নির্দিষ্ট কী যুগল উপনাম একটি বিদ্যমান কী-এর সাথে সঙ্গতিপূর্ণ না হয়। নিম্নলিখিত একটি উদাহরণ নীতি:

"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 ও হতে পারে যা WPA3 192-বিট মোডের সাথে কনফিগার করা একটি WPA-EAP নেটওয়ার্ক।

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

আপনি একটি ডিভাইসে Wi-Fi নেটওয়ার্ক কনফিগার করতে নীতি ব্যবহার করতে পারেন৷ অ্যান্ড্রয়েড ম্যানেজমেন্ট এপিআই ওপেন নেটওয়ার্ক কনফিগারেশন ব্যবহার করে, একটি স্ট্যান্ডার্ড JSON-ভিত্তিক ফর্ম্যাট যা মূলত ক্রোমিয়াম প্রকল্পের অংশ হিসাবে তৈরি করা হয়েছিল। ওপেন নেটওয়ার্ক কনফিগারেশনের সম্পূর্ণ বিবরণের জন্য স্পেসিফিকেশন পড়ুন।

একটি নীতিতে একটি ওপেন নেটওয়ার্ক কনফিগারেশন অন্তর্ভুক্ত করতে, একটি Policy সম্পদে openNetworkConfiguration ক্ষেত্র সেট করুন।

সম্পূর্ণরূপে পরিচালিত ডিভাইসগুলির জন্য, আপনি ঐচ্ছিকভাবে একজন ব্যবহারকারীকে তাদের ডিভাইসে Wi-Fi সেটিংস ম্যানুয়ালি কনফিগার করা থেকে বিরত রাখতে পারেন Policy সম্পদে wifiConfigDisabled কে true সেট করে৷

সমর্থিত বৈশিষ্ট্য

অ্যান্ড্রয়েড ম্যানেজমেন্ট API শুধুমাত্র ওপেন নেটওয়ার্ক কনফিগারেশন স্পেসিফিকেশনের একটি উপসেট সমর্থন করে।

  • শীর্ষ-স্তরের বস্তু:
    • Type অবশ্যই বাদ দিতে হবে বা UnencryptedConfiguration সেট করতে হবে। একটি নীতির মধ্যে নেটওয়ার্ক কনফিগারেশন এনক্রিপ্ট করার কোন প্রয়োজন নেই কারণ পুরো নীতিটি Android ম্যানেজমেন্ট API পরিষেবার মধ্যে এনক্রিপ্ট করা হয়েছে৷ অতিরিক্তভাবে, পাসফ্রেজ এবং ব্যক্তিগত কীগুলির মতো সংবেদনশীল তথ্যের জন্য এনক্রিপশনের একটি দ্বিতীয় স্তর রয়েছে।
  • NetworkConfiguration অবজেক্ট:
    • GUID , Name , Type , এবং WiFi সমর্থিত ক্ষেত্রগুলি এবং সবগুলিই প্রয়োজন৷
    • ProxySettings একটি ঐচ্ছিক ক্ষেত্র। এটি ব্যবহার করা হলে, শুধুমাত্র Manual এবং PAC (প্রক্সি অটো-কনফিগারেশন) সমর্থিত।
    • Type WiFi সেট করা আবশ্যক. অন্যান্য ধরনের নেটওয়ার্ক সমর্থিত নয়।
  • WiFi অবজেক্ট:
    • SSID এবং HexSSID সমর্থিত এবং তাদের মধ্যে অন্তত একটি উপস্থিত থাকতে হবে৷
      • HexSSID এবং SSID উভয়ই সেট করা থাকলে, মানগুলি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
    • HiddenSSID সমর্থিত।
    • AllowGatewayARPPolling সমর্থিত নয়।
    • SignalStrength সমর্থিত নয়।
    • Security প্রয়োজন এবং নিম্নলিখিত মানগুলি সমর্থিত: - কিছুই নয় - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK পাসফ্রেজের জন্য, শুধুমাত্র 40-বিট (10-ডিজিট) বা 104-বিট (26-ডিজিটের) পাসফ্রেজ সমর্থিত।
    • স্পেসিফিকেশনে বলা হয়েছে যে WEP-PSK পাসফ্রেজ অবশ্যই 0x উপসর্গ দিয়ে শুরু হবে। যাইহোক, অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সামঞ্জস্যের জন্য, এই উপসর্গের প্রয়োজন নেই।
    • MAC র্যান্ডমাইজেশন মোড সেট করতে, Hardware বা Automatic মানগুলির সাথে সেট করা সম্পত্তি MACAddressRandomizationMode ব্যবহার করুন। এই সম্পত্তিটি বর্তমানে ওপেন নেটওয়ার্ক কনফিগারেশন (ONC) স্পেসিফিকেশনে অনুপলব্ধ কিন্তু AMAPI-তে দেওয়া হয়েছে এবং ওয়াইফাই নেটওয়ার্ক কনফিগার করার সময় নির্দিষ্ট করা যেতে পারে। এটি সমস্ত পরিচালনা মোডে শুধুমাত্র Android 13+ এর ক্ষেত্রে প্রযোজ্য।
      • নেটওয়ার্কের সাথে সংযোগ করার সময় Hardware ফ্যাক্টরি MAC ঠিকানা ব্যবহার করে।
      • Automatic ওয়াই-ফাই ফ্রেমওয়ার্ককে স্বয়ংক্রিয়ভাবে MAC র্যান্ডমাইজেশন কৌশল নির্ধারণ করতে দেয়। এটি হয় স্থায়ী বা অ-স্থায়ী এলোমেলোভাবে জেনারেট করা MAC ঠিকানা হতে পারে যা নেটওয়ার্কের সাথে সংযোগ করার সময় ব্যবহৃত হয়।
  • 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 সমর্থিত নয়।

উদাহরণ

একাধিক Wi-Fi নেটওয়ার্ক

এই উদাহরণ নীতি খণ্ডটি বিভিন্ন নিরাপত্তা স্কিম সহ কনফিগার করা তিনটি Wi-Fi নেটওয়ার্ক দেখায়৷ ওপেন নেটওয়ার্ক কনফিগারেশন 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 প্রমাণীকরণ

এই উদাহরণ নীতি খণ্ডটি 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 ) KeyPair-এর জন্য কী ব্যবহার করা হয়েছে প্রমাণীকরণ অ্যান্ড্রয়েড 12 এবং তার উপরে, ClientCertKeyPairAlias সাথে নির্দিষ্ট উপনাম সহ KeyChain কী জোড়া ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য দেওয়া হয় এবং সংশ্লিষ্ট ওয়াই-ফাই নেটওয়ার্কে প্রমাণীকরণের জন্য ব্যবহার করা হয়। Android 12 এর নিচে, API_LEVEL কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয়েছে। INVALID_VALUE কারণ এবং ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY নির্দিষ্ট কারণ সহ একটি nonComplianceDetail রিপোর্ট করা হয় যদি নির্দিষ্ট কী যুগল উপনাম একটি বিদ্যমান কী-এর সাথে সঙ্গতিপূর্ণ না হয়। নিম্নলিখিত একটি উদাহরণ নীতি:

"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 ও হতে পারে যা WPA3 192-বিট মোডের সাথে কনফিগার করা একটি WPA-EAP নেটওয়ার্ক।

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