| draft-ietf-httpbis-p7-auth-26.txt | draft-ietf-httpbis-p7-auth-latest.txt | |||
|---|---|---|---|---|
| HTTPbis Working Group R. Fielding, Ed. | HTTPbis Working Group R. Fielding, Ed. | |||
| Internet-Draft Adobe | Internet-Draft Adobe | |||
| Obsoletes: 2616 (if approved) J. Reschke, Ed. | Obsoletes: 2616 (if approved) J. Reschke, Ed. | |||
| Updates: 2617 (if approved) greenbytes | Updates: 2617 (if approved) greenbytes | |||
| Intended status: Standards Track February 6, 2014 | Intended status: Standards Track June 2014 | |||
| Expires: August 10, 2014 | Expires: December 3, 2014 | |||
| Hypertext Transfer Protocol (HTTP/1.1): Authentication | Hypertext Transfer Protocol (HTTP/1.1): Authentication | |||
| draft-ietf-httpbis-p7-auth-26 | draft-ietf-httpbis-p7-auth-latest | |||
| Abstract | Abstract | |||
| The Hypertext Transfer Protocol (HTTP) is a stateless application- | The Hypertext Transfer Protocol (HTTP) is a stateless application- | |||
| level protocol for distributed, collaborative, hypermedia information | level protocol for distributed, collaborative, hypermedia information | |||
| systems. This document defines the HTTP Authentication framework. | systems. This document defines the HTTP Authentication framework. | |||
| Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
| Discussion of this draft takes place on the HTTPBIS working group | Discussion of this draft takes place on the HTTPBIS working group | |||
| mailing list (ietf-http-wg@w3.org), which is archived at | mailing list (ietf-http-wg@w3.org), which is archived at | |||
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | |||
| The current issues list is at | The current issues list is at | |||
| <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | |||
| documents (including fancy diffs) can be found at | documents (including fancy diffs) can be found at | |||
| <http://tools.ietf.org/wg/httpbis/>. | <http://tools.ietf.org/wg/httpbis/>. | |||
| The changes in this draft are summarized in Appendix D.2. | _This is a temporary document for the purpose of tracking the | |||
| editorial changes made during the AUTH48 (RFC publication) phase._ | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 10, 2014. | This Internet-Draft will expire on December 3, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| skipping to change at page 3, line 16 ¶ | skipping to change at page 3, line 16 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4 | 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4 | |||
| 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Access Authentication Framework . . . . . . . . . . . . . . . 4 | 2. Access Authentication Framework . . . . . . . . . . . . . . . 4 | |||
| 2.1. Challenge and Response . . . . . . . . . . . . . . . . . . 4 | 2.1. Challenge and Response . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Protection Space (Realm) . . . . . . . . . . . . . . . . . 6 | 2.2. Protection Space (Realm) . . . . . . . . . . . . . . . . . 6 | |||
| 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 7 | 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.1. 401 Unauthorized . . . . . . . . . . . . . . . . . . . . . 7 | 3.1. 401 Unauthorized . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.2. 407 Proxy Authentication Required . . . . . . . . . . . . 7 | 3.2. 407 Proxy Authentication Required . . . . . . . . . . . . 7 | |||
| 4. Header Field Definitions . . . . . . . . . . . . . . . . . . . 7 | 4. Header Field Definitions . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.2. Authorization . . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. Authorization . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.3. Proxy-Authenticate . . . . . . . . . . . . . . . . . . . . 9 | 4.3. Proxy-Authenticate . . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.4. Proxy-Authorization . . . . . . . . . . . . . . . . . . . 9 | 4.4. Proxy-Authorization . . . . . . . . . . . . . . . . . . . 10 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.1. Authentication Scheme Registry . . . . . . . . . . . . . . 10 | 5.1. Authentication Scheme Registry . . . . . . . . . . . . . . 10 | |||
| 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . 10 | 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.1.2. Considerations for New Authentication Schemes . . . . 10 | 5.1.2. Considerations for New Authentication Schemes . . . . 10 | |||
| 5.2. Status Code Registration . . . . . . . . . . . . . . . . . 12 | 5.2. Status Code Registration . . . . . . . . . . . . . . . . . 12 | |||
| 5.3. Header Field Registration . . . . . . . . . . . . . . . . 12 | 5.3. Header Field Registration . . . . . . . . . . . . . . . . 12 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 6.1. Confidentiality of Credentials . . . . . . . . . . . . . . 13 | 6.1. Confidentiality of Credentials . . . . . . . . . . . . . . 13 | |||
| 6.2. Authentication Credentials and Idle Clients . . . . . . . 13 | 6.2. Authentication Credentials and Idle Clients . . . . . . . 13 | |||
| 6.3. Protection Spaces . . . . . . . . . . . . . . . . . . . . 14 | 6.3. Protection Spaces . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 15 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 15 | |||
| Appendix A. Changes from RFCs 2616 and 2617 . . . . . . . . . . . 16 | Appendix A. Changes from RFCs 2616 and 2617 . . . . . . . . . . . 16 | |||
| Appendix B. Imported ABNF . . . . . . . . . . . . . . . . . . . . 16 | Appendix B. Imported ABNF . . . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 16 | Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix D. Change Log (to be removed by RFC Editor before | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| publication) . . . . . . . . . . . . . . . . . . . . 17 | ||||
| D.1. Since draft-ietf-httpbis-p7-auth-24 . . . . . . . . . . . 17 | ||||
| D.2. Since draft-ietf-httpbis-p7-auth-25 . . . . . . . . . . . 18 | ||||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 1. Introduction | 1. Introduction | |||
| HTTP provides a general framework for access control and | HTTP provides a general framework for access control and | |||
| authentication, via an extensible set of challenge-response | authentication, via an extensible set of challenge-response | |||
| authentication schemes, which can be used by a server to challenge a | authentication schemes, which can be used by a server to challenge a | |||
| client request and by a client to provide authentication information. | client request and by a client to provide authentication information. | |||
| This document defines HTTP/1.1 authentication in terms of the | This document defines HTTP/1.1 authentication in terms of the | |||
| architecture defined in [Part1], including the general framework | architecture defined in "Hypertext Transfer Protocol (HTTP/1.1): | |||
| previously described in RFC 2617 and the related fields and status | Message Syntax and Routing" [RFC7230], including the general | |||
| codes previously defined in RFC 2616. | framework previously described in "HTTP Authentication: Basic and | |||
| Digest Access Authentication" [RFC2617] and the related fields and | ||||
| status codes previously defined in "Hypertext Transfer Protocol -- | ||||
| HTTP/1.1" [RFC2616]. | ||||
| The IANA Authentication Scheme Registry (Section 5.1) lists | The IANA Authentication Scheme Registry (Section 5.1) lists | |||
| registered authentication schemes and their corresponding | registered authentication schemes and their corresponding | |||
| specifications, including the "basic" and "digest" authentication | specifications, including the "basic" and "digest" authentication | |||
| schemes previously defined by RFC 2617. | schemes previously defined by RFC 2617. | |||
| 1.1. Conformance and Error Handling | 1.1. Conformance and Error Handling | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| Conformance criteria and considerations regarding error handling are | Conformance criteria and considerations regarding error handling are | |||
| defined in Section 2.5 of [Part1]. | defined in Section 2.5 of [RFC7230]. | |||
| 1.2. Syntax Notation | 1.2. Syntax Notation | |||
| This specification uses the Augmented Backus-Naur Form (ABNF) | This specification uses the Augmented Backus-Naur Form (ABNF) | |||
| notation of [RFC5234] with a list extension, defined in Section 7 of | notation of [RFC5234] with a list extension, defined in Section 7 of | |||
| [Part1], that allows for compact definition of comma-separated lists | [RFC7230], that allows for compact definition of comma-separated | |||
| using a '#' operator (similar to how the '*' operator indicates | lists using a '#' operator (similar to how the '*' operator indicates | |||
| repetition). Appendix B describes rules imported from other | repetition). Appendix B describes rules imported from other | |||
| documents. Appendix C shows the collected grammar with all list | documents. Appendix C shows the collected grammar with all list | |||
| operators expanded to standard ABNF notation. | operators expanded to standard ABNF notation. | |||
| 2. Access Authentication Framework | 2. Access Authentication Framework | |||
| 2.1. Challenge and Response | 2.1. Challenge and Response | |||
| HTTP provides a simple challenge-response authentication framework | HTTP provides a simple challenge-response authentication framework | |||
| that can be used by a server to challenge a client request and by a | that can be used by a server to challenge a client request and by a | |||
| client to provide authentication information. It uses a case- | client to provide authentication information. It uses a case- | |||
| insensitive token as a means to identify the authentication scheme, | insensitive token as a means to identify the authentication scheme, | |||
| followed by additional information necessary for achieving | followed by additional information necessary for achieving | |||
| authentication via that scheme. The latter can either be a comma- | authentication via that scheme. The latter can be either a comma- | |||
| separated list of parameters or a single sequence of characters | separated list of parameters or a single sequence of characters | |||
| capable of holding base64-encoded information. | capable of holding base64-encoded information. | |||
| Authentication parameters are name=value pairs, where the name token | Authentication parameters are name=value pairs, where the name token | |||
| is matched case-insensitively, and each parameter name MUST only | is matched case-insensitively, and each parameter name MUST only | |||
| occur once per challenge. | occur once per challenge. | |||
| auth-scheme = token | auth-scheme = token | |||
| auth-param = token BWS "=" BWS ( token / quoted-string ) | auth-param = token BWS "=" BWS ( token / quoted-string ) | |||
| token68 = 1*( ALPHA / DIGIT / | token68 = 1*( ALPHA / DIGIT / | |||
| "-" / "." / "_" / "~" / "+" / "/" ) *"=" | "-" / "." / "_" / "~" / "+" / "/" ) *"=" | |||
| The "token68" syntax allows the 66 unreserved URI characters | The token68 syntax allows the 66 unreserved URI characters | |||
| ([RFC3986]), plus a few others, so that it can hold a base64, | ([RFC3986]), plus a few others, so that it can hold a base64, | |||
| base64url (URL and filename safe alphabet), base32, or base16 (hex) | base64url (URL and filename safe alphabet), base32, or base16 (hex) | |||
| encoding, with or without padding, but excluding whitespace | encoding, with or without padding, but excluding whitespace | |||
| ([RFC4648]). | ([RFC4648]). | |||
| A 401 (Unauthorized) response message is used by an origin server to | A 401 (Unauthorized) response message is used by an origin server to | |||
| challenge the authorization of a user agent, including a WWW- | challenge the authorization of a user agent, including a WWW- | |||
| Authenticate header field containing at least one challenge | Authenticate header field containing at least one challenge | |||
| applicable to the requested resource. | applicable to the requested resource. | |||
| skipping to change at page 6, line 26 ¶ | skipping to change at page 6, line 29 ¶ | |||
| (Unauthorized) response that contains a WWW-Authenticate header field | (Unauthorized) response that contains a WWW-Authenticate header field | |||
| with at least one (possibly new) challenge applicable to the | with at least one (possibly new) challenge applicable to the | |||
| requested resource. | requested resource. | |||
| Likewise, upon receipt of a request that omits proxy credentials or | Likewise, upon receipt of a request that omits proxy credentials or | |||
| contains invalid or partial proxy credentials, a proxy that requires | contains invalid or partial proxy credentials, a proxy that requires | |||
| authentication SHOULD generate a 407 (Proxy Authentication Required) | authentication SHOULD generate a 407 (Proxy Authentication Required) | |||
| response that contains a Proxy-Authenticate header field with at | response that contains a Proxy-Authenticate header field with at | |||
| least one (possibly new) challenge applicable to the proxy. | least one (possibly new) challenge applicable to the proxy. | |||
| A server that receives valid credentials which are not adequate to | A server that receives valid credentials that are not adequate to | |||
| gain access ought to respond with the 403 (Forbidden) status code | gain access ought to respond with the 403 (Forbidden) status code | |||
| (Section 6.5.3 of [Part2]). | (Section 6.5.3 of [RFC7231]). | |||
| HTTP does not restrict applications to this simple challenge-response | HTTP does not restrict applications to this simple challenge-response | |||
| framework for access authentication. Additional mechanisms can be | framework for access authentication. Additional mechanisms can be | |||
| used, such as authentication at the transport level or via message | used, such as authentication at the transport level or via message | |||
| encapsulation, and with additional header fields specifying | encapsulation, and with additional header fields specifying | |||
| authentication information. However, such additional mechanisms are | authentication information. However, such additional mechanisms are | |||
| not defined by this specification. | not defined by this specification. | |||
| 2.2. Protection Space (Realm) | 2.2. Protection Space (Realm) | |||
| The ""realm"" authentication parameter is reserved for use by | The ""realm"" authentication parameter is reserved for use by | |||
| authentication schemes that wish to indicate a scope of protection. | authentication schemes that wish to indicate a scope of protection. | |||
| A "protection space" is defined by the canonical root URI (the scheme | A "protection space" is defined by the canonical root URI (the scheme | |||
| and authority components of the effective request URI; see Section | and authority components of the effective request URI; see Section | |||
| 5.5 of [Part1]) of the server being accessed, in combination with the | 5.5 of [RFC7230]) of the server being accessed, in combination with | |||
| realm value if present. These realms allow the protected resources | the realm value if present. These realms allow the protected | |||
| on a server to be partitioned into a set of protection spaces, each | resources on a server to be partitioned into a set of protection | |||
| with its own authentication scheme and/or authorization database. | spaces, each with its own authentication scheme and/or authorization | |||
| The realm value is a string, generally assigned by the origin server, | database. The realm value is a string, generally assigned by the | |||
| which can have additional semantics specific to the authentication | origin server, that can have additional semantics specific to the | |||
| scheme. Note that a response can have multiple challenges with the | authentication scheme. Note that a response can have multiple | |||
| same auth-scheme but different realms. | challenges with the same auth-scheme but with different realms. | |||
| The protection space determines the domain over which credentials can | The protection space determines the domain over which credentials can | |||
| be automatically applied. If a prior request has been authorized, | be automatically applied. If a prior request has been authorized, | |||
| the user agent MAY reuse the same credentials for all other requests | the user agent MAY reuse the same credentials for all other requests | |||
| within that protection space for a period of time determined by the | within that protection space for a period of time determined by the | |||
| authentication scheme, parameters, and/or user preferences (such as a | authentication scheme, parameters, and/or user preferences (such as a | |||
| configurable inactivity timeout). Unless specifically allowed by the | configurable inactivity timeout). Unless specifically allowed by the | |||
| authentication scheme, a single protection space cannot extend | authentication scheme, a single protection space cannot extend | |||
| outside the scope of its server. | outside the scope of its server. | |||
| skipping to change at page 7, line 41 ¶ | skipping to change at page 7, line 44 ¶ | |||
| credentials. The user agent MAY repeat the request with a new or | credentials. The user agent MAY repeat the request with a new or | |||
| replaced Authorization header field (Section 4.2). If the 401 | replaced Authorization header field (Section 4.2). If the 401 | |||
| response contains the same challenge as the prior response, and the | response contains the same challenge as the prior response, and the | |||
| user agent has already attempted authentication at least once, then | user agent has already attempted authentication at least once, then | |||
| the user agent SHOULD present the enclosed representation to the | the user agent SHOULD present the enclosed representation to the | |||
| user, since it usually contains relevant diagnostic information. | user, since it usually contains relevant diagnostic information. | |||
| 3.2. 407 Proxy Authentication Required | 3.2. 407 Proxy Authentication Required | |||
| The "407 (Proxy Authentication Required)" status code is similar to | The "407 (Proxy Authentication Required)" status code is similar to | |||
| 401 (Unauthorized), but indicates that the client needs to | 401 (Unauthorized), but it indicates that the client needs to | |||
| authenticate itself in order to use a proxy. The proxy MUST send a | authenticate itself in order to use a proxy. The proxy MUST send a | |||
| Proxy-Authenticate header field (Section 4.3) containing a challenge | Proxy-Authenticate header field (Section 4.3) containing a challenge | |||
| applicable to that proxy for the target resource. The client MAY | applicable to that proxy for the target resource. The client MAY | |||
| repeat the request with a new or replaced Proxy-Authorization header | repeat the request with a new or replaced Proxy-Authorization header | |||
| field (Section 4.4). | field (Section 4.4). | |||
| 4. Header Field Definitions | 4. Header Field Definitions | |||
| This section defines the syntax and semantics of header fields | This section defines the syntax and semantics of header fields | |||
| related to the HTTP authentication framework. | related to the HTTP authentication framework. | |||
| skipping to change at page 9, line 12 ¶ | skipping to change at page 9, line 22 ¶ | |||
| Authorization = credentials | Authorization = credentials | |||
| If a request is authenticated and a realm specified, the same | If a request is authenticated and a realm specified, the same | |||
| credentials are presumed to be valid for all other requests within | credentials are presumed to be valid for all other requests within | |||
| this realm (assuming that the authentication scheme itself does not | this realm (assuming that the authentication scheme itself does not | |||
| require otherwise, such as credentials that vary according to a | require otherwise, such as credentials that vary according to a | |||
| challenge value or using synchronized clocks). | challenge value or using synchronized clocks). | |||
| A proxy forwarding a request MUST NOT modify any Authorization fields | A proxy forwarding a request MUST NOT modify any Authorization fields | |||
| in that request. See Section 3.2 of [Part6] for details of and | in that request. See Section 3.2 of [RFC7234] for details of and | |||
| requirements pertaining to handling of the Authorization field by | requirements pertaining to handling of the Authorization field by | |||
| HTTP caches. | HTTP caches. | |||
| 4.3. Proxy-Authenticate | 4.3. Proxy-Authenticate | |||
| The "Proxy-Authenticate" header field consists of at least one | The "Proxy-Authenticate" header field consists of at least one | |||
| challenge that indicates the authentication scheme(s) and parameters | challenge that indicates the authentication scheme(s) and parameters | |||
| applicable to the proxy for this effective request URI (Section 5.5 | applicable to the proxy for this effective request URI (Section 5.5 | |||
| of [Part1]). A proxy MUST send at least one Proxy-Authenticate | of [RFC7230]). A proxy MUST send at least one Proxy-Authenticate | |||
| header field in each 407 (Proxy Authentication Required) response | header field in each 407 (Proxy Authentication Required) response | |||
| that it generates. | that it generates. | |||
| Proxy-Authenticate = 1#challenge | Proxy-Authenticate = 1#challenge | |||
| Unlike WWW-Authenticate, the Proxy-Authenticate header field applies | Unlike WWW-Authenticate, the Proxy-Authenticate header field applies | |||
| only to the next outbound client on the response chain. This is | only to the next outbound client on the response chain. This is | |||
| because only the client that chose a given proxy is likely to have | because only the client that chose a given proxy is likely to have | |||
| the credentials necessary for authentication. However, when multiple | the credentials necessary for authentication. However, when multiple | |||
| proxies are used within the same administrative domain, such as | proxies are used within the same administrative domain, such as | |||
| skipping to change at page 10, line 15 ¶ | skipping to change at page 10, line 28 ¶ | |||
| the Proxy-Authorization header field is consumed by the first inbound | the Proxy-Authorization header field is consumed by the first inbound | |||
| proxy that was expecting to receive credentials. A proxy MAY relay | proxy that was expecting to receive credentials. A proxy MAY relay | |||
| the credentials from the client request to the next proxy if that is | the credentials from the client request to the next proxy if that is | |||
| the mechanism by which the proxies cooperatively authenticate a given | the mechanism by which the proxies cooperatively authenticate a given | |||
| request. | request. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| 5.1. Authentication Scheme Registry | 5.1. Authentication Scheme Registry | |||
| The HTTP Authentication Scheme Registry defines the name space for | The "Hypertext Transfer Protocol (HTTP) Authentication Scheme | |||
| the authentication schemes in challenges and credentials. It will be | Registry" defines the namespace for the authentication schemes in | |||
| created and maintained at (the suggested URI) | challenges and credentials. It has been created and is now | |||
| <http://www.iana.org/assignments/http-authschemes>. | maintained at <http://www.iana.org/assignments/http-authschemes>. | |||
| 5.1.1. Procedure | 5.1.1. Procedure | |||
| Registrations MUST include the following fields: | Registrations MUST include the following fields: | |||
| o Authentication Scheme Name | o Authentication Scheme Name | |||
| o Pointer to specification text | o Pointer to specification text | |||
| o Notes (optional) | o Notes (optional) | |||
| Values to be added to this name space require IETF Review (see | Values to be added to this namespace require IETF Review (see | |||
| [RFC5226], Section 4.1). | [RFC5226], Section 4.1). | |||
| 5.1.2. Considerations for New Authentication Schemes | 5.1.2. Considerations for New Authentication Schemes | |||
| There are certain aspects of the HTTP Authentication Framework that | There are certain aspects of the HTTP Authentication Framework that | |||
| put constraints on how new authentication schemes can work: | put constraints on how new authentication schemes can work: | |||
| o HTTP authentication is presumed to be stateless: all of the | o HTTP authentication is presumed to be stateless: all of the | |||
| information necessary to authenticate a request MUST be provided | information necessary to authenticate a request MUST be provided | |||
| in the request, rather than be dependent on the server remembering | in the request, rather than be dependent on the server remembering | |||
| prior requests. Authentication based on, or bound to, the | prior requests. Authentication based on, or bound to, the | |||
| underlying connection is outside the scope of this specification | underlying connection is outside the scope of this specification | |||
| and inherently flawed unless steps are taken to ensure that the | and inherently flawed unless steps are taken to ensure that the | |||
| connection cannot be used by any party other than the | connection cannot be used by any party other than the | |||
| authenticated user (see Section 2.3 of [Part1]). | authenticated user (see Section 2.3 of [RFC7230]). | |||
| o The authentication parameter "realm" is reserved for defining | o The authentication parameter "realm" is reserved for defining | |||
| Protection Spaces as defined in Section 2.2. New schemes MUST NOT | protection spaces as described in Section 2.2. New schemes MUST | |||
| use it in a way incompatible with that definition. | NOT use it in a way incompatible with that definition. | |||
| o The "token68" notation was introduced for compatibility with | o The "token68" notation was introduced for compatibility with | |||
| existing authentication schemes and can only be used once per | existing authentication schemes and can only be used once per | |||
| challenge or credential. New schemes thus ought to use the "auth- | challenge or credential. Thus, new schemes ought to use the auth- | |||
| param" syntax instead, because otherwise future extensions will be | param syntax instead, because otherwise future extensions will be | |||
| impossible. | impossible. | |||
| o The parsing of challenges and credentials is defined by this | o The parsing of challenges and credentials is defined by this | |||
| specification, and cannot be modified by new authentication | specification and cannot be modified by new authentication | |||
| schemes. When the auth-param syntax is used, all parameters ought | schemes. When the auth-param syntax is used, all parameters ought | |||
| to support both token and quoted-string syntax, and syntactical | to support both token and quoted-string syntax, and syntactical | |||
| constraints ought to be defined on the field value after parsing | constraints ought to be defined on the field value after parsing | |||
| (i.e., quoted-string processing). This is necessary so that | (i.e., quoted-string processing). This is necessary so that | |||
| recipients can use a generic parser that applies to all | recipients can use a generic parser that applies to all | |||
| authentication schemes. | authentication schemes. | |||
| Note: The fact that the value syntax for the "realm" parameter is | Note: The fact that the value syntax for the "realm" parameter is | |||
| restricted to quoted-string was a bad design choice not to be | restricted to quoted-string was a bad design choice not to be | |||
| repeated for new parameters. | repeated for new parameters. | |||
| o Definitions of new schemes ought to define the treatment of | o Definitions of new schemes ought to define the treatment of | |||
| unknown extension parameters. In general, a "must-ignore" rule is | unknown extension parameters. In general, a "must-ignore" rule is | |||
| preferable over "must-understand", because otherwise it will be | preferable to a "must-understand" rule, because otherwise it will | |||
| hard to introduce new parameters in the presence of legacy | be hard to introduce new parameters in the presence of legacy | |||
| recipients. Furthermore, it's good to describe the policy for | recipients. Furthermore, it's good to describe the policy for | |||
| defining new parameters (such as "update the specification", or | defining new parameters (such as "update the specification" or | |||
| "use this registry"). | "use this registry"). | |||
| o Authentication schemes need to document whether they are usable in | o Authentication schemes need to document whether they are usable in | |||
| origin-server authentication (i.e., using WWW-Authenticate), | origin-server authentication (i.e., using WWW-Authenticate), | |||
| and/or proxy authentication (i.e., using Proxy-Authenticate). | and/or proxy authentication (i.e., using Proxy-Authenticate). | |||
| o The credentials carried in an Authorization header field are | o The credentials carried in an Authorization header field are | |||
| specific to the User Agent, and therefore have the same effect on | specific to the user agent and, therefore, have the same effect on | |||
| HTTP caches as the "private" Cache-Control response directive | HTTP caches as the "private" Cache-Control response directive | |||
| (Section 5.2.2.6 of [Part6]), within the scope of the request they | (Section 5.2.2.6 of [RFC7234]), within the scope of the request in | |||
| appear in. | which they appear. | |||
| Therefore, new authentication schemes that choose not to carry | Therefore, new authentication schemes that choose not to carry | |||
| credentials in the Authorization header field (e.g., using a newly | credentials in the Authorization header field (e.g., using a newly | |||
| defined header field) will need to explicitly disallow caching, by | defined header field) will need to explicitly disallow caching, by | |||
| mandating the use of either Cache-Control request directives | mandating the use of either Cache-Control request directives | |||
| (e.g., "no-store", Section 5.2.1.5 of [Part6]) or response | (e.g., "no-store", Section 5.2.1.5 of [RFC7234]) or response | |||
| directives (e.g., "private"). | directives (e.g., "private"). | |||
| 5.2. Status Code Registration | 5.2. Status Code Registration | |||
| The HTTP Status Code Registry located at | The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located | |||
| <http://www.iana.org/assignments/http-status-codes> shall be updated | at <http://www.iana.org/assignments/http-status-codes> has been | |||
| with the registrations below: | updated with the registrations below: | |||
| +-------+-------------------------------+-------------+ | +-------+-------------------------------+-------------+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +-------+-------------------------------+-------------+ | +-------+-------------------------------+-------------+ | |||
| | 401 | Unauthorized | Section 3.1 | | | 401 | Unauthorized | Section 3.1 | | |||
| | 407 | Proxy Authentication Required | Section 3.2 | | | 407 | Proxy Authentication Required | Section 3.2 | | |||
| +-------+-------------------------------+-------------+ | +-------+-------------------------------+-------------+ | |||
| 5.3. Header Field Registration | 5.3. Header Field Registration | |||
| HTTP header fields are registered within the Message Header Field | HTTP header fields are registered within the "Message Headers" | |||
| Registry maintained at <http://www.iana.org/assignments/ | registry maintained at | |||
| message-headers/message-header-index.html>. | <http://www.iana.org/assignments/message-headers/>. | |||
| This document defines the following HTTP header fields, so their | This document defines the following HTTP header fields, so the | |||
| associated registry entries shall be updated according to the | "Permanent Message Header Field Names" registry has been updated | |||
| permanent registrations below (see [BCP90]): | accordingly (see [BCP90]). | |||
| +---------------------+----------+----------+-------------+ | +---------------------+----------+----------+-------------+ | |||
| | Header Field Name | Protocol | Status | Reference | | | Header Field Name | Protocol | Status | Reference | | |||
| +---------------------+----------+----------+-------------+ | +---------------------+----------+----------+-------------+ | |||
| | Authorization | http | standard | Section 4.2 | | | Authorization | http | standard | Section 4.2 | | |||
| | Proxy-Authenticate | http | standard | Section 4.3 | | | Proxy-Authenticate | http | standard | Section 4.3 | | |||
| | Proxy-Authorization | http | standard | Section 4.4 | | | Proxy-Authorization | http | standard | Section 4.4 | | |||
| | WWW-Authenticate | http | standard | Section 4.1 | | | WWW-Authenticate | http | standard | Section 4.1 | | |||
| +---------------------+----------+----------+-------------+ | +---------------------+----------+----------+-------------+ | |||
| skipping to change at page 12, line 44 ¶ | skipping to change at page 13, line 4 ¶ | |||
| | WWW-Authenticate | http | standard | Section 4.1 | | | WWW-Authenticate | http | standard | Section 4.1 | | |||
| +---------------------+----------+----------+-------------+ | +---------------------+----------+----------+-------------+ | |||
| The change controller is: "IETF (iesg@ietf.org) - Internet | The change controller is: "IETF (iesg@ietf.org) - Internet | |||
| Engineering Task Force". | Engineering Task Force". | |||
| 6. Security Considerations | 6. Security Considerations | |||
| This section is meant to inform developers, information providers, | This section is meant to inform developers, information providers, | |||
| and users of known security concerns specific to HTTP authentication. | and users of known security concerns specific to HTTP authentication. | |||
| More general security considerations are addressed in HTTP messaging | More general security considerations are addressed in HTTP messaging | |||
| [Part1] and semantics [Part2]. | [RFC7230] and semantics [RFC7231]. | |||
| Everything about the topic of HTTP authentication is a security | Everything about the topic of HTTP authentication is a security | |||
| consideration, so the list of considerations below is not exhaustive. | consideration, so the list of considerations below is not exhaustive. | |||
| Furthermore, it is limited to security considerations regarding the | Furthermore, it is limited to security considerations regarding the | |||
| authentication framework, in general, rather than discussing all of | authentication framework, in general, rather than discussing all of | |||
| the potential considerations for specific authentication schemes | the potential considerations for specific authentication schemes | |||
| (which ought to be documented in the specifications that define those | (which ought to be documented in the specifications that define those | |||
| schemes). Various organizations maintain topical information and | schemes). Various organizations maintain topical information and | |||
| links to current research on Web application security (e.g., | links to current research on Web application security (e.g., | |||
| [OWASP]), including common pitfalls for implementing and using the | [OWASP]), including common pitfalls for implementing and using the | |||
| skipping to change at page 13, line 23 ¶ | skipping to change at page 13, line 33 ¶ | |||
| authentication scheme defines how the credentials are encoded prior | authentication scheme defines how the credentials are encoded prior | |||
| to transmission. While this provides flexibility for the development | to transmission. While this provides flexibility for the development | |||
| of future authentication schemes, it is inadequate for the protection | of future authentication schemes, it is inadequate for the protection | |||
| of existing schemes that provide no confidentiality on their own, or | of existing schemes that provide no confidentiality on their own, or | |||
| that do not sufficiently protect against replay attacks. | that do not sufficiently protect against replay attacks. | |||
| Furthermore, if the server expects credentials that are specific to | Furthermore, if the server expects credentials that are specific to | |||
| each individual user, the exchange of those credentials will have the | each individual user, the exchange of those credentials will have the | |||
| effect of identifying that user even if the content within | effect of identifying that user even if the content within | |||
| credentials remains confidential. | credentials remains confidential. | |||
| HTTP depends on the security properties of the underlying transport | HTTP depends on the security properties of the underlying transport- | |||
| or session-level connection to provide confidential transmission of | or session-level connection to provide confidential transmission of | |||
| header fields. In other words, if a server limits access to | header fields. In other words, if a server limits access to | |||
| authenticated users using this framework, the server needs to ensure | authenticated users using this framework, the server needs to ensure | |||
| that the connection is properly secured in accordance with the nature | that the connection is properly secured in accordance with the nature | |||
| of the authentication scheme used. For example, services that depend | of the authentication scheme used. For example, services that depend | |||
| on individual user authentication often require a connection to be | on individual user authentication often require a connection to be | |||
| secured with TLS ("Transport Layer Security", [RFC5246]) prior to | secured with TLS ("Transport Layer Security", [RFC5246]) prior to | |||
| exchanging any credentials. | exchanging any credentials. | |||
| 6.2. Authentication Credentials and Idle Clients | 6.2. Authentication Credentials and Idle Clients | |||
| skipping to change at page 14, line 38 ¶ | skipping to change at page 14, line 48 ¶ | |||
| 7. Acknowledgments | 7. Acknowledgments | |||
| This specification takes over the definition of the HTTP | This specification takes over the definition of the HTTP | |||
| Authentication Framework, previously defined in RFC 2617. We thank | Authentication Framework, previously defined in RFC 2617. We thank | |||
| John Franks, Phillip M. Hallam-Baker, Jeffery L. Hostetler, Scott D. | John Franks, Phillip M. Hallam-Baker, Jeffery L. Hostetler, Scott D. | |||
| Lawrence, Paul J. Leach, Ari Luotonen, and Lawrence C. Stewart for | Lawrence, Paul J. Leach, Ari Luotonen, and Lawrence C. Stewart for | |||
| their work on that specification. See Section 6 of [RFC2617] for | their work on that specification. See Section 6 of [RFC2617] for | |||
| further acknowledgements. | further acknowledgements. | |||
| See Section 10 of [Part1] for the Acknowledgments related to this | See Section 10 of [RFC7230] for the Acknowledgments related to this | |||
| document revision. | document revision. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [Part1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
| Protocol (HTTP/1.1): Message Syntax and Routing", | ||||
| draft-ietf-httpbis-p1-messaging-26 (work in progress), | ||||
| February 2014. | ||||
| [Part2] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
| Protocol (HTTP/1.1): Semantics and Content", | ||||
| draft-ietf-httpbis-p2-semantics-26 (work in progress), | ||||
| February 2014. | ||||
| [Part6] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | ||||
| Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", | ||||
| draft-ietf-httpbis-p6-cache-26 (work in progress), | ||||
| February 2014. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
| Protocol (HTTP/1.1): Message Syntax and Routing", | ||||
| draft-ietf-httpbis-p1-messaging-latest (work in progress), | ||||
| June 2014. | ||||
| [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
| Protocol (HTTP/1.1): Semantics and Content", | ||||
| draft-ietf-httpbis-p2-semantics-latest (work in progress), | ||||
| June 2014. | ||||
| [RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | ||||
| Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", | ||||
| draft-ietf-httpbis-p6-cache-latest (work in progress), | ||||
| June 2014. | ||||
| 8.2. Informative References | 8.2. Informative References | |||
| [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration | [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration | |||
| Procedures for Message Header Fields", BCP 90, RFC 3864, | Procedures for Message Header Fields", BCP 90, RFC 3864, | |||
| September 2004. | September 2004. | |||
| [OWASP] van der Stock, A., Ed., "A Guide to Building Secure Web | [OWASP] van der Stock, A., Ed., "A Guide to Building Secure Web | |||
| Applications and Web Services", The Open Web Application | Applications and Web Services", The Open Web Application | |||
| Security Project (OWASP) 2.0.1, July 2005, | Security Project (OWASP) 2.0.1, July 2005, | |||
| <https://www.owasp.org/>. | <https://www.owasp.org/>. | |||
| skipping to change at page 16, line 31 ¶ | skipping to change at page 16, line 39 ¶ | |||
| Appendix B. Imported ABNF | Appendix B. Imported ABNF | |||
| The following core rules are included by reference, as defined in | The following core rules are included by reference, as defined in | |||
| Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return), | Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return), | |||
| CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double | CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double | |||
| quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any | quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any | |||
| 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII | 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII | |||
| character). | character). | |||
| The rules below are defined in [Part1]: | The rules below are defined in [RFC7230]: | |||
| BWS = <BWS, defined in [Part1], Section 3.2.3> | BWS = <BWS, see [RFC7230], Section 3.2.3> | |||
| OWS = <OWS, defined in [Part1], Section 3.2.3> | OWS = <OWS, see [RFC7230], Section 3.2.3> | |||
| quoted-string = <quoted-string, defined in [Part1], Section 3.2.6> | quoted-string = <quoted-string, see [RFC7230], Section 3.2.6> | |||
| token = <token, defined in [Part1], Section 3.2.6> | token = <token, see [RFC7230], Section 3.2.6> | |||
| Appendix C. Collected ABNF | Appendix C. Collected ABNF | |||
| In the collected ABNF below, list rules are expanded as per Section | In the collected ABNF below, list rules are expanded as per Section | |||
| 1.2 of [Part1]. | 1.2 of [RFC7230]. | |||
| Authorization = credentials | Authorization = credentials | |||
| BWS = <BWS, defined in [Part1], Section 3.2.3> | BWS = <BWS, see [RFC7230], Section 3.2.3> | |||
| OWS = <OWS, defined in [Part1], Section 3.2.3> | OWS = <OWS, see [RFC7230], Section 3.2.3> | |||
| Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS | Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS | |||
| challenge ] ) | challenge ] ) | |||
| Proxy-Authorization = credentials | Proxy-Authorization = credentials | |||
| WWW-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge | WWW-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge | |||
| ] ) | ] ) | |||
| auth-param = token BWS "=" BWS ( token / quoted-string ) | auth-param = token BWS "=" BWS ( token / quoted-string ) | |||
| auth-scheme = token | auth-scheme = token | |||
| challenge = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) *( | challenge = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) *( | |||
| OWS "," [ OWS auth-param ] ) ] ) ] | OWS "," [ OWS auth-param ] ) ] ) ] | |||
| credentials = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) | credentials = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) | |||
| *( OWS "," [ OWS auth-param ] ) ] ) ] | *( OWS "," [ OWS auth-param ] ) ] ) ] | |||
| quoted-string = <quoted-string, defined in [Part1], Section 3.2.6> | quoted-string = <quoted-string, see [RFC7230], Section 3.2.6> | |||
| token = <token, defined in [Part1], Section 3.2.6> | token = <token, see [RFC7230], Section 3.2.6> | |||
| token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) | token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) | |||
| *"=" | *"=" | |||
| Appendix D. Change Log (to be removed by RFC Editor before publication) | ||||
| Changes up to the IETF Last Call draft are summarized in <http:// | ||||
| trac.tools.ietf.org/html/draft-ietf-httpbis-p7-auth-24#appendix-D>. | ||||
| D.1. Since draft-ietf-httpbis-p7-auth-24 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/510>: "SECDIR review | ||||
| of draft-ietf-httpbis-p7-auth-24" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/513>: "APPSDIR | ||||
| review of draft-ietf-httpbis-p7-auth-24" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/516>: "note about | ||||
| WWW-A parsing potentially misleading" | ||||
| D.2. Since draft-ietf-httpbis-p7-auth-25 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/522>: "Gen-art | ||||
| review of draft-ietf-httpbis-p7-auth-25" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/536>: "IESG ballot | ||||
| on draft-ietf-httpbis-p7-auth-25" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/538>: "add | ||||
| 'stateless' to Abstract" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/539>: "mention TLS | ||||
| vs plain text passwords or dict attacks?" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/542>: "improve | ||||
| introduction of list rule" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/549>: "augment | ||||
| security considerations with pointers to current research" | ||||
| Index | Index | |||
| 4 | 4 | |||
| 401 Unauthorized (status code) 7 | 401 Unauthorized (status code) 7 | |||
| 407 Proxy Authentication Required (status code) 7 | 407 Proxy Authentication Required (status code) 7 | |||
| A | A | |||
| Authorization header field 8 | Authorization header field 9 | |||
| C | C | |||
| Canonical Root URI 6 | Canonical Root URI 6 | |||
| G | G | |||
| Grammar | Grammar | |||
| auth-param 5 | auth-param 5 | |||
| auth-scheme 5 | auth-scheme 5 | |||
| Authorization 8 | Authorization 9 | |||
| challenge 5 | challenge 5 | |||
| credentials 6 | credentials 6 | |||
| Proxy-Authenticate 9 | Proxy-Authenticate 9 | |||
| Proxy-Authorization 9 | Proxy-Authorization 10 | |||
| token68 5 | token68 5 | |||
| WWW-Authenticate 8 | WWW-Authenticate 8 | |||
| P | P | |||
| Protection Space 6 | Protection Space 6 | |||
| Proxy-Authenticate header field 9 | Proxy-Authenticate header field 9 | |||
| Proxy-Authorization header field 9 | Proxy-Authorization header field 10 | |||
| R | R | |||
| Realm 6 | Realm 6 | |||
| W | W | |||
| WWW-Authenticate header field 8 | WWW-Authenticate header field 8 | |||
| Authors' Addresses | Authors' Addresses | |||
| Roy T. Fielding (editor) | Roy T. Fielding (editor) | |||
| End of changes. 54 change blocks. | ||||
| 136 lines changed or deleted | 97 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||