[要約] RFC 4559は、Microsoft WindowsでのSPNEGOベースのKerberosとNTLM HTTP認証に関する仕様です。このRFCの目的は、セキュアな認証メカニズムを提供し、Windows環境でのHTTP認証の標準化を促進することです。

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

Microsoft WindowsのSpnegoベースのKerberosとNTLM HTTP認証

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).

Copyright(c)The Internet Society(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)およびInternet Information Services(IIS)がMicrosoft Windows 2000に組み込まれている方法を、Webトランザクションのセキュリティ強化にKerberosを使用する方法について説明します。「ネゴシエート」のハイパーテキストトランスポートプロトコル(HTTP)の認証 - スchemeはここで定義されています。交渉がKerberosの選択につながると、認証のセキュリティサービス、およびオプションでは、IISサーバーは、認証されたプリンシパルのWindows IDを想定しています)が実行されます。このドキュメントでは、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
        
1. Introduction
1. はじめに

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は、他のメカニズムに加えて、Microsoft Internet Explorer(MSIE)およびInternet Information Services(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 SimpleおよびProtected Negotiate(SPNEGO)[RFC4178]やGeneric Security Services Application Program Interface(GSSAPI)など、以前に定義された他のメカニズムに基づいています。

2. Conventions Used in This Document
2. このドキュメントで使用されている規則

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].

キーワード「必須」、「そうしない」、「必須」、「shall」、「shall」、「suff」、 "not"、 "becommended"、 "、"、 "optional"は解釈されます[RFC2119]で説明されているように。

3. Access Authentication
3. アクセス認証
3.1. Reliance on the HTTP/1.1 Specification
3.1. HTTP/1.1仕様への依存

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仕様の他の側面の両方に依存しています。

4. HTTP Negotiate Authentication Scheme
4. HTTPは認証スキームをネゴシエートします

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.

Kerberosの使用は、「ネゴシエート」のHTTP Auth-Schemeに包まれています。Auth-Paramsは、GSS-API [RFC2743]で使用するために定義された使用データ形式を交換しました。特に、GSSAPIのSPNEGO [RFC4178]およびKerberos [RFC4121]メカニズムに設定された形式に従います。「ネゴシエート」Auth-Schemeは、特定のメカニズムタイプが指定する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 Manager)NTLMプロトコルを使用したSPNEGOの使用に限定されています。

4.1. The WWW-Authenticate Response Header
4.1. www-authenticate応答ヘッダー

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.

サーバーがアクセス保護されたオブジェクトのリクエストを受信し、許容可能な承認ヘッダーが送信されていない場合、サーバーは「401の不正な」ステータスコードと「www-authenticate:」で応答します。[RFC2616]。最初のwww-authenticateヘッダーは、GSSAPI-DATAを搭載しません。

The negotiate scheme will operate as follows:

ネゴシエートスキームは次のように動作します。

challenge = "Negotiate" auth-data auth-data = 1#( [gssapi-data] )

課題= "negotiate" auth-data auth-data = 1#([gssapi-data])

The meanings of the values of the directives used above are as follows:

上記で使用される指令の値の意味は次のとおりです。

gssapi-data

gssapi-data

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-authenticate」応答ヘッダーを伝えることもできます。この場合、GSSAPI-DATAが存在します。応答の内容を使用する前に、GSSAPI-DATAを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操作の前にサーバーを相互に認証することは常に可能ではありません。ポストメソッドはこのカテゴリにあります。

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/HOSTNAME」の形式の主名を使用します。

4.2. The Authorization Request Header
4.2. 承認要求ヘッダー

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-authenticate」ヘッダーを含む応答を受信すると、クライアントはHTTP要求を再試行し、HTTP「認証」ヘッダーラインを渡すことが期待されます。これは[RFC2616]で説明されているフレームワークに従って定義され、次のように使用されます。

credentials = "Negotiate" auth-data2 auth-data2 = 1#( gssapi-data )

資格情報=「ネゴシエート "auth-data2 auth-data2 = 1#(gssapi-data)

gssapi-data This directive contains the base64 encoding of an InitialContextToken, as defined in [RFC2743].

