می توانید از خط مشی برای پیکربندی شبکه های Wi-Fi در دستگاه استفاده کنید. API مدیریت Android از پیکربندی شبکه باز، یک قالب استاندارد مبتنی بر JSON استفاده میکند که در ابتدا به عنوان بخشی از پروژه Chromium توسعه داده شد.
برای گنجاندن یک پیکربندی شبکه باز در یک خط مشی، فیلد openNetworkConfiguration را در یک منبع Policy تنظیم کنید.
برای دستگاههای کاملاً مدیریتشده، میتوانید با تنظیم wifiConfigDisabled روی true در منبع Policy ، بهصورت اختیاری از پیکربندی دستی تنظیمات Wi-Fi روی دستگاه خود توسط کاربر جلوگیری کنید.
ویژگی های پشتیبانی شده
API مدیریت Android تنها از زیرمجموعهای از مشخصات پیکربندی شبکه باز پشتیبانی میکند.
- شی سطح بالا:
-
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لازم است و مقادیر زیر پشتیبانی می شوند: - هیچ - 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 مشخص کرد. این فقط برای 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 را نشان می دهد که با طرح های امنیتی مختلف پیکربندی شده اند. 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 میتوان برای تعیین نام مستعار یک نصب شده (به DevicePolicyManager.installKeyPair مراجعه کنید) یا ایجاد کرد (به DevicePolicyManager.generateKeyPair استفاده میشود که برای KeyPair استفاده میشود استفاده کرد. برای Android 12 و جدیدتر، جفت کلید KeyChain با نام مستعار مشخص شده با ClientCertKeyPairAlias برای احراز هویت به شبکه های Wi-Fi اعطا می شود و برای احراز هویت به شبکه Wi-Fi مربوطه استفاده می شود. قبل از Android 12، یک دلیل 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 است که با حالت 192 بیتی WPA3 پیکربندی شده است.
"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"
}
]
}