Network Working Group K. Jaganathan Request for Comments: 4559 L. Zhu Category: Informational J. Brezak Microsoft Corporation June 2006
SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows
Status of This Memo
このメモのステータス
This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
このメモはインターネットコミュニティのための情報を提供します。それはどんな種類のインターネット標準を指定しません。このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (2006).
著作権(C)インターネット協会(2006)。
Abstract
抽象
This document describes how the Microsoft Internet Explorer (MSIE) and Internet Information Services (IIS) incorporated in Microsoft Windows 2000 use Kerberos for security enhancements of web transactions. The Hypertext Transport Protocol (HTTP) auth-scheme of "negotiate" is defined here; when the negotiation results in the selection of Kerberos, the security services of authentication and, optionally, impersonation (the IIS server assumes the windows identity of the principal that has been authenticated) are performed. This document explains how HTTP authentication utilizes the Simple and Protected GSS-API Negotiation mechanism. Details of Simple And Protected Negotiate (SPNEGO) implementation are not provided in this document.
このドキュメントは、Microsoft Internet Explorerの(MSIE)とインターネットインフォメーションサービス(IIS)がWebトランザクションのセキュリティ強化のためのMicrosoft Windows 2000の使用のKerberosに組み込まれた方法を説明します。 「交渉」のハイパーテキスト転送プロトコル(HTTP)のauth-スキームがここで定義されます。ケルベロスの選択における交渉の結果、認証と、必要に応じて、偽装のセキュリティサービスは、(IISサーバが認証されたプリンシパルの窓のアイデンティティを想定)を行っているとき。このドキュメントでは、HTTP認証が単純で保護されたGSS-API交渉メカニズムを利用する方法について説明します。単純で保護ネゴシエート(SPNEGO)の実装の詳細は、このドキュメントで提供されていません。
Table of Contents
目次
1. Introduction ....................................................2 2. Conventions Used in This Document ...............................2 3. Access Authentication ...........................................2 3.1. Reliance on the HTTP/1.1 Specification .....................2 4. HTTP Negotiate Authentication Scheme ............................2 4.1. The WWW-Authenticate Response Header .......................2 5. Negotiate Operation Example .....................................4 6. Security Considerations .........................................5 7. Normative References ............................................6
Microsoft has provided support for Kerberos authentication in Microsoft Internet Explorer (MSIE) and Internet Information Services (IIS), in addition to other mechanisms. This provides the benefits of the Kerberos v5 protocol for Web applications.
マイクロソフトは、他のメカニズムに加えて、Microsoft Internet Explorerの(MSIE)とインターネットインフォメーションサービス(IIS)でKerberos認証のサポートを提供してきました。これは、WebアプリケーションのKerberos V5プロトコルの利点を提供します。
Support for Kerberos authentication is based on other previously defined mechanisms, such as SPNEGO Simple And Protected Negotiate (SPNEGO) [RFC4178] and the Generic Security Services Application Program Interface(GSSAPI).
Kerberos認証のサポートは、SPNEGOなどの他の以前に定義されたメカニズム、シンプルで(SPNEGO)[RFC4178]と一般的なセキュリティサービスアプリケーションプログラムインタフェース(GSSAPI)をネゴシエート保護に基づいています。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119].
キーワード "MUST"、 "MUST NOT"、 "REQUIRED"、 "SHALL"、 "SHOULD"、 "ないもの"、 "推奨" "ない(SHOULD NOT)"、 "MAY"、 "OPTIONAL" は解釈されるべきです[RFC2119]に記載されているように。
This specification is a companion to the HTTP/1.1 specification [RFC2616], and it builds on the authentication mechanisms defined in [RFC2617]. It uses the augmented BNF section of that document (2.1), and it relies on both the non-terminals defined in that document and other aspects of the HTTP/1.1 specification.
この仕様は、HTTP / 1.1仕様書[RFC2616]の仲間であり、それは[RFC2617]で定義された認証機構に基づいています。その文書(2.1)の拡張BNF部を使用し、その文書とHTTP / 1.1仕様の他の態様で定義された非末端の両方に依存しています。
Use of Kerberos is wrapped in an HTTP auth-scheme of "Negotiate". The auth-params exchanged use data formats defined for use with the GSS-API [RFC2743]. In particular, they follow the formats set for the SPNEGO [RFC4178] and Kerberos [RFC4121] mechanisms for GSSAPI. The "Negotiate" auth-scheme calls for the use of SPNEGO GSSAPI tokens that the specific mechanism type specifies.
ケルベロスの使用は「交渉」のHTTPの認証・スキームに包まれています。 AUTH-paramsがGSS-API [RFC2743]で使用するために定義された使用データ形式を交換しました。特に、それらは、GSSAPIのためにSPNEGO [RFC4178]に設定されたフォーマットとケルベロス[RFC4121]メカニズムに従います。 「交渉」のauth-スキームは、特定のメカニズムの種類が指定されているトークンSPNEGO GSSAPIの使用を呼び出します。
The current implementation of this protocol is limited to the use of SPNEGO with the Kerberos and Microsoft(NT Lan Manager) NTLM protocols.
このプロトコルの現在の実装では、KerberosおよびMicrosoft(NT LANマネージャ)NTLMプロトコルとSPNEGOの使用に制限されています。
If the server receives a request for an access-protected object, and if an acceptable Authorization header has not been sent, the server responds with a "401 Unauthorized" status code, and a "WWW-Authenticate:" header as per the framework described in [RFC2616]. The initial WWW-Authenticate header will not carry any gssapi-data.
サーバは、アクセス保護されたオブジェクトのための要求を受信し、許容されるAuthorizationヘッダが送信されていない場合、サーバは「401不正」ステータスコードで応答し、そして場合「WWW認証:」ヘッダに記載のフレームワークに従って[RFC2616]インチ初期のWWW-Authenticateヘッダは、任意のGSSAPIデータを運ぶことはありません。
The negotiate scheme will operate as follows:
以下のようにスキームが動作します交渉:
challenge = "Negotiate" auth-data auth-data = 1#( [gssapi-data] )
The meanings of the values of the directives used above are as follows:
以下のように使用ディレクティブの値の意味は以下のとおりです。
gssapi-data
GSSAPIデータ
If the gss_accept_security_context returns a token for the client, this directive contains the base64 encoding of an initialContextToken, as defined in [RFC2743]. This is not present in the initial response from the server.
gss_accept_security_contextクライアントのトークンを返す場合、このディレクティブは、[RFC2743]で定義されるように、initialContextTokenのbase64エンコーディングを含んでいます。これは、サーバーからの初期応答中には存在しません。
A status code 200 status response can also carry a "WWW-Authenticate" response header containing the final leg of an authentication. In this case, the gssapi-data will be present. Before using the contents of the response, the gssapi-data should be processed by gss_init_security_context to determine the state of the security context. If this function indicates success, the response can be used by the application. Otherwise, an appropriate action, based on the authentication status, should be taken.
ステータスコード200のステータス応答は、認証の最終的な脚を含む「WWW認証」応答ヘッダを運ぶことができます。この場合、GSSAPIデータが存在することになります。レスポンスの内容を使用する前に、GSSAPIデータは、セキュリティコンテキストの状態を決定するためにgss_init_security_contextによって処理されるべきです。この関数は、成功を示す場合、応答は、アプリケーションで使用することができます。そうでない場合は、認証ステータスに基づいて、適切なアクションは、注意が必要です。
For example, the authentication could have failed on the final leg if mutual authentication was requested and the server was not able to prove its identity. In this case, the returned results are suspect. It is not always possible to mutually authenticate the server before the HTTP operation. POST methods are in this category.
例えば、相互認証が要求された場合、認証は最終レグに失敗している可能性があり、サーバがその身元を証明することができませんでした。この場合、返された結果は疑わしいです。相互にHTTP操作の前にサーバを認証することができるとは限りません。 POSTメソッドは、この範疇にあります。
When the Kerberos Version 5 GSSAPI mechanism [RFC4121] is being used, the HTTP server will be using a principal name of the form of "HTTP/hostname".
Kerberosバージョン5 GSSAPIメカニズム[RFC4121]が使用されている場合、HTTPサーバは、「HTTP /ホスト名」の形式のプリンシパル名を使用します。
Upon receipt of the response containing a "WWW-Authenticate" header from the server, the client is expected to retry the HTTP request, passing a HTTP "Authorization" header line. This is defined according to the framework described in [RFC2616] and is utilized as follows:
サーバから「WWW認証」ヘッダを含む応答を受信すると、クライアントは、HTTP「許可」ヘッダ行を渡す、HTTP要求を再試行することが期待されます。これは、[RFC2616]に記載のフレームワークに従って定義され、以下のように利用されます。
credentials = "Negotiate" auth-data2 auth-data2 = 1#( gssapi-data )
gssapi-data
GSSAPIデータ
This directive contains the base64 encoding of an InitialContextToken, as defined in [RFC2743].
この指令は、[RFC2743]で定義されるように、InitialContextTokenのbase64エンコーディングを含んでいます。
Any returned code other than a success 2xx code represents an authentication error. If a 401 containing a "WWW-Authenticate" header with "Negotiate" and gssapi-data is returned from the server, it is a continuation of the authentication request.
成功の2xxコード以外の返されたコードは、認証エラーを表します。 「交渉」とGSSAPIデータと401を含む「WWW認証」ヘッダがサーバから返された場合は、認証要求の続きです。
A client may initiate a connection to the server with an "Authorization" header containing the initial token for the server. This form will bypass the initial 401 error from the server when the client knows that the server will accept the Negotiate HTTP authentication type.
クライアントは、サーバの初期トークンを含む「許可」ヘッダを使用してサーバーへの接続を開始することができます。クライアントは、サーバーがHTTPをネゴシエート認証タイプを受け入れることを知っている場合は、このフォームは、サーバーから最初の401エラーをバイパスします。
The client requests an access-protected document from server via a GET method request. The URI of the document is "http://www.nowhere.org/dir/index.html".
クライアントは、GETメソッド要求を介してサーバからのアクセスで保護されたドキュメントを要求します。文書のURIは「http://www.nowhere.org/dir/index.html」です。
C: GET dir/index.html
C:DIR / index.htmlをGET
The first time the client requests the document, no Authorization header is sent, so the server responds with
クライアントがドキュメントを要求初めて、何のAuthorizationヘッダが送信されませんので、サーバが応答して
S: HTTP/1.1 401 Unauthorized S: WWW-Authenticate: Negotiate
The client will obtain the user credentials using the SPNEGO GSSAPI mechanism type to identify generate a GSSAPI message to be sent to the server with a new request, including the following Authorization header:
クライアントは、次のAuthorizationヘッダを含む新しい要求でサーバに送信されるGSSAPIメッセージを生成する識別するために、SPNEGO GSSAPIメカニズムのタイプを使用して、ユーザーの資格情報を取得します。
C: GET dir/index.html C: Authorization: Negotiate a87421000492aa874209af8bc028
The server will decode the gssapi-data and pass this to the SPNEGO GSSAPI mechanism in the gss_accept_security_context function. If the context is not complete, the server will respond with a 401 status code with a WWW-Authenticate header containing the gssapi-data.
サーバはGSSAPIデータをデコードしgss_accept_security_context関数でSPNEGO GSSAPIメカニズムにこれを通過します。コンテキストが完了していない場合、サーバはGSSAPIデータを含むWWW-Authenticateヘッダと401の状態コードで応答します。
S: HTTP/1.1 401 Unauthorized S: WWW-Authenticate: Negotiate 749efa7b23409c20b92356
The client will decode the gssapi-data, pass this into Gss_Init_security_context, and return the new gssapi-data to the server.
クライアントは、GSSAPIデータをデコードGss_Init_security_contextにこれを渡して、サーバに新しいGSSAPI-データを返します。
C: GET dir/index.html C: Authorization: Negotiate 89a8742aa8729a8b028
This cycle can continue until the security context is complete. When the return value from the gss_accept_security_context function indicates that the security context is complete, it may supply final authentication data to be returned to the client. If the server has more gssapi data to send to the client to complete the context, it is to be carried in a WWW-Authenticate header with the final response containing the HTTP body.
セキュリティコンテキストが完了するまで、このサイクルは継続することができます。 gss_accept_security_context関数からの戻り値は、セキュリティコンテキストが完了したことを示している場合、それはクライアントに返される最後の認証データを供給することができます。サーバはコンテキストを完了するために、クライアントに送信するより多くのGSSAPIデータを持っている場合、それはHTTP本体を含む最終応答でWWW-Authenticateヘッダで運ばれるべきです。
S: HTTP/1.1 200 Success S: WWW-Authenticate: Negotiate ade0234568a4209af8bc0280289eca
The client will decode the gssapi-data and supply it to gss_init_security_context using the context for this server. If the status is successful from the final gss_init_security_context, the response can be used by the application.
クライアントはGSSAPIデータをデコードし、このサーバのコンテキストを使用してgss_init_security_contextするためにそれを供給します。ステータスが最終gss_init_security_contextから成功した場合、応答は、アプリケーションで使用することができます。
The SPNEGO HTTP authentication facility is only used to provide authentication of a user to a server. It provides no facilities for protecting the HTTP headers or data including the Authorization and WWW-Authenticate headers that are used to implement this mechanism.
SPNEGO HTTP認証機能のみをサーバーにユーザーの認証を提供するために使用されます。これは、このメカニズムを実装するために使用されている認可およびWWW認証ヘッダを含むHTTPヘッダまたはデータを保護するための何の機能を提供しません。
Alternate mechanisms such as TLS can be used to provide confidentiality. Hashes of the TLS certificates can be used as channel bindings to secure the channel. In this case clients would need to enforce that the channel binding information is valid. Note that Kerb-TLS [RFC2712] could be used to provide both authentication and confidentiality, but this requires a change to the TLS provider.
TLSなどの代替メカニズムは、機密性を提供するために使用することができます。 TLS証明書のハッシュがチャネルを確保するチャネルバインディングとして使用することができます。この場合、クライアントは、チャネルバインディング情報が有効であることを強制する必要があります。なお、縁石-TLS [RFC2712]は認証と機密性の両方を提供するために使用することができますが、これはTLSプロバイダを変更する必要があります。
This mechanism is not used for HTTP authentication to HTTP proxies.
このメカニズムは、HTTPプロキシへのHTTP認証に使用されていません。
If an HTTP proxy is used between the client and server, it must take care to not share authenticated connections between different authenticated clients to the same server. If this is not honored, then the server can easily lose track of security context associations. A proxy that correctly honors client to server authentication integrity will supply the "Proxy-support: Session-Based-Authentication" HTTP header to the client in HTTP responses from the proxy. The client MUST NOT utilize the SPNEGO HTTP authentication mechanism through a proxy unless the proxy supplies this header with the "401 Unauthorized" response from the server.
HTTPプロキシは、クライアントとサーバー間で使用されている場合、それは同じサーバに異なる認証されたクライアントの間で認証された接続を共有しないように注意する必要があります。これは光栄されていない場合、サーバーは簡単にセキュリティコンテキストアソシエーションのトラックを失うことができます。プロキシからのHTTPレスポンスでクライアントに:「セッションベースの-認証プロキシ・サポート」HTTPヘッダーを正しくサーバ認証の整合性にクライアントを尊重するプロキシが提供されます。プロキシは、サーバから「401無許可」応答でこのヘッダーを提供しない限り、クライアントはプロキシ経由でSPNEGO HTTP認証メカニズムを利用してはなりません。
When using the SPNEGO HTTP authentication facility with client-supplied data such as PUT and POST, the authentication should be complete between the client and server before sending the user data. The return status from the gss_init_security_context will indicate that the security context is complete. At this point, the data can be sent to the server.
このようPUTやPOSTなど、クライアントから与えられたデータをSPNEGO HTTP認証機能を使用する場合、認証は、ユーザデータを送信する前に、クライアントとサーバーの間の完全でなければなりません。 gss_init_security_contextからのリターン・ステータスは、セキュリティコンテキストが完全であることを示します。この時点で、データはサーバに送信することができます。
[RFC2743] Linn, J., "Generic Security Service Application Program Interface Version 2", 2, Update 1", 2743, January 2000.
[RFC2743]リン、J.、 "ジェネリックセキュリティーサービス適用業務プログラムインタフェースバージョン2"、2、アップデート1" 、2743年、2000年1月。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。
[RFC4178] Zhu, L., Leach, P., Jaganathan, K., and W. Ingersoll, "The Simple and Protected GSS-API Generic Security Service Application Program Interface (GSS-API) Negotiation Mechanism", 4178, October 2005.
[RFC4178]朱、L.、リーチ、P.、Jaganathan、K.、およびW.インガーソル、 "単純で保護されたGSS-APIの汎用セキュリティサービスアプリケーションプログラムインタフェース(GSS-API)交渉メカニズム"、4178、2005年10月。
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC2616]フィールディング、R.、ゲティス、J.、モーグル、J.、Frystyk、H.、Masinter、L.、リーチ、P.、およびT.バーナーズ - リー、 "ハイパーテキスト転送プロトコル - HTTP / 1.1" 、RFC 2616、1999年6月。
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999.
[RFC2617]フランクス、J.、ハラム・ベイカー、P.、Hostetler、J.、ローレンス、S.、リーチ、P.、Luotonen、A.、およびL.スチュワート、 "HTTP認証:基本とダイジェストアクセス認証" 、RFC 2617、1999年6月。
[RFC2712] Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)", RFC 2712, October 1999.
[RFC2712] Medvinsky、A.とM.ハー、RFC 2712、1999年10月 "Layer Security(TLS)を輸送するためのケルベロス暗号スイートの追加"。
[RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism: Version 2", RFC 4121, July 2005.
[RFC4121]朱、L.、Jaganathan、K.、およびS.ハートマン、 "Kerberosバージョン5の汎用セキュリティサービスアプリケーションプログラムインタフェース(GSS-API)メカニズム:バージョン2"、RFC 4121、2005年7月。
Authors' Addresses
著者のアドレス
Karthik Jaganathan Microsoft Corporation One Microsoft Way Redmond, WA 98052 US
カルティクJaganathanマイクロソフト社1マイクロソフト道、レッドモンド、ワシントン98052米国
EMail: karthikj@microsoft.com
メールアドレス:karthikj@microsoft.com
Larry Zhu Microsoft Corporation One Microsoft Way Redmond, WA 98052 US
ラリー朱マイクロソフト社1マイクロソフト道、レッドモンド、ワシントン98052米国
EMail: lzhu@microsoft.com
メールアドレス:lzhu@microsoft.com
John Brezak Microsoft Corporation One Microsoft Way Redmond, WA 98052 US
ジョンBrezakマイクロソフト社1マイクロソフト道、レッドモンド、ワシントン98052米国
EMail: jbrezak@microsoft.com
メールアドレス:jbrezak@microsoft.com
Full Copyright Statement
完全な著作権声明
Copyright (C) The Internet Society (2006).
著作権(C)インターネット協会(2006)。
This document is subject to the rights, licenses and restrictions contained in BCP 78 and at www.rfc-editor.org/copyright.html, and except as set forth therein, the authors retain all their rights.
この文書では、BCP 78に及びwww.rfc-editor.org/copyright.htmlに含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットソサエティおよびインターネット・エンジニアリング・タスク・フォース放棄すべての保証、明示または、(もしあれば)後援ISに設けられています。黙示、情報の利用は、特定の目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証含むがこれらに限定されません。
Intellectual Property
知的財産
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78およびBCP 79に記載されています。
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
IPRの開示のコピーが利用できるようにIETF事務局とライセンスの保証に行われた、または本仕様の実装者または利用者がそのような所有権の使用のための一般的なライセンスまたは許可を取得するために作られた試みの結果を得ることができますhttp://www.ietf.org/iprのIETFのオンラインIPRリポジトリから。
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。
Acknowledgement
謝辞
Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).
RFCエディタ機能のための資金は、IETF管理サポート活動(IASA)によって提供されます。