A caixa de diálogo "Autenticação de proxy necessária" no iOS ocorre quando um aplicativo ou sistema não consegue se autenticar com um servidor proxy. Isso pode acontecer mesmo depois de passar o nome de usuário e a senha via NEProxyServer. Aqui estão alguns pontos-chave:
- Definir as credenciais do proxy programaticamente nas propriedades do NEProxyServer (nome de usuário, senha) nem sempre funciona. A caixa de diálogo ainda aparece solicitando que o usuário insira manualmente as credenciais[1][2].
- Ativar a autenticação básica no servidor proxy (por exemplo, com mitmproxy usando --proxyauth) funciona para HTTP, mas nem sempre para HTTPS no iOS. Este parece ser um bug no nível do protocolo no mitmproxy que foi introduzido na versão 8.1.0[4].
- No macOS, o problema pode ocorrer quando os processos do sistema tentam acessar recursos da Internet antes que o Mac tenha a chance de extrair um ticket Kerberos do proxy. Permitir que esses processos usem um proxy não autenticado pode ajudar a resolver os prompts[5].
- Depurar o código do aplicativo e verificar redirecionamentos não intencionais nos arquivos de configuração do servidor são outras etapas de solução de problemas que podem ajudar[3].
Em resumo, a caixa de diálogo “Autenticação de proxy necessária” no iOS é um problema conhecido ao usar proxies. A configuração programática das credenciais nem sempre funciona e pode haver bugs no nível do protocolo em alguns servidores proxy. Recomenda-se consultar a equipe de proxy para colocar determinados destinos na lista de permissões.
Citações:[1] https://forums.developer.apple.com/thread/112201
[2] https://stackoverflow.com/questions/53852899/ios-keep-showing-proxy-authentication-required-dialog-even-after-passing-usern
[3] https://kinsta.com/knowledgebase/http-error-407/
[4] https://github.com/mitmproxy/mitmproxy/issues/6420
[5] https://community.jamf.com/t5/jamf-pro/the-ever-present-quot-proxy-authentication-required-quot-prompt/mp/172881