ユーザーの介入なしに 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