กำหนดค่าเครือข่าย

คุณใช้นโยบายเพื่อกำหนดค่าเครือข่าย Wi-Fi ในอุปกรณ์ได้ Android API การจัดการใช้การกำหนดค่าเครือข่ายแบบเปิดซึ่งเป็นรูปแบบ JSON มาตรฐาน ซึ่งเดิมทีพัฒนาขึ้นโดยเป็นส่วนหนึ่งของโครงการ Chromium โปรดดู ข้อกำหนด เพื่อดูรายละเอียดทั้งหมดเกี่ยวกับการกำหนดค่าเครือข่ายแบบเปิด

หากต้องการรวมการกำหนดค่าเครือข่ายแบบเปิดไว้ในนโยบาย ให้ตั้งค่า ฟิลด์ openNetworkConfiguration บน Policy ทรัพยากร

สำหรับอุปกรณ์ที่มีการจัดการครบวงจร คุณจะเลือกกำหนดไม่ให้ผู้ใช้ดำเนินการด้วยตนเองได้ กำหนดการตั้งค่า Wi-Fi ในอุปกรณ์โดยตั้งค่า wifiConfigDisabled เป็น true ในช่วง Policy ทรัพยากร

ฟีเจอร์ที่รองรับ

Android Management API รองรับเฉพาะเครือข่ายแบบเปิดบางส่วนเท่านั้น ข้อมูลจำเพาะของการกำหนดค่า

  • ออบเจ็กต์ระดับบนสุด:
    • ต้องละเว้น Type หรือตั้งค่าเป็น UnencryptedConfiguration ไม่มี จำเป็นต้องเข้ารหัสการกำหนดค่าเครือข่ายภายในนโยบาย เนื่องจาก นโยบายทั้งหมดจะเข้ารหัสภายในบริการ Android Management API นอกจากนี้ยังมีการเข้ารหัสชั้นที่ 2 สำหรับ ข้อมูลอย่างเช่นรหัสผ่านและคีย์ส่วนตัว
  • ออบเจ็กต์ NetworkConfiguration รายการ:
    • GUID, Name, Type และ WiFi ช่องที่รองรับ และต้องระบุทุกช่อง
    • ProxySettings เป็นช่องที่ไม่บังคับ หากใช้วิธีนี้ จะมีเพียง รองรับ Manual และ PAC (การกำหนดค่าพร็อกซีอัตโนมัติ)
    • ต้องตั้งค่า Type เป็น WiFi ระบบจะไม่รองรับเครือข่ายประเภทอื่นๆ
  • ออบเจ็กต์ WiFi รายการ:
    • ไม่รองรับ AllowGatewayARPPolling
    • ไม่รองรับ SignalStrength
    • ต้องระบุ Security และรองรับค่าต่อไปนี้ - ไม่มี - 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 ขณะนี้พร็อพเพอร์ตี้นี้ ไม่พร้อมใช้งานในข้อกำหนดเฉพาะของการกำหนดค่าเครือข่ายแบบเปิด (ONC) แต่มีให้ใช้งานใน AMAPI และสามารถระบุขณะกำหนดค่าเครือข่าย Wi-Fi ซึ่งจะมีผลกับ Android 13 ขึ้นไปในทุกโหมดการจัดการเท่านั้น
      • Hardware ใช้ที่อยู่ MAC เริ่มต้นเมื่อเชื่อมต่อเครือข่าย
      • Automatic ช่วยให้เฟรมเวิร์ก Wi-Fi ตัดสินใจเลือก MAC ได้โดยอัตโนมัติ การสุ่ม ซึ่งอาจเป็นแบบถาวรหรือไม่ถาวร ที่อยู่ MAC ที่สร้างขึ้นแบบสุ่มซึ่งจะใช้ขณะเชื่อมต่อกับ เครือข่าย
  • ออบเจ็กต์ EAP รายการ:
    • ไม่รองรับ ClientCertPattern
    • ไม่รองรับ SaveCredentials
    • ไม่รองรับ UseSystemCAs
    • รองรับ 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 3 เครือข่ายที่กำหนดค่าไว้ด้วย แผนการรักษาความปลอดภัยที่แตกต่างกัน JSON ของการกำหนดค่าเครือข่ายแบบเปิดฝังอยู่ใน ฟิลด์ openNetworkConfiguration ของฟิลด์ Policy JSON

"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 2 รายการสำหรับใบรับรองไคลเอ็นต์และเซิร์ฟเวอร์

"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 ) คู่คีย์เชนที่ใช้สำหรับการตรวจสอบสิทธิ์ Wi-Fi ใน Android 12 และ ด้านบน คู่คีย์ KeyChain ที่มีชื่อแทนที่ระบุด้วย ClientCertKeyPairAlias ได้รับสิทธิ์ในการตรวจสอบสิทธิ์กับเครือข่าย Wi-Fi และ ซึ่งใช้สำหรับการตรวจสอบสิทธิ์กับเครือข่าย Wi-Fi ที่เกี่ยวข้อง ต่ำกว่า Android 12 nonComplianceDetail กับ API_LEVEL เพื่อรายงานเหตุผล ต 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-EAP ก็ได้ เครือข่ายที่กำหนดค่าด้วยโหมด 192 บิต WPA3

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