사용자를 가로 채서 로그인 한 다음 사파리로 보내고 인증 요청없이 페이지를로드하려고합니다.NSURLConnection 자격 증명을 Safari와 공유하는 방법은 무엇입니까?
그래서, 내가 지금까지 뭘하는지 ...
나는 내 응용 프로그램에 대한 사용자 정의 URL 체계를 등록합니다. 그것을 "myhttp"라고 부르십시오. 이제 누군가 myhttp : //secured.com/foo 링크 (전자 메일에서 말하기)를 클릭하면 내 응용 프로그램이 실행됩니다. 앱은 어딘가에서 사용자 자격 증명을 가져오고NSURLConnection
으로 실제 URL을 호출합니다.
NSURLConectionDelegate
은
connection:didReceiveAuthenticationChallenge
을 구현하고 보안 레이어를 잘 탐색합니다. 다음으로
UIApplication
openURL
메서드를 사용하여 동일한 URL을로드하여 Safari를 가져 오려고 시도하지만 여전히 인증 확인을받습니다.
Apple 설명서에서 다음 내용을 읽었 기 때문에이 방법이 효과가 있다고 생각했습니다.
Credentials stored in persistent storage are kept in the user’s keychain and shared among all apps.
그리고 나는 NSURLCredentialStorage
가 난 그냥 등 올바른 정보 보호 공간, 구조, 거기 저장에 사용되는 자격 증명을 볼 수 확인,하지만 분명히 내가 뭔가 잘못하고 있어요하거나 그럴 것 Safari로 전환하면 인증 문제가 발생합니다.
그래서 문제는 내가 어딘가에 라인을 따라 잡았거나, 중요한 비트를 잊어 버렸을 까? 아니면 내가 잘못된 방향으로 가고있는 것인가?
그리고 왜 그런지 설명하기 위해 공유되는 자격 증명에 대한 문서의 주석이 매우 오래되었습니다. OS X에만 적용되며 iOS에는 적용되지 않습니다. OS X에서는 키 체인이 공유되며 ACL은 각 앱에 액세스 할 수있는 앱을 제한합니다. 앱이 액세스 할 수없는 권한을 사용하도록 요청하면 OS는 사용자에게 권한을 요청합니다. iOS에서 키 체인은 기본적으로 앱마다 있습니다 (키 체인 액세스 그룹과 같은 여러 가지 예외가 있음). – dgatwood