Za pomocą zasad możesz konfigurować sieci Wi-Fi na urządzeniu. Android Interfejs Management API wykorzystuje Open Network Configuration, standardowy format oparty na JSON które powstało w ramach projektu Chromium. Zapoznaj się z specyfikacja .
Aby uwzględnić w zasadzie konfigurację otwartej sieci, ustaw parametr
openNetworkConfiguration
: pole na
Policy
.
.
W przypadku urządzeń w pełni zarządzanych możesz opcjonalnie uniemożliwić użytkownikowi ręczne
skonfigurować ustawienia Wi-Fi na urządzeniu, ustawiając wifiConfigDisabled
na
true
w
Policy
.
.
Obsługiwane funkcje
Interfejs Android Management API obsługuje tylko podzbiór sieci Open Network Specyfikacja konfiguracji.
- Obiekt najwyższego poziomu:
- Pole
Type
należy pominąć lub ustawić naUnencryptedConfiguration
. Brak musi zaszyfrować konfigurację sieci w ramach zasady, ponieważ cała zasada jest szyfrowana w usłudze Android Management API. Stosuje się też drugą warstwa szyfrowania dla poufnych danych takie jak hasła i klucze prywatne.
- Pole
NetworkConfiguration
obiekty:GUID
,Name
,Type
iWiFi
są obsługiwane pola i wszystkie są wymagane.ProxySettings
to pole opcjonalne. Jeśli jest używany, tylko Obsługiwane są interfejsyManual
iPAC
(automatyczna konfiguracja serwera proxy).- Pole
Type
musi mieć wartośćWiFi
. Inne typy sieci nie są obsługiwane.
WiFi
obiekty:AllowGatewayARPPolling
nie jest obsługiwany.SignalStrength
nie jest obsługiwany.- Pole
Security
jest wymagane i obsługiwane są następujące wartości: - Brak – WEP-PSK – WPA-PSK – WPA-EAP – WEP-8021X – WPA3-Enterprise_192 - W przypadku haseł
WEP-PSK
tylko 40-bitowe (10-cyfrowe) lub 104-bitowe (26-cyfrowe) hasła są obsługiwane. - Specyfikacja wskazuje, że hasła
WEP-PSK
muszą zaczynać się od prefiks0x
. Jednak dla zachowania spójności z platformą Android Framework prefiks nie jest wymagany. - Aby ustawić tryb randomizacji MAC, użyj właściwości
MACAddressRandomizationMode
. ustawionym wartościąHardware
lubAutomatic
. Ta usługa jest obecnie niedostępna w specyfikacji Open Network Configuration (ONC); , ale jest dostępny w AMAPI i można go określić podczas konfigurowania sieci Wi-Fi. Dotyczy to tylko Androida w wersji 13 lub nowszej we wszystkich trybach zarządzania.- Podczas łączenia się z siecią
Hardware
używa fabrycznego adresu MAC. Automatic
sprawia, że platforma Wi-Fi automatycznie określa MAC strategii randomizacji. Może być trwały lub nietrwały. losowo generowane adresy MAC używane przy nawiązywaniu połączenia w sieci.
- Podczas łączenia się z siecią
EAP
obiekty:ClientCertPattern
nie jest obsługiwany.SaveCredentials
nie jest obsługiwany.UseSystemCAs
nie jest obsługiwany.DomainSuffixMatch
jest obsługiwane.
Firmowe konfiguracje sieci bezprzewodowych bez tego pola (lub gdy jest ono puste lista jako wartość), są uwzględniane niezabezpieczonych i odrzuconych przez platformę. Wartościami powinny być prawidłowe nazwy domen (np. „example.com”, „subdomena.example.com”).- W przypadku opcji
ClientCertType
obsługiwane są te wartości:Ref
,KeyPairAlias
- W przypadku opcji
Inner
obsługiwane są te wartości:MSCHAPv2
,PAP
- W przypadku parametru
Outer
obsługiwane są te wartości:EAP-AKA
,EAP-TLS
,EAP-TTLS
,EAP-SIM
,PEAP
Certificate
obiekty:Remove
nie jest obsługiwany. Pomiń certyfikat w konfiguracji .TrustBits
nie jest obsługiwany.
Przykłady
Wiele sieci Wi-Fi
Ten przykładowy fragment zasad pokazuje 3 sieci Wi-Fi ze skonfigurowanym parametrem
dla różnych systemów bezpieczeństwa. Plik JSON Open Network Configuration jest zagnieżdżony w pliku JSON
pole openNetworkConfiguration
funkcji
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" } }] }
Uwierzytelnianie EAP
Ten przykładowy fragment zasady pokazuje sieć bezprzewodową skonfigurowaną za pomocą EAP-TLS
uwierzytelnianie. Oprócz obiektu NetworkConfigurations
przykład
zawiera 2 obiekty Certificates
dla certyfikatów klienta i serwera.
"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" } ] }
Pole ClientCertType
może być również ustawione na KeyPairAlias
, a
Za pomocą pola ClientCertKeyPairAlias
można określić alias zainstalowanej aplikacji
(zobacz
DevicePolicyManager.installKeyPair
)
lub wygenerowanych (zobacz
DevicePolicyManager.generateKeyPair
) para kluczy pęku kluczy wykorzystywana do uwierzytelniania Wi-Fi. Na Androidzie 12 i
powyżej, para kluczy pęku kluczy ma alias określony jako
ClientCertKeyPairAlias
jest dozwolony na potrzeby uwierzytelniania w sieciach Wi-Fi i jest
jest używany do uwierzytelniania w odpowiedniej sieci Wi-Fi. W wersji starszej niż Android 12
nonComplianceDetail
z
API_LEVEL
o danej przyczynie. O
nonComplianceDetail
z
INVALID_VALUE
przyczyny i
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
Jeśli określony alias pary kluczy nie odpowiada
obecny klucz. Oto przykładowa zasada:
"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" } ] }
Pole Security
może zawierać również wartość WPA3-Enterprise_192
, która jest protokołem WPA-EAP
z siecią skonfigurowaną w trybie 192-bitowym WPA3.
"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" } ] }