2010-08-11 39 views

Trả lời

8

Khi bạn gửi một yêu cầu không được thẩm định dịch vụ đó có đáp ứng với một "HTTP/1.1 401 Unauthorized" và phản ứng có chứa một tiêu đề WWW-Authenticate mà xác định những gì cơ chế thẩm định dự kiến ​​(Basic, Digest), lĩnh vực an ninh và bất kỳ khác giá trị cụ thể (như nonce của Digets). Vì vậy, nếu máy chủ phản hồi với:

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

nó muốn xác thực thông báo. Nếu phản hồi có dạng:

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

thì nó muốn xác thực cơ bản. Một số máy chủ/trang web được triển khai không đúng cách không xử lý chính xác Cơ bản và trả lời trực tiếp với 403 Cấm thay vì thử thách trước.

NTLM tương tự như máy chủ phản hồi với tiêu đề 401 và WWW-Authenticate với giá trị NTLM, nhưng không có thông số công khai chính thức cho nó, vì nó là độc quyền của Microsoft. Có nhiều mô tả reverseengineered khác nhau.

Thật không may REST không đi kèm với mô tả dịch vụ kiểu WSDL để khám phá lược đồ xác thực được sử dụng a priori.

+0

vấn đề là dịch vụ REST không quay trở lại với bất kỳ tiêu đề WWW-Authenticate nào trong 401 vì vậy tôi phải chỉ định thủ công tiêu đề – Seph

+1

Tôi chỉ cần 1 xu cho mỗi trang web làm điều đó (không xử lý Cơ bản với thử thách chính xác) và tôi có thể nghỉ hưu ... –

1

Nếu đó là kịch bản hộp đen, tôi thường kết nối với Fiddler và kiểm tra lưu lượng truy cập thực tế.

4

Bạn gửi yêu cầu, có thể nhận mã HTTP 401 và xem tiêu đề WWW-Authenticate (mỗi RFC 2616) phản hồi MUST bao gồm. Thay vào đó, nếu bạn nhận được trạng thái lạ 403 hoặc một số trạng thái lạ khác hoặc thiếu tiêu đề WWW-Authenticate, bạn sẽ nguyền rủa tại các tác giả trang web không theo dõi HTTP RFC cốt lõi và bắt đầu thu hút lưu lượng truy cập. thời gian này ;-).

+0

Tôi muốn tôi có thể chọn hai câu trả lời hợp lệ, vấn đề là dịch vụ REST không trả về tiêu đề WWW-Authenticate vì vậy tôi phải thêm tiêu đề bằng mã theo cách thủ công từ: http://devproj20.blogspot.com/ 2008/02/assigning-basic-authorization-http.html – Seph

+0

@Seph, vâng, số lượng trang web bị hỏng trên web đáng kinh ngạc phải không? Không có vấn đề làm thế nào rõ ràng một RFC là (và nó không nhận được nhiều rõ ràng hơn 'MUST' ;-) có _always_ rất nhiều" lập trình viên "(HA!) Người nghĩ rằng họ quá đặc biệt để phải đọc, hoặc tuân theo tài liệu nhàm chán ... :-( –

Các vấn đề liên quan