iOS의 "프록시 인증 필요" 대화 상자는 앱이나 시스템이 프록시 서버로 인증할 수 없을 때 발생합니다. 이는 NEProxyServer를 통해 사용자 이름과 비밀번호를 전달한 후에도 발생할 수 있습니다. 다음은 몇 가지 핵심 사항입니다.
- NEProxyServer의 속성(사용자 이름, 비밀번호)에서 프로그래밍 방식으로 프록시 자격 증명을 설정하는 것이 항상 작동하는 것은 아닙니다. 사용자에게 자격 증명[1][2]을 수동으로 입력하라는 대화 상자가 계속 나타납니다.
- 프록시 서버에서 기본 인증을 활성화하면(예: --proxyauth를 사용하는 mitmproxy 사용) HTTP에서는 작동하지만 iOS의 HTTPS에서는 항상 작동하는 것은 아닙니다. 이는 버전 8.1.0[4]에 도입된 mitmproxy의 프로토콜 수준 버그인 것 같습니다.
- macOS에서는 Mac이 프록시에서 Kerberos 티켓을 가져오기 전에 시스템 프로세스가 인터넷 리소스에 액세스하려고 하면 문제가 발생할 수 있습니다. 이러한 프로세스가 인증되지 않은 프록시를 사용하도록 허용하면 프롬프트를 해결하는 데 도움이 될 수 있습니다[5].
- 앱의 코드를 디버깅하고 서버 구성 파일에서 의도하지 않은 리디렉션을 확인하는 것도 도움이 될 수 있는 다른 문제 해결 단계입니다[3].
요약하자면, iOS의 "프록시 인증 필요" 대화 상자는 프록시를 사용할 때 알려진 문제입니다. 프로그래밍 방식으로 자격 증명을 설정하는 것이 항상 작동하는 것은 아니며 일부 프록시 서버에는 프로토콜 수준 버그가 있을 수 있습니다. 특정 목적지를 허용하려면 프록시 팀과 상의하는 것이 좋습니다.
인용:[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/m-p/172881