GSSAPI-DATAこの指令には、[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コード以外の返されたコードは、認証エラーを表します。「ネゴシエート」を備えた「www-authenticate」ヘッダーを含む401がサーバーからgssapi-dataが返される場合、それは認証要求の継続です。

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エラーをバイパスします。

5. Negotiate Operation Example
5. 操作の例を交渉します

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を取得します

The first time the client requests the document, no Authorization header is sent, so the server responds with

クライアントがドキュメントを初めてリクエストしたとき、承認ヘッダーは送信されないため、サーバーは

           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:

クライアントは、SPNEGO GSSAPIメカニズムタイプを使用してユーザー資格情報を取得し、次の承認ヘッダーを含む新しいリクエストでサーバーに送信される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-DATAをデコードし、GSS_ACCEPT_SECURITY_CONTEXT関数のSPNEGO GSSAPIメカニズムにこれを渡します。コンテキストが完了していない場合、サーバーはGSSAPI-DATAを含む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-DATAをデコードし、これをgss_init_security_contextに渡し、新しいgssapi-dataをサーバーに返します。

           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-DATAをデコードし、このサーバーのコンテキストを使用してGSS_INIT_SECURITY_CONTEXTに供給します。最終的なgss_init_security_contextからステータスが成功した場合、応答はアプリケーションで使用できます。

6. Security Considerations
6. セキュリティに関する考慮事項

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-authenticateヘッダーなど、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証明書のハッシュは、チャネルバインディングとして使用してチャネルを保護できます。この場合、クライアントはチャネルバインディング情報が有効であることを強制する必要があります。KERB-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やPutなどのクライアントが提供するデータを使用してSPNEGO HTTP認証機能を使用する場合、ユーザーデータを送信する前にクライアントとサーバーの間で認証を完了する必要があります。gss_init_security_contextからの返品ステータスは、セキュリティコンテキストが完了していることを示します。この時点で、データはサーバーに送信できます。

7. Normative References
7. 引用文献

[RFC2743] Linn, J., "Generic Security Service Application Program Interface Version 2", 2, Update 1", 2743, January 2000.

[RFC2743] Linn、J。、「Generic Security Service Application Program Interfaceバージョン2 "、2、Update 1"、2743、2000年1月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、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] Zhu、L.、Leach、P.、Jaganathan、K。、およびW. Ingersoll、「シンプルで保護された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] Fielding、R.、Gettys、J.、Mogul、J.、Frystyk、H.、Masinter、L.、Leach、P。、およびT. Berners-Lee、「HyperText Transfer Protocol-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] Franks、J.、Hallam-Baker、P.、Hostetler、J.、Lawrence、S.、Leach、P.、Luotonen、A。、およびL. Stewart、「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. Hur、「層のセキュリティ(TLS)へのKerberos cipherスイートの追加」、RFC 2712、1999年10月。

[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] Zhu、L.、Jaganathan、K。、およびS. Hartman、「Kerberosバージョン5ジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)メカニズム:バージョン2 "、RFC 4121、2005年7月。

Authors' Addresses

著者のアドレス

Karthik Jaganathan Microsoft Corporation One Microsoft Way Redmond, WA 98052 US

Karthik Jaganathan Microsoft Corporation One Microsoft Way Redmond、WA 98052 US

   EMail: karthikj@microsoft.com
        

Larry Zhu Microsoft Corporation One Microsoft Way Redmond, WA 98052 US

Larry Zhu Microsoft Corporation One Microsoft Way Redmond、WA 98052 US

   EMail: lzhu@microsoft.com
        

John Brezak Microsoft Corporation One Microsoft Way Redmond, WA 98052 US

John Brezak Microsoft Corporation One Microsoft Way Redmond、WA 98052 US

   EMail: jbrezak@microsoft.com
        

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2006).

Copyright(c)The Internet Society(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.

このドキュメントとここに含まれる情報は、「現状のまま」に基づいて提供されています。また、貢献者、彼/彼女が代表する組織(もしあれば)が後援する組織、インターネット協会とインターネット工学タスクフォースは、すべての保証、明示的または明示的、またはすべての保証を否認します。本書の情報の使用が、商品性または特定の目的に対する適合性の権利または黙示的な保証を侵害しないという保証を含むがこれらに限定されないことを含む。

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.

IETF事務局に行われたIPR開示のコピーと、利用可能にするライセンスの保証、またはこの仕様の実装者またはユーザーによるそのような独自の権利の使用のための一般的なライセンスまたは許可を取得しようとする試みの結果を取得できます。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)によって提供されます。