사용자 개입 없이 iOS에서 프록시 인증을 자동화하려면 다음 접근 방식을 시도해 볼 수 있습니다.
프로그래밍 방식으로 NEProxyServer 사용
- 앱의 VPN 구성에서 NEProxyServer의 ProxyServer, 포트, 사용자 이름 및 비밀번호 속성을 설정합니다[1][2]
- 그러나 이것이 항상 작동하는 것은 아니며 사용자에게 자격 증명을 수동으로 입력하도록 요청하는 "프록시 인증 필요" 대화 상자가 계속 나타날 수 있습니다.
프록시 서버에서 기본 인증 활성화
- 예를 들어 mitmproxy의 경우 --proxyauth 옵션을 사용하여 기본 인증을 활성화합니다[1]
- 이는 HTTP에서는 작동하지만 8.1.0 이후 mitmproxy 버전의 프로토콜 수준 버그로 인해 iOS의 HTTPS에서는 항상 작동하는 것은 아닙니다.[1]
프록시 서버의 특정 대상을 화이트리스트에 추가
- 인증이 필요하지 않은 특정 대상을 화이트리스트에 추가하려면 프록시 팀에 문의하세요.[2]
- 이를 통해 시스템 프로세스가 인증 프롬프트를 트리거하지 않고 인터넷 리소스에 액세스할 수 있습니다.
macOS에서 인증되지 않은 프록시에 대한 인증 비활성화
- macOS에서는 Kerberos 티켓을 프록시에서 가져오기 전에 시스템 프로세스가 리소스에 액세스하려고 하면 문제가 발생할 수 있습니다.
- 이러한 프로세스가 인증되지 않은 프록시를 사용하도록 허용하면 프롬프트를 해결하는 데 도움이 될 수 있습니다[1]
의도하지 않은 리디렉션에 대한 디버그
- 인증 대화 상자를 유발할 수 있는 의도하지 않은 리디렉션이 있는지 앱의 코드와 프록시 서버 구성 파일을 확인하세요[1]
요약하자면 iOS에서 프록시 인증을 완전히 자동화하는 완벽한 방법은 없지만 NEProxyServer를 프로그래밍 방식으로 사용하고 프록시 서버에서 기본 인증을 활성화하고 대상을 화이트리스트에 추가하고 리디렉션을 디버깅하는 것은 사용자 개입을 최소화하는 데 도움이 될 수 있는 몇 가지 기술입니다. 그러나 일부 경우에는 프로토콜 수준 문제로 인해 "프록시 인증 필요" 대화 상자가 계속 나타날 수 있습니다.
인용:[1] https://stackoverflow.com/questions/53852899/ios-keep-showing-proxy-authentication-required-dialog-even-after-passing-usern
[2] https://forums.developer.apple.com/thread/112201
[3] https://smartproxy.com/configuration/how-to-setup-proxy-for-iphone
[4] https://www.howtogeek.com/293676/how-to-configure-a-proxy-server-on-an-iphone-or-ipad/
[5] https://discussions.apple.com/thread/250375534