คุณใช้นโยบายเพื่อกำหนดค่าเครือข่าย Wi-Fi ในอุปกรณ์ได้ Android Management 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
(Proxy Auto-Configuration)- ต้องตั้งค่า
Type
เป็นWiFi
ระบบไม่รองรับเครือข่ายประเภทอื่นๆ
WiFi
ออบเจ็กต์:- ระบบรองรับ
SSID
และHexSSID
และต้องมีอย่างน้อย 1 รายการ- หากตั้งค่าทั้ง
HexSSID
และSSID
ค่าดังกล่าวจะต้องสอดคล้องกัน
- หากตั้งค่าทั้ง
- รองรับ
HiddenSSID
- ไม่รองรับ
AllowGatewayARPPolling
- ไม่รองรับ
SignalStrength
AutoConnect
หากเปิดใช้ ระบบจะพิจารณาเครือข่ายนี้เป็นเครือข่าย ที่มีสิทธิ์เชื่อมต่อในระหว่างการเลือกเครือข่ายSecurity
ต้องระบุและรองรับค่าต่อไปนี้ - ไม่มี - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
- ระบบรองรับ
- สำหรับรหัสผ่าน
WEP-PSK
ระบบรองรับเฉพาะรหัสผ่านแบบ 40 บิต (10 หลัก) หรือ 104 บิต (26 หลัก) เท่านั้น - ข้อกำหนดระบุว่า
WEP-PSK
รหัสผ่านต้องขึ้นต้นด้วย คำนำหน้า0x
อย่างไรก็ตาม เพื่อให้สอดคล้องกับ Android Framework คุณไม่จำเป็นต้องใช้ คำนำหน้านี้ - หากต้องการตั้งค่าโหมด
การสุ่ม MAC
ให้ใช้พร็อพเพอร์ตี้
MACAddressRandomizationMode
ที่ตั้งค่าด้วยค่าHardware
หรือAutomatic
พร็อพเพอร์ตี้นี้ไม่พร้อมใช้งานใน ข้อกำหนดการกำหนดค่าเครือข่ายแบบเปิด (ONC) แต่มีให้ใช้งานใน AMAPI และสามารถระบุได้ขณะกำหนดค่าเครือข่าย Wi-Fi การดำเนินการนี้ใช้กับ Android 13 ขึ้นไปในโหมดการจัดการทั้งหมดเท่านั้นHardware
ใช้ที่อยู่ MAC จากโรงงานเมื่อเชื่อมต่อกับเครือข่ายAutomatic
ช่วยให้เฟรมเวิร์ก Wi-Fi ตัดสินใจเลือกกลยุทธ์การสุ่ม 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 3 เครือข่ายที่กำหนดค่าด้วย
รูปแบบความปลอดภัยที่แตกต่างกัน JSON ของการกำหนดค่าเครือข่ายแบบเปิดจะซ้อนอยู่ภายใน
ฟิลด์ openNetworkConfiguration
ของ
JSON ของ Policy
"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" ], "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
เพื่อระบุชื่อแทนของคู่คีย์ KeyChain ที่ติดตั้ง
(ดูDevicePolicyManager.installKeyPair
)
หรือสร้างขึ้น (ดูDevicePolicyManager.generateKeyPair
) ซึ่งใช้สำหรับการตรวจสอบสิทธิ์ Wi-Fi ได้ด้วย สำหรับ Android 12 ขึ้นไป ระบบจะให้สิทธิ์คู่คีย์ KeyChain ที่มีชื่อแทนที่ระบุด้วย
ClientCertKeyPairAlias
สำหรับการตรวจสอบสิทธิ์กับเครือข่าย Wi-Fi และใช้สำหรับการตรวจสอบสิทธิ์กับเครือข่าย Wi-Fi ที่เกี่ยวข้อง ก่อน Android 12
จะมีการรายงาน
nonComplianceDetail
พร้อมเหตุผล
API_LEVEL
A
nonComplianceDetail
with
INVALID_VALUE
reason and
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
specific reason is reported if specified key pair alias does not correspond to
an 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" ], "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" } ] }