3

iOS 응용 프로그램에서 "협상"HTTP 인증 구성표가 지원됩니까?HTTP 인증 유형 iOS 클라이언트 응용 프로그램에서 협상

이 인증 체계를 사용하는 서버에 액세스하려고합니다. 현재 내부적으로 CFNetwork 라이브러리를 사용하는 ASIHTTPRequest 클래스를 사용하고 있습니다. 인증이 실패하고 ASHTTPRequest 코드를 통해 추적하면 CFHTTPAuthenticationCreateFromResponse 함수를 호출하여 생성 된 CFHTTPAuthentication 객체가 CFHTTPAuthenticationIsValid 함수로 확인에 실패한 후 실패합니다. 반환 된 오류는 "kCFStreamErrorHTTPAuthenticationTypeUnsupported = -1000"입니다. CFHTTPAuthentication을 만들기 위해 사용하는 응답에는 "WWW-Authenticate = Negotiate"헤더가 있습니다. 이것은 협상 체계가 지원되지 않는다고 생각하게 만듭니다. 그러나 CFHTTPAuthentication에 대한 라이브러리 설명서는 "kCFHTTPAuthenticationSchemeNegotiate"를 "iOS 2.0 이상에서 사용 가능"으로 나열합니다.

다음은 attemptToApplyCredentialsAndResume 메소드의 ASIHTTPRequest.m에있는 코드의 관련 부분입니다.

// Read authentication data 
if (!requestAuthentication) { 
    CFHTTPMessageRef responseHeader = (CFHTTPMessageRef) CFReadStreamCopyProperty((CFReadStreamRef)[self readStream],kCFStreamPropertyHTTPResponseHeader); 
    requestAuthentication = CFHTTPAuthenticationCreateFromResponse(NULL, responseHeader); 
    CFRelease(responseHeader); 
    [self setAuthenticationScheme:[(NSString *)CFHTTPAuthenticationCopyMethod(requestAuthentication) autorelease]]; 
} 

//SNIP 

// See if authentication is valid 
CFStreamError err;  
if (!CFHTTPAuthenticationIsValid(requestAuthentication, &err)) { 

    CFRelease(requestAuthentication); 
    requestAuthentication = NULL; 

나는 또한 협상 체계 자체에 대해 다소 혼란 스럽다. 내가 이해하는 한, 가능한 경우 Kerberos 구성표를 사용하고 NTLM 구성표가 아니라면 NTLM 구성표로 되돌려 야합니다. NTLM 체계는 iOS에서 지원되지만 CFHTTPAuthenticationCreateFromResponse가 처리하는 방식과는 달리이 대체는 일어나지 않는 것 같습니다.

+0

아이폰에서 Kerberos에 대한 지원이 없습니다. –

+0

좋아, 그게 내가 기대하고 있었던거야. 그러나,이 동의어는 "아이폰에서 협상을지지하지 않는다"는 말과 동의어입니까? 나는 협상 계획이 Kerberos가 작동하지 않을 때 NTLM으로 돌아 가기로되어 있다고 생각했습니다. – Steve

+0

올바른 내용이지만 iOS가 독점적 인 인증 스키마를 지원하지는 않습니다. 타사 구현을 수행 할 수 있습니다. –

답변

0

iPhone에서 Kerberos를 지원하지 않습니다. Negotiate는 NTLM으로 돌아가지만 iOS가 독점적 인 인증 스키마를 지원할 것으로 기대하지는 않습니다. 제 3 자 구현이있을 수 있습니다.

+0

NTLM은 지원되며 독점권이 없습니다. – honus

1

사파리 iOS 7의 싱글 사인온 (SSO) HTTP를 통해이 협상 지원

SSO를 구성하려면, 아이폰 OS는 MDM 서버가 필요한 설정을 아래로 밀어 수 있도록 구성 프로파일 페이로드를 지원합니다. 여기에는 사용자 원칙 (즉, Active Directory 사용자 계정) 및 Kerberos 영역 설정뿐만 아니라 SSO를 사용할 수있는 앱 및/또는 Safari 웹 URL 구성이 포함됩니다.

출처 : iOS Security, Feb 2014 (18 페이지)

관련 문제