2012-08-23 28 views
24

Tôi đang cố truy cập một dịch vụ nằm ngoài Xác thực Windows. Tôi nghĩ rằng tôi có thể vượt qua các thông tin xác thực cách thức thông tin xác thực HTTP cơ bản được thông qua, nhưng nó không hoạt động. Khi tôi làm như sau, tôi nhận được một lỗi 401, và tôi hoàn toàn chắc chắn mật khẩu là chính xác.Tại sao cURL không hoạt động với Xác thực Windows trên IIS7?

curl --user username:password http://example.com 

Tại sao tính năng này không hoạt động?

Trả lời

39

Nếu bạn đang sử dụng Windows Authentication, bạn cần phải sử dụng NTLM:

curl --ntlm --user username:password http://example.com 
+3

Và nếu bạn không đặt mật khẩu, dòng lệnh sẽ nhắc bạn. – Neal

+3

Xem câu trả lời của tôi với cách sử dụng người dùng đã đăng nhập hiện tại cho các yêu cầu của bạn –

17

Bạn cũng có thể để lại thông tin username và password rỗng (-u :) và curl sẽ sử dụng thông tin hiện tại của bạn từ môi trường của bạn:

curl --ntlm -u : http://example.com 

mỗi sự docs (dưới -u, --user)

Nếu bạn sử dụng nhị phân curl hỗ trợ Windows SSPI và thực hiện xác thực Kerberos V5, Thoả thuận, NTLM hoặc Digest thì bạn có thể yêu cầu curl chọn tên người dùng và mật khẩu từ môi trường của bạn bằng cách chỉ định một dấu hai chấm với tùy chọn này: " -u: ".

Kerberos-Enabled Binaries

0

Tôi chỉ muốn nói thêm rằng uỷ quyền có thể bao gồm một số chuyển hướng và xác thực NTLM thể được yêu cầu cho các yêu cầu lần thứ hai trở, nhưng không phải là người đầu tiên. Trong trường hợp này câu trả lời ở đây sẽ không hoạt động.

Điều này là, CURL gửi thông tin đăng nhập với yêu cầu đầu tiên chỉ, trong khi bạn có thể cần chúng cho ví dụ thứ hai. Để chuyển thông tin đăng nhập với tất cả các yêu cầu, hãy sử dụng tùy chọn --location-trusted.

Từ tài liệu CURL (-L option):

Khi xác thực được sử dụng, curl chỉ gửi thông tin của mình cho các máy chủ ban đầu. Nếu chuyển hướng chuyển sang một máy chủ lưu trữ khác, nó sẽ không thể chặn mật khẩu người dùng +. Xem thêm --được tin cậy về cách thay đổi điều này.

Lưu ý quan trọng này đã giúp tôi ủy quyền trên trang web công ty của mình. Hy vọng rằng sẽ giúp ai đó khác.

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