NSURLAuthenticationMethodServerTrust を理解できません。私のアプリでは、サーバーに基づいて http 接続と https 接続の両方を使用する必要があります。私の質問は、NSURLAuthenticationMethodServerTrust チャレンジを取得した場合、https 接続として安全に想定できるかどうかです。この課題に対して、具体的にどのような対応をすればよいのでしょうか。
どんな助けでも大歓迎です。ありがとう
NSURLAuthenticationMethodServerTrust を理解できません。私のアプリでは、サーバーに基づいて http 接続と https 接続の両方を使用する必要があります。私の質問は、NSURLAuthenticationMethodServerTrust チャレンジを取得した場合、https 接続として安全に想定できるかどうかです。この課題に対して、具体的にどのような対応をすればよいのでしょうか。
どんな助けでも大歓迎です。ありがとう
NSURLAuthenticationMethodServerTrust
受信が常に https 接続を示しているかどうかはわかりません。単純な http 接続が認証の課題を引き起こす理由や方法がNSURLAuthenticationMethodServerTrust
わからないので、https だと思いますが、確かなことはわかりません。しかし、 にNSURLAuthenticationChallenge
は がありNSURLProtectionSpace
、これには プロパティ がありますreceivesCredentialSecurely
。ドキュメントは少し具体的ではありませんが、このプロパティは、http/https の場合は https を意味するサーバーへの安全な接続を示していると思います。
何に応答するかについては、このトピックに関して macnetworkprog-mailinglist に役立つスレッドがあります: Question + Answer
概要: これNSURLAuthenticationMethodServerTrust
は、クライアントがサーバーの認証チャレンジに応答することではなく、クライアントであるあなたに、サーバーをまったく信頼する必要があるかどうかを確認する機会を与えることです。その場合、protectionSpace
チャレンジの には、serverTrust
このサーバーが信頼できるかどうかを検証するために必要なすべての情報を含むオブジェクト/構造体が含まれます。一般に、SecTrustEvaluate
関数を使用して をチェックしserverTrust
、そのチェックの結果に従って動作します。詳細については、こちらを参照してください: TLS チェーン検証を正しくオーバーライドする
チェックでサーバーが信頼できると判断された場合は、オブジェクトを使用して を作成し、NSURLCredential
serverTrust
それを認証チャレンジの送信者/完了ブロックに渡します。
Appleによる非常に
広範なサンプル プロジェクトをここで見つけることができます。 1つの代わりにメソッドを委任する必要があった古いNSURLConnectionDelegate
もののみを処理します(新しいものやのようにNSURLSessionDelegate
)。しかし、そこに示されている検証と、実装できるさまざまなシナリオは引き続き適用され、簡単に に転送できるはずNSURLSession
です。