REST 웹 서비스가 기본, Kerberos, NTLM 또는 다른 많은 인증 방법 중 하나를 사용하는지 어떻게 결정합니까?웹 HTTP 인증 방법 결정
답변
은 "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 스타일 서비스 설명이 제공되지 않습니다 선험적 설명.
블랙 박스 시나리오 인 경우 보통 Fiddler으로 연결하고 실제 트래픽을 검사합니다.
아마도 HTTP 401 코드를 요청을 보내고 WWW-Authenticate
헤더 (RFC 2616)의 응답이 MUST
인 것을보십시오. 대신에 403이나 기타 이상한 상태 또는 누락 된 WWW-Authenticate
헤더가 있으면 코어 HTTP RFC를 따르지 않는 웹 사이트 작성자에게 저주하고 트래픽을 스니핑하여 그들이 수행 한 비표준 엉망을 리버스 엔지니어링하려고 시도합니다. 이 시간 ;-). 이 서비스가 응답하는 인증되지 않은 요청을 보낼 때
두 개의 유효한 답변을 선택할 수 있었으면 좋겠어요. 문제는 REST 서비스가 WWW 인증 헤더를 반환하지 않아서 코드가있는 헤더를 수동으로 추가해야한다는 것입니다. http://devproj20.blogspot.com/ 2008/02/assigning-basic-authorization-http.html – Seph
@Seph, 예, 웹 주변의 부러진 사이트 수가 엄청납니다. 그렇지 않습니까? RFC가 얼마나 명확한 지 (그리고 '반드시 (MUST)'보다 훨씬 명확하지는 않습니다 .-) 항상 독서가 필요하거나 읽는 데 너무 특별하다고 생각하는 "프로그래머"(HA!)가 항상 있습니다. , 지루한 워드 프로세서 ... :-(( –
- 1. 웹 참조가있는 HTTP 인증
- 2. HTTP 패킷을 결정
- 3. http 쿼리에서 사용중인 DB 결정
- 4. HTTP 인증 웹 사이트 예제 찾기
- 5. 웹 API 디자인 : 인증 방법?
- 6. IIS7 간단한 http 인증
- 7. PHP에서 HTTP 다이제스트 인증
- 8. HTTP 인증 및 PHP 인증
- 9. J2ME의 HTTP 인증
- 10. PHP - HTTP 인증 후 세션을 시작하는 방법
- 11. IIS 인증 용 HTTP 인증 헤더
- 12. 장고 + 기본 http 인증
- 13. jMeter의 HTTP 인증 관리자 사용 방법
- 14. UserName 인증 웹 서비스
- 15. HTTP 인증 JAVA
- 16. jQuery HTTP 인증
- 17. HTTP 기본 인증
- 18. http 기반 인증 만들기
- 19. ASP.NET HTTP 인증 헤더
- 20. 아파치 httpcomponents와의 HTTP 인증
- 21. HTTP 사전 인증
- 22. HTTP 인증 클라이언트 라이브러리
- 23. Android HTTP 인증
- 24. MPMoviePlayerViewController HTTP 인증 헤더
- 25. Authlogic으로 HTTP 기본 인증
- 26. iPhone에서 HTTP 인증
- 27. JBoss 4의 HTTP 기본 인증?
- 28. 스프링 보안 HTTP 기본 인증
- 29. Ajax : HTTP 기본 인증 및 인증 쿠키
- 30. HTTP 인증 변경 작업 디렉토리
) 문제는 REST 서비스가 401에서 WWW-Authenticate 헤더를 반환하지 않았기 때문에 헤더를 수동으로 지정해야했기 때문입니다. – Seph
모든 웹 사이트에 대해 1 페니 만 필요합니다. 그게 (올바른 도전과 기본 처리하지 않습니다) 그리고 은퇴 할 수 ... –