يمكنك استخدام السياسة لإعداد شبكات Wi-Fi على جهاز. تستخدم واجهة برمجة التطبيقات Android Management API تنسيق Open Network Configuration، وهو تنسيق عادي يستند إلى JSON وتم تطويره في الأصل كجزء من مشروع Chromium.
لتضمين إعدادات شبكة مفتوحة في إحدى السياسات، اضبط الحقل openNetworkConfiguration في مصدر Policy.
بالنسبة إلى الأجهزة المُدارة بالكامل، يمكنك اختياريًا منع المستخدم من ضبط إعدادات Wi-Fi يدويًا على جهازه عن طريق ضبط wifiConfigDisabled على true في مصدر Policy.
الميزات المتاحة
لا تتوافق واجهة برمجة التطبيقات Android Management API إلا مع مجموعة فرعية من مواصفات Open Network Configuration.
- عنصر المستوى الأعلى:
- يجب حذف
Typeأو ضبطه علىUnencryptedConfiguration. لا حاجة إلى تشفير إعدادات الشبكة ضمن إحدى السياسات لأنّ السياسة بأكملها مشفّرة ضمن خدمة Android Management API. بالإضافة إلى ذلك، هناك طبقة ثانية من التشفير للمعلومات الحسّاسة، مثل عبارات المرور والمفاتيح الخاصة.
- يجب حذف
NetworkConfigurationعناصر:GUIDوNameوTypeوWiFiهي حقول متوافقة، وكلها مطلوبة.ProxySettingsهو حقل اختياري. في حال استخدام هذا الخيار، لن يتم توفير سوىManualوPAC(الإعداد التلقائي للخادم الوكيل).- يجب ضبط
TypeعلىWiFi. لا تتوافق مع الأنواع الأخرى من الشبكات.
WiFiعناصر:- تتوفّر السمتان
SSIDوHexSSID، ويجب توفير إحداهما على الأقل.- في حال ضبط كل من
HexSSIDوSSID، يجب أن تكون القيم متسقة.
- في حال ضبط كل من
-
HiddenSSIDمتاح. - "
AllowGatewayARPPolling" غير متاح - "
SignalStrength" غير متاح -
AutoConnect: يحدّد هذا الحقل ما إذا كانت الشبكة مفعّلة تلقائيًا. لا يرتبط هذا الإعداد بخيار الاتصال التلقائي لكل شبكة متاح للمستخدمين في إعدادات Wi-Fi الخاصة بالجهاز.- إذا تم ضبطها على
true، تكون الشبكة مفعّلة، ما يعني أنّه يمكن للجهاز الاتصال بها تلقائيًا بدون أن يختارها المستخدم بشكل صريح في إعدادات Wi-Fi، إلا إذا أوقف المستخدم خيار الاتصال التلقائي بهذه الشبكة. - في حال ضبطها على
false، تتم إضافة الشبكة إلى قائمة الشبكات المحفوظة ولكن لا يتم تفعيلها. لا يتصل الجهاز تلقائيًا بالشبكة. لكي يتصل الجهاز بالشبكة، على المستخدم اختيار الشبكة يدويًا مرة واحدة من إعدادات Wi-Fi. بعد الاتصال اليدوي الأول، يتم التعامل مع الشبكة على أنّها مفعّلة ويمكن للجهاز الاتصال بها تلقائيًا ما لم يوقف المستخدم خيار الاتصال التلقائي بهذه الشبكة.
- إذا تم ضبطها على
- يجب إدخال قيمة
Security، والقيم التالية متوافقة: - None - 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. هذه السمة غير متاحة في مواصفات Open Network Configuration (ONC) ولكنها متوفّرة في واجهة برمجة التطبيقات Android Management API ويمكن تحديدها أثناء إعداد شبكات Wi-Fi. ينطبق ذلك على الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث في جميع أوضاع الإدارة.Hardwareيستخدم عنوان MAC الأصلي عند الاتصال بالشبكة.- تتيح السمة
Automaticلإطار عمل Wi-Fi تحديد استراتيجية عشوائية لعنوان MAC تلقائيًا. يمكن أن تكون عناوين MAC هذه دائمة أو غير دائمة يتم إنشاؤها بشكل عشوائي ويتم استخدامها أثناء الاتصال بالشبكة.
- عناصر
EAP: - "
ClientCertPattern" غير متاح - لا يمكن إيقاف هذه الميزة لأنّه يتم حفظ بيانات الاعتماد دائمًا.
SaveCredentials - "
UseSystemCAs" غير متاح -
ServerCARefمتاح. -
ServerCARefsمتاح. -
DomainSuffixMatchمتاح. تُعدّ إعدادات شبكة Wi-Fi الخاصة بالمؤسسة التي لا تتضمّن هذا الحقل (أو تتضمّن قائمة فارغة كقيمة) غير آمنة وترفضها المنصة. يجب أن تكون القيم أسماء نطاقات صالحة (مثل "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 تم ضبطها باستخدام أنظمة أمان مختلفة. يتم تضمين Open Network Configuration 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 لشهادات العميل والخادم.
"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 المعنية. قبل الإصدار 12 من نظام التشغيل Android، يتم تسجيل nonComplianceDetail مع السبب API_LEVEL. يتم تسجيل الخطأ A
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"
],
"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"
}
]
}