2010-11-24 14 views
25

パスワードで保護されたサイトにアクセスしようとしています。応答ヘッダがWWW-Authenticate: Negotiateであるので、基本認証を使用していません(同じユーザ/パスボックスがfirefoxでポップアップしても)。WWW認証の認証に関する問題:ネゴシエート

正しいヘッダーを送信してログインプロセスを自動化したいと考えています。

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 

私は交渉のために何を使用します。

基本的にはあなたのようなものを使うのでしょうか?

+1

WWW-Authenticate:Negotiateヘッダーは、認証と暗号化のために、サーバーがNTLMまたはKerberos(Windows 7およびWindows 2008 Server以上の場合、追加のセキュリティサポートプロバイダが追加された場合、少なくとも使用できます)を意味します。このNTLMの場合、ネゴシエーションでは、セキュリティで保護されたセッションが確立される前に複数のメッセージ(チャレンジ/レスポンス)を交換する必要があるため、最初から送信される「正しいヘッダー」はありません。 問題に関する詳細は、http://msdn.microsoft.com/en-us/library/aa378748%28VS.85%29.aspx(マイクロソフトが提供するSSPパッケージ)を参照してください。 –

答えて

24

WebサーバーからSPNEGO(シンプルで保護されたGSSAPIネゴシエーションメカニズム)トークンが要求されています。

これは、Web SSO(シングルサインオン)に使用する認証のタイプを交渉するためのマイクロソフトの発明である:

  • いずれかNTLM
  • またはKerberos。

参照:

+2

私が使用しているアプリケーションの1つで、ADFSサーバーは2つのWWW-Authenticateヘッダーフィールドを使用して応答します。 WWW-Authenticate:Negotiate WWW-Authenticate:NTLM "Negotiate"平均?フィドラーから、どのような認証プロトコルが最終的に使用されるのか、どのように把握できますか? –

+0

あまりにも古いコメントです。将来の読者のための返信。フィドラーを調べて、どの認証メカニズムが使用されているかを確認することができます。あなたのサーバーはKerberos認証とNTLM認証の両方で有効になっていると思います。フィドラーから、どの認証が使用されているか簡単に確認できます。リクエストヘッダーである401チャレンジに対するブラウザの応答のヘッダーを確認します。それにAuthorization:NTLM +トークンが含まれている場合は、NTLM認証です。認可の場合:交渉+トークンはケルベロスでなければなりません。 NTLMには401以上の課題があります。 – Charith

28

は将来の読者の利益のために、ここで、この情報を置きます。

  • 401 (Unauthorized) response header - ここ>要求認証ヘッダ

  • は、いくつかのWWW-Authenticate response headersあります。 (完全なリストは、IANAである:HTTP Authentication Schemes。)

    • WWW-Authenticate: Basic - >認証:基本+トークン - 基本認証に使用
    • WWW-Authenticate: NTLM - >認証:NTLM +トークン(2つの課題)
    • WWW-Authenticate: Negotiate - >認証:+トークン交渉 - ところで、Kerberos認証
      • に使用する:IANAはこのangry remark about Negotiateを持っている:この認証方式は、(接続され、両方のHTTPのセマンティクスに違反-oriented)および構文(WWW-AuthenticateおよびAuthorizationヘッダーフィールドの構文と互換性のない構文の使用)。

また、あなたの401チャレンジしWWW-Authenticate: Basicヘッダーを持っている場合にのみ、あなたはAuthorization: Basicヘッダーを設定することができます。

しかし、WWW-Authenticate: Negotiateがあるので、これはKerberosベースの認証の場合です。