Negotiate

Negotiate auth-scheme (HTTP)

[3] HTTP auth-scheme Negotiate は、 Microsoft Windows における Kerberos 認証を HTTP 上で実現するためのものとして、 RFC 4559 で定義されています。

仕様書

challenge

[5] WWW-Authenticate: ヘッダーに記述する challenge では、 auth-scheme である Negotiate に続けて、1つ以上の gssapi-data または空文字列リスト (#) として記述することになっています >>1

[202] 1つ以上という定義にはなっていますが、空文字列となり得るので、 省略可能とも解釈できます。

[6] 200 応答でも WWW-Authenticate: ヘッダーを含めることができます >>1

credentials

[201] Authorization: ヘッダーの記述する credentials では、 auth-scheme である Negotiate に続けて、1つ以上の gssapi-dataリスト (#) として記述することになっています >>1

[203] の認証には使いません >>1

[204] クライアントの間にがあるときは、 認証された接続を共有しないように注意が必要です。 クライアント間の整合性を尊重するProxy-support: Session-Based-Authentication ヘッダー応答に含めることになっており、 クライアントはそうでない場合に本認証を用いてはなりません>>1

HTTP との整合性

[206] RFC 7230 は、が一般に同じ接続に含まれる複数の要求が同じ利用者エージェントに由来するものと仮定することを禁止しており、 RFC 4559 はこれに違反しセキュリティー相互運用性上の問題があると指摘しています >>205, >>7

auth-scheme も参照。

[8] また challengecredentials の構文が HTTP 本体仕様に適合していません >>7

Proxy-Support: ヘッダー (HTTP)

Proxy-Support
Introduced in IE5 (or 6?) to allow proxies to specify that they understand NTLM/Negotiate authentication schemes. It has one legal value ("Session-Based-Authentication"). If present, IE will permit the multi-step NTLM/Negotiate handshake to take place through a proxy server. Otherwise, the 401 is treated as a fatal error and returned to the client.

[16] 多段になっている時に Connection: Proxy-support が指定されていないと困りそうですが、そのような要件は明記されていません。 実装が指定しているかは不明です。

実装

[11] IEFirefox >>12Chrome >>10 が対応しています。

[15] Safari では動作しないようです >>14

関連

[4] Negotiate: ヘッダーとは関係ありません。

メモ

[2] HTTP/1.1 WWW-Authenticate header ( 版) http://www.http-stats.com/WWW-Authenticate

WWW-Authenticate: Negotiate

[17] curl - How To Use, , https://curl.haxx.se/docs/manpage.html#--negotiate