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

You can use policy to configure Wi-Fi networks on a device. The Android Management API uses Open Network Configuration, a standard JSON-based format which was originally developed as part of the Chromium project.

কোনো পলিসিতে ওপেন নেটওয়ার্ক কনফিগারেশন অন্তর্ভুক্ত করতে, Policy রিসোর্সের openNetworkConfiguration ফিল্ডটি সেট করুন।

সম্পূর্ণরূপে পরিচালিত ডিভাইসগুলির ক্ষেত্রে, আপনি ঐচ্ছিকভাবে Policy রিসোর্সে wifiConfigDisabled কে true সেট করার মাধ্যমে কোনো ব্যবহারকারীকে তার ডিভাইসে ম্যানুয়ালি ওয়াই-ফাই সেটিংস কনফিগার করা থেকে বিরত রাখতে পারেন।

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

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

  • শীর্ষ-স্তরের বস্তু:
    • Type অবশ্যই বাদ দিতে হবে অথবা UnencryptedConfiguration এ সেট করতে হবে। একটি পলিসির মধ্যে নেটওয়ার্ক কনফিগারেশন এনক্রিপ্ট করার কোনো প্রয়োজন নেই, কারণ সম্পূর্ণ পলিসিটি Android Management API সার্ভিসের মধ্যেই এনক্রিপ্ট করা থাকে। এছাড়াও, পাসফ্রেজ এবং প্রাইভেট কী-এর মতো সংবেদনশীল তথ্যের জন্য এনক্রিপশনের একটি দ্বিতীয় স্তর রয়েছে।
  • NetworkConfiguration অবজেক্ট:
    • GUID , Name , Type এবং WiFi হলো সমর্থিত ফিল্ড এবং এগুলো সবই আবশ্যক।
    • ProxySettings একটি ঐচ্ছিক ক্ষেত্র। এটি ব্যবহার করা হলে, শুধুমাত্র Manual এবং PAC (Proxy Auto-Configuration) সমর্থিত হবে।
    • Type অবশ্যই WiFi সেট করতে হবে। অন্য কোনো ধরনের নেটওয়ার্ক সমর্থিত নয়।
  • WiFi অবজেক্ট:
    • SSID এবং HexSSID সমর্থিত এবং এদের মধ্যে অন্তত একটি অবশ্যই থাকতে হবে।
      • যদি HexSSID এবং SSID উভয়ই সেট করা থাকে, তবে মানগুলো অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
    • HiddenSSID সমর্থিত।
    • AllowGatewayARPPolling সমর্থিত নয়।
    • SignalStrength সমর্থিত নয়।
    • AutoConnect : এই ফিল্ডটি নির্ধারণ করে যে নেটওয়ার্কটি স্বয়ংক্রিয়ভাবে চালু হবে কিনা। এই সেটিংটি ডিভাইসের ওয়াই-ফাই সেটিংসে ব্যবহারকারীদের জন্য উপলব্ধ নেটওয়ার্ক-ভিত্তিক অটো-কানেক্ট অপশন থেকে স্বাধীন।
      • যদি ' true সেট করা থাকে, তাহলে নেটওয়ার্কটি সক্রিয় হয়, যার অর্থ হলো, ব্যবহারকারী এই নেটওয়ার্কের জন্য স্বয়ংক্রিয় সংযোগ নিষ্ক্রিয় না করা পর্যন্ত, ওয়াই-ফাই সেটিংসে সুস্পষ্ট নির্বাচন ছাড়াই ডিভাইসটি এতে স্বয়ংক্রিয়ভাবে সংযোগ করতে পারে।
      • যদি false সেট করা থাকে, তাহলে নেটওয়ার্কটি সংরক্ষিত নেটওয়ার্কের তালিকায় যুক্ত হয় কিন্তু সক্রিয় হয় না। ডিভাইসটি এতে স্বয়ংক্রিয়ভাবে সংযুক্ত হয় না। ডিভাইসটিকে নেটওয়ার্কে সংযুক্ত করার জন্য, ব্যবহারকারীকে অবশ্যই ওয়াই-ফাই সেটিংস থেকে একবার ম্যানুয়ালি নেটওয়ার্কটি নির্বাচন করতে হবে। প্রথমবার ম্যানুয়ালি সংযোগ করার পর, নেটওয়ার্কটিকে সক্রিয় হিসেবে গণ্য করা হয় এবং ডিভাইসটি এতে স্বয়ংক্রিয়ভাবে সংযুক্ত হতে পারে, যদি না ব্যবহারকারী এই নেটওয়ার্কের জন্য স্বয়ংক্রিয় সংযোগ নিষ্ক্রিয় করে।
    • Security প্রয়োজন এবং নিম্নলিখিত মানগুলি সমর্থিত: - কোনোটি নয় - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
  • WEP-PSK পাসফ্রেজের ক্ষেত্রে, শুধুমাত্র ৪০-বিট (১০-ডিজিট) বা ১০৪-বিট (২৬-ডিজিট) পাসফ্রেজ সমর্থিত।
  • স্পেসিফিকেশন অনুযায়ী WEP-PSK পাসফ্রেজ অবশ্যই 0x প্রিফিক্স দিয়ে শুরু হতে হবে। তবে, অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সামঞ্জস্য রাখার জন্য এই প্রিফিক্সটি আবশ্যক নয়।
  • MAC র‍্যান্ডমাইজেশন মোড সেট করতে, MACAddressRandomizationMode প্রপার্টিটি ব্যবহার করুন এবং এর ভ্যালু হিসেবে Hardware বা Automatic সেট করুন। এই প্রপার্টিটি ওপেন নেটওয়ার্ক কনফিগারেশন (ONC) স্পেসিফিকেশনে উপলব্ধ নয়, কিন্তু এটি AMAPI-তে দেওয়া আছে এবং Wi-Fi নেটওয়ার্ক কনফিগার করার সময় নির্দিষ্ট করা যেতে পারে। এটি শুধুমাত্র Android 13+ এর সকল ম্যানেজমেন্ট মোডে প্রযোজ্য।
    • Hardware নেটওয়ার্কে সংযোগ করার সময় ফ্যাক্টরি MAC অ্যাড্রেস ব্যবহার করে।
    • 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 , EAP-PWD , 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 প্রমাণীকরণ

এই উদাহরণ পলিসি খণ্ডটি 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 কী পেয়ারের অ্যালিয়াস নির্দিষ্ট করতে ব্যবহার করা যেতে পারে, যা Wi-Fi অথেনটিকেশনের জন্য ব্যবহৃত হয়। Android 12 এবং তার পরবর্তী সংস্করণগুলির জন্য, ClientCertKeyPairAlias এর মাধ্যমে নির্দিষ্ট করা অ্যালিয়াসযুক্ত KeyChain কী পেয়ারটি Wi-Fi নেটওয়ার্কগুলিতে অথেনটিকেশনের জন্য মঞ্জুর করা হয় এবং সংশ্লিষ্ট Wi-Fi নেটওয়ার্কে অথেনটিকেশনের জন্য ব্যবহৃত হয়। 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"
      }
   ]
}