32

Windows 認証の背後にあるサービスにアクセスしようとしています。HTTP 基本認証資格情報が渡される方法で資格情報を渡すことができると思っていましたが、機能していません。以下を実行すると、401 エラーが発生しますが、パスワードが正しいことは間違いありません。

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

なぜこれが機能しないのですか?

4

4 に答える 4

47

Windows 認証を使用している場合は、NTLM を使用する必要があります。

curl --ntlm --user username:password http://example.com
于 2012-08-23T14:55:56.613 に答える
4

承認には複数のリダイレクトが含まれる可能性があり、最初の要求ではなく 2 番目以降の要求で NTLM 認証が必要になる可能性があることを付け加えたいと思います。この場合、ここでの回答は機能しません。

問題は、CURL は最初の要求でのみ資格情報を送信しますが、たとえば 2 番目の要求では資格情報が必要になる場合があることです。すべての要求で資格情報を渡すには、--location-trustedオプションを使用します。

CURL ドキュメントから (-Lオプション):

認証が使用される場合、curl はその資格情報のみを最初のホストに送信します。リダイレクトによって curl が別のホストに移動する場合、ユーザーとパスワードを傍受することはできません。これを変更する方法については、 --location-trusted も参照してください。

この重要なメモは、会社の Web サイトで承認するのに役立ちました。それが他の誰かを助けることを願っています。

于 2017-04-14T23:04:46.307 に答える