شما میتوانید از پالیسی برای پیکربندی شبکههای وایفای در یک دستگاه استفاده کنید. API مدیریت اندروید از پیکربندی شبکه باز، یک فرمت استاندارد مبتنی بر JSON که در ابتدا به عنوان بخشی از پروژه کرومیوم توسعه داده شده بود، استفاده میکند.
برای گنجاندن پیکربندی شبکه باز در یک سیاست، فیلد openNetworkConfiguration را روی یک منبع Policy تنظیم کنید.
برای دستگاههای کاملاً مدیریتشده، میتوانید با تنظیم wifiConfigDisabled روی true در منبع Policy ، به صورت اختیاری از پیکربندی دستی تنظیمات Wi-Fi توسط کاربر در دستگاه خود جلوگیری کنید.
ویژگیهای پشتیبانیشده
رابط برنامهنویسی کاربردی مدیریت اندروید (Android Management API) تنها از زیرمجموعهای از مشخصات پیکربندی شبکه باز (Open Network Configuration) پشتیبانی میکند.
- شیء سطح بالا:
-
Typeباید حذف شود یا رویUnencryptedConfigurationتنظیم شود. نیازی به رمزگذاری پیکربندی شبکه در یک خطمشی نیست زیرا کل خطمشی در سرویس 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مورد نیاز است و مقادیر زیر پشتیبانی میشوند: - هیچکدام - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
-
- برای عبارات عبور
WEP-PSK، فقط عبارات عبور ۴۰ بیتی (۱۰ رقمی) یا ۱۰۴ بیتی (۲۶ رقمی) پشتیبانی میشوند. - طبق مشخصات، رمزهای عبور
WEP-PSKباید با پیشوند0xشروع شوند. با این حال، برای سازگاری با چارچوب اندروید، این پیشوند الزامی نیست. - برای تنظیم حالت تصادفیسازی MAC ، از ویژگی
MACAddressRandomizationModeکه با مقادیرHardwareیاAutomaticتنظیم شده است، استفاده کنید. این ویژگی در مشخصات پیکربندی شبکه باز (ONC) در دسترس نیست، اما در AMAPI ارائه شده است و میتواند هنگام پیکربندی شبکههای Wi-Fi مشخص شود. این فقط برای اندروید ۱۳+ در تمام حالتهای مدیریت اعمال میشود.-
Hardwareهنگام اتصال به شبکه از آدرس MAC کارخانهای استفاده میکند. -
Automaticبه چارچوب وایفای اجازه میدهد تا بهطور خودکار استراتژی تصادفیسازی مک را تعیین کند. این میتواند شامل آدرسهای مک تصادفی پایدار یا ناپایدار باشد که هنگام اتصال به شبکه استفاده میشوند.
-
- اشیاء
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،EAP-PWD،PEAP - اشیاء
Certificate:-
Removeپشتیبانی نمیشود. در عوض، گواهی را در پیکربندی حذف کنید. -
TrustBitsپشتیبانی نمیشود.
-
مثالها
چندین شبکه وایفای
این قطعه سیاست نمونه، سه شبکه Wi-Fi را نشان میدهد که با طرحهای امنیتی مختلف پیکربندی شدهاند. فایل JSON پیکربندی شبکه باز (Open Network Configuration JSON) در فیلد openNetworkConfiguration از فایل JSON Policy (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 استفاده میشود، استفاده شود. برای اندروید ۱۲ و جدیدتر، جفت کلید KeyChain که نام مستعار آن با ClientCertKeyPairAlias مشخص شده است، برای احراز هویت به شبکههای Wi-Fi اعطا میشود و برای احراز هویت به شبکه Wi-Fi مربوطه استفاده میشود. قبل از اندروید ۱۲، یک 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"
],
"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"
}
]
}