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ępne w AMAPI i można je określić podczas konfigurowania sieci Wi-Fi. Dotyczy to tylko Androida w wersji 13 lub nowszej we wszystkich trybach zarządzania.- Podczas nawiązywania połączenia 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 nawiązywania połączenia z siecią
EAP
obiekty:ClientCertPattern
nie jest obsługiwany.- Aplikacja
SaveCredentials
nie jest obsługiwana, ponieważ dane logowania są zawsze zapisywane. 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" } ] }