Você pode usar a política para configurar redes Wi-Fi em um dispositivo. O Android A API Management usa Open Network Configuration, um formato padrão baseado em JSON desenvolvido originalmente como parte do projeto Chromium. Consulte a especificação para detalhes completos sobre a Configuração de Rede Aberta.
Para incluir uma configuração de rede aberta em uma política, defina o
openNetworkConfiguration
em uma
Policy
recurso.
Em dispositivos totalmente gerenciados, você tem a opção de impedir que um usuário
definindo as configurações de Wi-Fi no dispositivo definindo wifiConfigDisabled
como
true
na
Policy
recurso.
Recursos compatíveis
A API Android Management só oferece suporte a um subconjunto da rede aberta Especificação de configuração.
- Objeto de nível superior:
Type
precisa ser omitido ou definido comoUnencryptedConfiguration
. Não há precisar criptografar a configuração de rede em uma política, porque os toda a política é criptografada no serviço da API Android Management. Além disso, há uma segunda camada de criptografia para dados como senhas longas e chaves privadas.
NetworkConfiguration
objetos:GUID
,Name
,Type
eWiFi
estão campos compatíveis e são obrigatórios.ProxySettings
é um campo opcional. Se for usado, apenasManual
ePAC
(Configuração automática do proxy) são compatíveis.Type
precisa ser definido comoWiFi
. Outros tipos de redes não são compatíveis.
WiFi
objetos:AllowGatewayARPPolling
não é compatível.SignalStrength
não é compatível.Security
é obrigatório, e os seguintes valores são compatíveis: - Nenhum – WEP-PSK – WPA-PSK – WPA-EAP – WEP-8021X – WPA3-Enterprise_192- Para senhas longas
WEP-PSK
, somente 40 bits (10 dígitos) ou 104 bits (26 dígitos) as senhas longas são compatíveis. - A especificação afirma que as senhas longas de
WEP-PSK
precisam começar com o0x
. No entanto, para manter a consistência com o framework do Android, não é necessário. - Para definir o modo de ordem aleatória de MAC, use a propriedade
MACAddressRandomizationMode
definido com os valoresHardware
ouAutomatic
. No momento, essa propriedade está indisponível na especificação Open Network Configuration (ONC) mas é fornecido na AMAPI e pode ser especificado na configuração de redes Wi-Fi. Isso se aplica apenas ao Android 13 e versões mais recentes em todos os modos de gerenciamento.- O
Hardware
usa o endereço MAC de fábrica ao se conectar à rede. Automatic
permite que o framework de Wi-Fi decida automaticamente o MAC estratégia de randomização. Pode ser persistente ou não persistente endereços MAC gerados aleatoriamente que são usados durante a conexão na rede.
- O
EAP
objetos:ClientCertPattern
não é compatível.SaveCredentials
não é compatível, porque as credenciais são sempre salvas.UseSystemCAs
não é compatível.DomainSuffixMatch
é compatível. Configurações sem fio corporativas sem este campo (ou com uma lista como valor) são considerados não segura e rejeitada pela plataforma. Os valores devem ser nomes de domínio válidos (por exemplo, "example.com", "subdomain.example.com").- Os seguintes valores são compatíveis com
ClientCertType
:Ref
eKeyPairAlias
- Os seguintes valores são compatíveis com
Inner
:MSCHAPv2
ePAP
- Os seguintes valores são compatíveis com
Outer
:EAP-AKA
,EAP-TLS
eEAP-TTLS
,EAP-SIM
ePEAP
Certificate
objetos:Remove
não é compatível. Omitir o certificado na configuração como alternativa.TrustBits
não é compatível.
Exemplos
Várias redes Wi-Fi
Este exemplo de fragmento de política mostra três redes Wi-Fi configuradas com
diferentes esquemas de segurança. O JSON de configuração de rede aberta está aninhado
o campo openNetworkConfiguration
do
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" } } ] }
Autenticação EAP
Este exemplo de fragmento de política mostra uma rede sem fio configurada com EAP-TLS
autenticação. Além do objeto NetworkConfigurations
, o exemplo
inclui dois objetos Certificates
para os certificados do cliente e do servidor.
"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" } ] }
O campo ClientCertType
também pode ser definido como KeyPairAlias
, e o
O campo ClientCertKeyPairAlias
pode ser usado para especificar o alias de um servidor
(consulte
DevicePolicyManager.installKeyPair
)
ou gerados (consulte
DevicePolicyManager.generateKeyPair
) Par de chaves KeyChain usado para autenticação por Wi-Fi. No Android 12 e
acima, o par de chaves KeyChain com o alias especificado
O ClientCertKeyPairAlias
é concedido para autenticação em redes Wi-Fi e é
usada para autenticação na rede Wi-Fi correspondente. Abaixo do Android 12, uma
nonComplianceDetail
com
API_LEVEL
motivo for informado. Um
nonComplianceDetail
com
INVALID_VALUE
motivo e
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY
um motivo específico será informado se o alias do par de chaves especificado não corresponder
uma chave atual. Confira a seguir um exemplo de política:
"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" } ] }
O campo Security
também pode ser WPA3-Enterprise_192
, que é um protocolo WPA-EAP
configurada com o modo WPA3 de 192 bits.
"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" } ] }