Proxy-support:

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] また challenge と credentials の構文が 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] IE、Firefox >>12、 Chrome >>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