ويمكنك استخدام السياسة لضبط شبكات Wi-Fi على أحد الأجهزة. تستخدم واجهة برمجة التطبيقات Android Management API إعداد Open Network Configuration (إعدادات الشبكة المفتوحة)، وهو تنسيق عادي مستند إلى JSON تم تطويره في الأصل كجزء من مشروع Chromium. راجِع المواصفات للحصول على التفاصيل الكاملة عن إعدادات الشبكة المفتوحة.
لتضمين إعداد شبكة مفتوحة في إحدى السياسات، اضبط الحقل
openNetworkConfiguration
على أحد موارد
Policy
.
بالنسبة إلى الأجهزة المُدارة بالكامل، يمكنك اختياريًا منع المستخدم من ضبط إعدادات Wi-Fi يدويًا على جهازه من خلال ضبط wifiConfigDisabled
على true
في المرجع Policy
.
الميزات المتاحة
لا تتوافق واجهة برمجة التطبيقات 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-EAP - WEP-8021X - WPA3-Enterprise_192- بالنسبة إلى عبارات مرور
WEP-PSK
، يُسمح فقط باستخدام عبارات مرور مكوَّنة من 40 بت (10 أرقام) أو 104 بت (26 رقمًا). - تنص المواصفات على أنّ عبارات مرور
WEP-PSK
يجب أن تبدأ بالبادئة0x
. ومع ذلك، لا يلزم وضع هذه البادئة لتتوافق مع إطار عمل Android. - لضبط وضع التوزيع العشوائي على MAC، استخدِم السمة
MACAddressRandomizationMode
التي تم ضبطها مع القيمتَينHardware
أوAutomatic
. هذا الموقع غير متاح حاليًا في مواصفات إعداد الشبكة المفتوحة (ONC) ولكن يتم توفيره في AMAPI ويمكن تحديده أثناء إعداد شبكات Wi-Fi. لا ينطبق ذلك إلا على الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث في جميع أوضاع الإدارة.- يستخدم
Hardware
عنوان MAC للمصنع عند الاتصال بالشبكة. - يتيح
Automatic
لإطار عمل شبكة Wi-Fi تحديد استراتيجية توزيع MAC العشوائي تلقائيًا. وقد تكون عناوين MAC دائمة أو غير دائمة يتم إنشاؤها عشوائيًا ويتم استخدامها أثناء الاتصال بالشبكة.
- يستخدم
- "
- كائنات
EAP
:- "
ClientCertPattern
" غير متاح - "
SaveCredentials
" غير متاح - "
UseSystemCAs
" غير متاح - يمكن استخدام
DomainSuffixMatch
.
تُعدّ عمليات ضبط الإعدادات اللاسلكية في Enterprise بدون هذا الحقل (أو تحتوي على قائمة فارغة كقيمة) على أنّها غير آمنة وترفضها النظام الأساسي. يجب أن تكون القيم أسماء نطاقات صالحة (مثل "example.com" أو "subdomain.example.com"). - تتيح السمة
ClientCertType
استخدام القيمةRef
فقط. - القيم التالية مسموح بها للسمات
Inner
:MSCHAPv2
وPAP
- يمكن استخدام القيم التالية للسمتَين
Outer
:EAP-AKA
وEAP-TLS
وEAP-TTLS
وEAP-SIM
وPEAP
.
- "
- كائنات
Certificate
:- "
Remove
" غير متاح احذف الشهادة في الإعداد بدلاً من ذلك. - "
TrustBits
" غير متاح
- "
أمثلة
شبكات Wi-Fi متعددة
يعرض هذا الجزء من السياسة ثلاث شبكات Wi-Fi تم ضبطها باستخدام أنظمة أمان مختلفة. يتم دمج تنسيق 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
لشهادات العميل والخادم.
"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 المستخدَم في مصادقة Wi-Fi. في نظام التشغيل Android 12 والإصدارات الأحدث، يتم منح زوج مفاتيح KeyChain الذي له الاسم المستعار المحدَّد مع ClientCertKeyPairAlias
لمصادقة شبكات Wi-Fi ويتم استخدامه لمصادقة شبكة Wi-Fi المقابلة. أسفل الإصدار 12 من نظام التشغيل Android، تم الإبلاغ عن
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 تم ضبطها مع وضع 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" } ] }