يمكنك استخدام السياسة لإعداد شبكات 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)، ولكنها متوفّرة في AMAPI ويمكن تحديدها أثناء إعداد شبكات 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وEAP-PWDو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-bit.
"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"
}
]
}