2010-08-11 2 views

답변

8

은 "HTTP를/1.1 401 무단"하고 응답 인증 방식이 (Basic, Digest), 보안 영역 및 기타 예상되는 것을 지정하는 WWW-Authenticate 헤더를 포함 특정 값 (예 : Digets의 nonce). 따라서 서버가 응답하는 경우 :

HTTP/1.0 401 Unauthorized 
WWW-Authenticate: Digest realm="example.com", 
         qop="auth,auth-int", 
         nonce="...", 
         opaque="..." 

다이제스트 인증이 필요합니다. 응답이 다음과 같이 나타나는 경우 :

HTTP/1.0 401 Unauthorized 
WWW-Authenticate: Basic realm="example.com" 

그러면 기본 인증이 필요합니다. 일부 (제대로) 구현 된 서버/사이트가 기본을 제대로 처리하지 못하고 직접 시도하는 대신 403 금지됨으로 직접 응답합니다.

NTLM은 NTLM이라는 값을 가진 401 및 WWW-Authenticate 헤더와 비슷한 서버 reponds와 유사하지만 Microsoft의 독점권이므로 공식 공개 사양은 없습니다. reverseengineered 설명이 다양합니다.

불행히도 REST는 사용 된 인증 체계를 발견하기위한 WSDL 스타일 서비스 설명이 제공되지 않습니다 선험적 설명.

+0

) 문제는 REST 서비스가 401에서 WWW-Authenticate 헤더를 반환하지 않았기 때문에 헤더를 수동으로 지정해야했기 때문입니다. – Seph

+1

모든 웹 사이트에 대해 1 페니 만 필요합니다. 그게 (올바른 도전과 기본 처리하지 않습니다) 그리고 은퇴 할 수 ... –

1

블랙 박스 시나리오 인 경우 보통 Fiddler으로 연결하고 실제 트래픽을 검사합니다.

4

아마도 HTTP 401 코드를 요청을 보내고 WWW-Authenticate 헤더 (RFC 2616)의 응답이 MUST 인 것을보십시오. 대신에 403이나 기타 이상한 상태 또는 누락 된 WWW-Authenticate 헤더가 있으면 코어 HTTP RFC를 따르지 않는 웹 사이트 작성자에게 저주하고 트래픽을 스니핑하여 그들이 수행 한 비표준 엉망을 리버스 엔지니어링하려고 시도합니다. 시간 ;-). 이 서비스가 응답하는 인증되지 않은 요청을 보낼 때

+0

두 개의 유효한 답변을 선택할 수 있었으면 좋겠어요. 문제는 REST 서비스가 WWW 인증 헤더를 반환하지 않아서 코드가있는 헤더를 수동으로 추가해야한다는 것입니다. http://devproj20.blogspot.com/ 2008/02/assigning-basic-authorization-http.html – Seph

+0

@Seph, 예, 웹 주변의 부러진 사이트 수가 엄청납니다. 그렇지 않습니까? RFC가 얼마나 명확한 지 (그리고 '반드시 (MUST)'보다 훨씬 명확하지는 않습니다 .-) 항상 독서가 필요하거나 읽는 데 너무 특별하다고 생각하는 "프로그래머"(HA!)가 항상 있습니다. , 지루한 워드 프로세서 ... :-(( –