source: draft-ietf-httpbis/09/draft-ietf-httpbis-p7-auth-09.xml @ 772

Last change on this file since 772 was 772, checked in by julian.reschke@…, 10 years ago

Prepare publication of -09 drafts on March 08

File size: 36.0 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3    This XML document is the output of clean-for-DTD.xslt; a tool that strips
4    extensions to RFC2629(bis) from documents for processing with xml2rfc.
5-->
6<?xml-stylesheet type='text/xsl' href='../myxml2rfc.xslt'?>
7<?rfc toc="yes" ?>
8<?rfc symrefs="yes" ?>
9<?rfc sortrefs="yes" ?>
10<?rfc compact="yes"?>
11<?rfc subcompact="no" ?>
12<?rfc linkmailto="no" ?>
13<?rfc editing="no" ?>
14<?rfc comments="yes"?>
15<?rfc inline="yes"?>
16<!DOCTYPE rfc
17  PUBLIC "" "rfc2629.dtd">
18<rfc obsoletes="2616" updates="2617" category="std" ipr="pre5378Trust200902" docName="draft-ietf-httpbis-p7-auth-09">
19<front>
20
21  <title abbrev="HTTP/1.1, Part 7">HTTP/1.1, part 7: Authentication</title>
22
23  <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
24    <organization abbrev="Day Software">Day Software</organization>
25    <address>
26      <postal>
27        <street>23 Corporate Plaza DR, Suite 280</street>
28        <city>Newport Beach</city>
29        <region>CA</region>
30        <code>92660</code>
31        <country>USA</country>
32      </postal>
33      <phone>+1-949-706-5300</phone>
34      <facsimile>+1-949-706-5305</facsimile>
35      <email>fielding@gbiv.com</email>
36      <uri>http://roy.gbiv.com/</uri>
37    </address>
38  </author>
39
40  <author initials="J." surname="Gettys" fullname="Jim Gettys">
41    <organization>One Laptop per Child</organization>
42    <address>
43      <postal>
44        <street>21 Oak Knoll Road</street>
45        <city>Carlisle</city>
46        <region>MA</region>
47        <code>01741</code>
48        <country>USA</country>
49      </postal>
50      <email>jg@laptop.org</email>
51      <uri>http://www.laptop.org/</uri>
52    </address>
53  </author>
54 
55  <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
56    <organization abbrev="HP">Hewlett-Packard Company</organization>
57    <address>
58      <postal>
59        <street>HP Labs, Large Scale Systems Group</street>
60        <street>1501 Page Mill Road, MS 1177</street>
61        <city>Palo Alto</city>
62        <region>CA</region>
63        <code>94304</code>
64        <country>USA</country>
65      </postal>
66      <email>JeffMogul@acm.org</email>
67    </address>
68  </author>
69
70  <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
71    <organization abbrev="Microsoft">Microsoft Corporation</organization>
72    <address>
73      <postal>
74        <street>1 Microsoft Way</street>
75        <city>Redmond</city>
76        <region>WA</region>
77        <code>98052</code>
78        <country>USA</country>
79      </postal>
80      <email>henrikn@microsoft.com</email>
81    </address>
82  </author>
83
84  <author initials="L." surname="Masinter" fullname="Larry Masinter">
85    <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
86    <address>
87      <postal>
88        <street>345 Park Ave</street>
89        <city>San Jose</city>
90        <region>CA</region>
91        <code>95110</code>
92        <country>USA</country>
93      </postal>
94      <email>LMM@acm.org</email>
95      <uri>http://larry.masinter.net/</uri>
96    </address>
97  </author>
98 
99  <author initials="P." surname="Leach" fullname="Paul J. Leach">
100    <organization abbrev="Microsoft">Microsoft Corporation</organization>
101    <address>
102      <postal>
103        <street>1 Microsoft Way</street>
104        <city>Redmond</city>
105        <region>WA</region>
106        <code>98052</code>
107      </postal>
108      <email>paulle@microsoft.com</email>
109    </address>
110  </author>
111   
112  <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
113    <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
114    <address>
115      <postal>
116        <street>MIT Computer Science and Artificial Intelligence Laboratory</street>
117        <street>The Stata Center, Building 32</street>
118        <street>32 Vassar Street</street>
119        <city>Cambridge</city>
120        <region>MA</region>
121        <code>02139</code>
122        <country>USA</country>
123      </postal>
124      <email>timbl@w3.org</email>
125      <uri>http://www.w3.org/People/Berners-Lee/</uri>
126    </address>
127  </author>
128
129  <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
130    <organization abbrev="W3C">World Wide Web Consortium</organization>
131    <address>
132      <postal>
133        <street>W3C / ERCIM</street>
134        <street>2004, rte des Lucioles</street>
135        <city>Sophia-Antipolis</city>
136        <region>AM</region>
137        <code>06902</code>
138        <country>France</country>
139      </postal>
140      <email>ylafon@w3.org</email>
141      <uri>http://www.raubacapeu.net/people/yves/</uri>
142    </address>
143  </author>
144
145  <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
146    <organization abbrev="greenbytes">greenbytes GmbH</organization>
147    <address>
148      <postal>
149        <street>Hafenweg 16</street>
150        <city>Muenster</city><region>NW</region><code>48155</code>
151        <country>Germany</country>
152      </postal>
153      <phone>+49 251 2807760</phone>
154      <facsimile>+49 251 2807761</facsimile>
155      <email>julian.reschke@greenbytes.de</email>
156      <uri>http://greenbytes.de/tech/webdav/</uri>
157    </address>
158  </author>
159
160  <date month="March" year="2010" day="8"/>
161  <workgroup>HTTPbis Working Group</workgroup>
162
163<abstract>
164<t>
165   The Hypertext Transfer Protocol (HTTP) is an application-level
166   protocol for distributed, collaborative, hypermedia information
167   systems. HTTP has been in use by the World Wide Web global information
168   initiative since 1990. This document is Part 7 of the seven-part specification
169   that defines the protocol referred to as "HTTP/1.1" and, taken together,
170   obsoletes RFC 2616.  Part 7 defines HTTP Authentication.
171</t>
172</abstract>
173
174<note title="Editorial Note (To be removed by RFC Editor)">
175  <t>
176    Discussion of this draft should take place on the HTTPBIS working group
177    mailing list (ietf-http-wg@w3.org). The current issues list is
178    at <eref target="http://tools.ietf.org/wg/httpbis/trac/report/11"/>
179    and related documents (including fancy diffs) can be found at
180    <eref target="http://tools.ietf.org/wg/httpbis/"/>.
181  </t>
182  <t>
183    The changes in this draft are summarized in <xref target="changes.since.08"/>.
184  </t>
185</note>
186</front>
187<middle>
188<section title="Introduction" anchor="introduction">
189<t>
190   This document defines HTTP/1.1 access control and authentication. Right now it
191   includes the extracted relevant sections of
192   RFC 2616 with only minor changes.
193   The intention is to move the general framework for HTTP authentication here,
194   as currently specified in <xref target="RFC2617"/>, and allow the individual
195   authentication mechanisms to be defined elsewhere.  This introduction will
196   be rewritten when that occurs.
197</t>
198<t>
199   HTTP provides several OPTIONAL challenge-response authentication
200   mechanisms which can be used by a server to challenge a client
201   request and by a client to provide authentication information. The
202   general framework for access authentication, and the specification of
203   "basic" and "digest" authentication, are specified in "HTTP
204   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. This
205   specification adopts the definitions of "challenge" and "credentials"
206   from that specification.
207</t>
208
209<section title="Requirements" anchor="intro.requirements">
210<t>
211   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
212   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
213   document are to be interpreted as described in <xref target="RFC2119"/>.
214</t>
215<t>
216   An implementation is not compliant if it fails to satisfy one or more
217   of the MUST or REQUIRED level requirements for the protocols it
218   implements. An implementation that satisfies all the MUST or REQUIRED
219   level and all the SHOULD level requirements for its protocols is said
220   to be "unconditionally compliant"; one that satisfies all the MUST
221   level requirements but not all the SHOULD level requirements for its
222   protocols is said to be "conditionally compliant."
223</t>
224</section>
225
226<section title="Syntax Notation" anchor="notation">
227 
228 
229 
230 
231 
232 
233 
234<t>
235  This specification uses the ABNF syntax defined in Section 1.2 of <xref target="Part1"/> (which
236  extends the syntax defined in <xref target="RFC5234"/> with a list rule).
237  <xref target="collected.abnf"/> shows the collected ABNF, with the list
238  rule expanded.
239</t>
240<t>
241  The following core rules are included by
242  reference, as defined in <xref target="RFC5234"/>, Appendix B.1:
243  ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls),
244  DIGIT (decimal 0-9), DQUOTE (double quote),
245  HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed),
246  OCTET (any 8-bit sequence of data), SP (space),
247  VCHAR (any visible USASCII character),
248  and WSP (whitespace).
249</t>
250
251<section title="Core Rules" anchor="core.rules">
252 
253<t>
254  The core rules below are defined in Section 1.2.2 of <xref target="Part1"/>:
255</t>
256<figure><artwork type="abnf2616"><![CDATA[
257  OWS         = <OWS, defined in [Part1], Section 1.2.2>
258]]></artwork></figure>
259</section>
260
261<section title="ABNF Rules defined in other Parts of the Specification" anchor="abnf.dependencies">
262 
263 
264<t>
265 
266  The ABNF rules below are defined in other specifications:
267</t>
268<figure><iref primary="true" item="Grammar" subitem="challenge"/><iref primary="true" item="Grammar" subitem="credentials"/><artwork type="abnf2616"><![CDATA[
269  challenge   = <challenge, defined in [RFC2617], Section 1.2>
270  credentials = <credentials, defined in [RFC2617], Section 1.2>
271]]></artwork></figure>
272</section>
273
274</section>
275
276</section>
277
278
279<section title="Status Code Definitions">
280<section title="401 Unauthorized" anchor="status.401">
281  <iref primary="true" item="401 Unauthorized (status code)"/>
282  <iref primary="true" item="Status Codes" subitem="401 Unauthorized"/>
283<t>
284   The request requires user authentication. The response MUST include a
285   WWW-Authenticate header field (<xref target="header.www-authenticate"/>) containing a challenge
286   applicable to the requested resource. The client MAY repeat the
287   request with a suitable Authorization header field (<xref target="header.authorization"/>). If
288   the request already included Authorization credentials, then the 401
289   response indicates that authorization has been refused for those
290   credentials. If the 401 response contains the same challenge as the
291   prior response, and the user agent has already attempted
292   authentication at least once, then the user SHOULD be presented the
293   entity that was given in the response, since that entity might
294   include relevant diagnostic information. HTTP access authentication
295   is explained in "HTTP Authentication: Basic and Digest Access
296   Authentication" <xref target="RFC2617"/>.
297</t>
298</section>
299<section title="407 Proxy Authentication Required" anchor="status.407">
300  <iref primary="true" item="407 Proxy Authentication Required (status code)"/>
301  <iref primary="true" item="Status Codes" subitem="407 Proxy Authentication Required"/>
302<t>
303   This code is similar to 401 (Unauthorized), but indicates that the
304   client must first authenticate itself with the proxy. The proxy MUST
305   return a Proxy-Authenticate header field (<xref target="header.proxy-authenticate"/>) containing a
306   challenge applicable to the proxy for the requested resource. The
307   client MAY repeat the request with a suitable Proxy-Authorization
308   header field (<xref target="header.proxy-authorization"/>). HTTP access authentication is explained
309   in "HTTP Authentication: Basic and Digest Access Authentication"
310   <xref target="RFC2617"/>.
311</t>
312</section>
313</section>
314
315<section title="Header Field Definitions" anchor="header.fields">
316<t>
317   This section defines the syntax and semantics of HTTP/1.1 header fields
318   related to authentication.
319</t>
320
321<section title="Authorization" anchor="header.authorization">
322  <iref primary="true" item="Authorization header"/>
323  <iref primary="true" item="Headers" subitem="Authorization"/>
324 
325 
326<t>
327   The "Authorization" request-header field allows a user agent to authenticate
328   itself with a server -- usually, but not necessarily, after receiving a 401
329   (Unauthorized) response. Its value consists of credentials containing
330   information of the user agent for the realm of the resource being
331   requested.
332</t>
333<figure><iref primary="true" item="Grammar" subitem="Authorization"/><iref primary="true" item="Grammar" subitem="Authorization-v"/><artwork type="abnf2616"><![CDATA[
334  Authorization   = "Authorization" ":" OWS Authorization-v
335  Authorization-v = credentials
336]]></artwork></figure>
337<t>
338   HTTP access authentication is described in "HTTP Authentication:
339   Basic and Digest Access Authentication" <xref target="RFC2617"/>. If a request is
340   authenticated and a realm specified, the same credentials SHOULD
341   be valid for all other requests within this realm (assuming that
342   the authentication scheme itself does not require otherwise, such
343   as credentials that vary according to a challenge value or using
344   synchronized clocks).
345</t>
346<t>
347      When a shared cache (see Section 1.2 of <xref target="Part6"/>) receives a request
348      containing an Authorization field, it MUST NOT return the
349      corresponding response as a reply to any other request, unless one
350      of the following specific exceptions holds:
351</t>
352<t>
353  <list style="numbers">
354      <t>If the response includes the "s-maxage" cache-control
355         directive, the cache MAY use that response in replying to a
356         subsequent request. But (if the specified maximum age has
357         passed) a proxy cache MUST first revalidate it with the origin
358         server, using the request-headers from the new request to allow
359         the origin server to authenticate the new request. (This is the
360         defined behavior for s-maxage.) If the response includes "s-maxage=0",
361         the proxy MUST always revalidate it before re-using
362         it.</t>
363
364      <t>If the response includes the "must-revalidate" cache-control
365         directive, the cache MAY use that response in replying to a
366         subsequent request. But if the response is stale, all caches
367         MUST first revalidate it with the origin server, using the
368         request-headers from the new request to allow the origin server
369         to authenticate the new request.</t>
370
371      <t>If the response includes the "public" cache-control directive,
372         it MAY be returned in reply to any subsequent request.</t>
373  </list>
374</t>
375</section>
376
377<section title="Proxy-Authenticate" anchor="header.proxy-authenticate">
378  <iref primary="true" item="Proxy-Authenticate header"/>
379  <iref primary="true" item="Headers" subitem="Proxy-Authenticate"/>
380 
381 
382<t>
383   The "Proxy-Authenticate" response-header field consists of a challenge that
384   indicates the authentication scheme and parameters applicable to the proxy
385   for this request-target. It MUST be included as part
386   of a 407 (Proxy Authentication Required) response.
387</t>
388<figure><iref primary="true" item="Grammar" subitem="Proxy-Authenticate"/><iref primary="true" item="Grammar" subitem="Proxy-Authenticate-v"/><artwork type="abnf2616"><![CDATA[
389  Proxy-Authenticate   = "Proxy-Authenticate" ":" OWS
390                         Proxy-Authenticate-v
391  Proxy-Authenticate-v = 1#challenge
392]]></artwork></figure>
393<t>
394   The HTTP access authentication process is described in "HTTP
395   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. Unlike
396   WWW-Authenticate, the Proxy-Authenticate header field applies only to
397   the current connection and SHOULD NOT  be passed on to downstream
398   clients. However, an intermediate proxy might need to obtain its own
399   credentials by requesting them from the downstream client, which in
400   some circumstances will appear as if the proxy is forwarding the
401   Proxy-Authenticate header field.
402</t>
403</section>
404
405<section title="Proxy-Authorization" anchor="header.proxy-authorization">
406  <iref primary="true" item="Proxy-Authorization header"/>
407  <iref primary="true" item="Headers" subitem="Proxy-Authorization"/>
408 
409 
410<t>
411   The "Proxy-Authorization" request-header field allows the client to
412   identify itself (or its user) to a proxy which requires
413   authentication. Its value consists of
414   credentials containing the authentication information of the user
415   agent for the proxy and/or realm of the resource being requested.
416</t>
417<figure><iref primary="true" item="Grammar" subitem="Proxy-Authorization"/><iref primary="true" item="Grammar" subitem="Proxy-Authorization-v"/><artwork type="abnf2616"><![CDATA[
418  Proxy-Authorization   = "Proxy-Authorization" ":" OWS
419                          Proxy-Authorization-v
420  Proxy-Authorization-v = credentials
421]]></artwork></figure>
422<t>
423   The HTTP access authentication process is described in "HTTP
424   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. Unlike
425   Authorization, the Proxy-Authorization header field applies only to
426   the next outbound proxy that demanded authentication using the Proxy-Authenticate
427   field. When multiple proxies are used in a chain, the
428   Proxy-Authorization header field is consumed by the first outbound
429   proxy that was expecting to receive credentials. A proxy MAY relay
430   the credentials from the client request to the next proxy if that is
431   the mechanism by which the proxies cooperatively authenticate a given
432   request.
433</t>
434</section>
435
436<section title="WWW-Authenticate" anchor="header.www-authenticate">
437  <iref primary="true" item="WWW-Authenticate header"/>
438  <iref primary="true" item="Headers" subitem="WWW-Authenticate"/>
439 
440 
441<t>
442   The "WWW-Authenticate" response-header field consists of at least one
443   challenge that indicates the authentication scheme(s) and parameters
444   applicable to the request-target. It MUST be included in 401
445   (Unauthorized) response messages.
446</t>
447<figure><iref primary="true" item="Grammar" subitem="WWW-Authenticate"/><iref primary="true" item="Grammar" subitem="WWW-Authenticate-v"/><artwork type="abnf2616"><![CDATA[
448  WWW-Authenticate   = "WWW-Authenticate" ":" OWS WWW-Authenticate-v
449  WWW-Authenticate-v = 1#challenge
450]]></artwork></figure>
451<t>
452   The HTTP access authentication process is described in "HTTP
453   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. User
454   agents are advised to take special care in parsing the WWW-Authenticate
455   field value as it might contain more than one challenge,
456   or if more than one WWW-Authenticate header field is provided, the
457   contents of a challenge itself can contain a comma-separated list of
458   authentication parameters.
459</t>
460</section>
461
462</section>
463
464<section title="IANA Considerations" anchor="IANA.considerations">
465
466<section title="Status Code Registration" anchor="status.code.registration">
467<t>
468   The HTTP Status Code Registry located at <eref target="http://www.iana.org/assignments/http-status-codes"/>
469   should be updated with the registrations below:
470</t>
471
472<!--AUTOGENERATED FROM extract-status-code-defs.xslt, do not edit manually-->
473<texttable align="left" suppress-title="true" anchor="iana.status.code.registration.table">
474   <ttcol>Value</ttcol>
475   <ttcol>Description</ttcol>
476   <ttcol>Reference</ttcol>
477   <c>401</c>
478   <c>Unauthorized</c>
479   <c>
480      <xref target="status.401"/>
481   </c>
482   <c>407</c>
483   <c>Proxy Authentication Required</c>
484   <c>
485      <xref target="status.407"/>
486   </c>
487</texttable>
488<!--(END)-->
489
490</section>
491
492<section title="Message Header Registration" anchor="message.header.registration">
493<t>
494   The Message Header Registry located at <eref target="http://www.iana.org/assignments/message-headers/message-header-index.html"/> should be updated
495   with the permanent registrations below (see <xref target="RFC3864"/>):
496</t>
497
498<!--AUTOGENERATED FROM extract-header-defs.xslt, do not edit manually-->
499<texttable align="left" suppress-title="true" anchor="iana.header.registration.table">
500   <ttcol>Header Field Name</ttcol>
501   <ttcol>Protocol</ttcol>
502   <ttcol>Status</ttcol>
503   <ttcol>Reference</ttcol>
504
505   <c>Authorization</c>
506   <c>http</c>
507   <c>standard</c>
508   <c>
509      <xref target="header.authorization"/>
510   </c>
511   <c>Proxy-Authenticate</c>
512   <c>http</c>
513   <c>standard</c>
514   <c>
515      <xref target="header.proxy-authenticate"/>
516   </c>
517   <c>Proxy-Authorization</c>
518   <c>http</c>
519   <c>standard</c>
520   <c>
521      <xref target="header.proxy-authorization"/>
522   </c>
523   <c>WWW-Authenticate</c>
524   <c>http</c>
525   <c>standard</c>
526   <c>
527      <xref target="header.www-authenticate"/>
528   </c>
529</texttable>
530<!--(END)-->
531
532<t>
533   The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".
534</t>
535</section>
536</section>
537
538<section title="Security Considerations" anchor="security.considerations">
539<t>
540   This section is meant to inform application developers, information
541   providers, and users of the security limitations in HTTP/1.1 as
542   described by this document. The discussion does not include
543   definitive solutions to the problems revealed, though it does make
544   some suggestions for reducing security risks.
545</t>
546
547<section title="Authentication Credentials and Idle Clients" anchor="auth.credentials.and.idle.clients">
548<t>
549   Existing HTTP clients and user agents typically retain authentication
550   information indefinitely. HTTP/1.1 does not provide a method for a
551   server to direct clients to discard these cached credentials. This is
552   a significant defect that requires further extensions to HTTP.
553   Circumstances under which credential caching can interfere with the
554   application's security model include but are not limited to:
555  <list style="symbols">
556     <t>Clients which have been idle for an extended period following
557        which the server might wish to cause the client to reprompt the
558        user for credentials.</t>
559
560     <t>Applications which include a session termination indication
561        (such as a "logout" or "commit" button on a page) after which
562        the server side of the application "knows" that there is no
563        further reason for the client to retain the credentials.</t>
564  </list>
565</t>
566<t>
567   This is currently under separate study. There are a number of work-arounds
568   to parts of this problem, and we encourage the use of
569   password protection in screen savers, idle time-outs, and other
570   methods which mitigate the security problems inherent in this
571   problem. In particular, user agents which cache credentials are
572   encouraged to provide a readily accessible mechanism for discarding
573   cached credentials under user control.
574</t>
575</section>
576</section>
577
578<section title="Acknowledgments" anchor="ack">
579<t>
580  <cref anchor="acks">TBD.</cref>
581</t>
582</section>
583</middle>
584
585<back>
586
587<references title="Normative References">
588
589<reference anchor="Part1">
590  <front>
591    <title abbrev="HTTP/1.1">HTTP/1.1, part 1: URIs, Connections, and Message Parsing</title>
592    <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
593      <organization abbrev="Day Software">Day Software</organization>
594      <address><email>fielding@gbiv.com</email></address>
595    </author>
596    <author initials="J." surname="Gettys" fullname="Jim Gettys">
597      <organization>One Laptop per Child</organization>
598      <address><email>jg@laptop.org</email></address>
599    </author>
600    <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
601      <organization abbrev="HP">Hewlett-Packard Company</organization>
602      <address><email>JeffMogul@acm.org</email></address>
603    </author>
604    <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
605      <organization abbrev="Microsoft">Microsoft Corporation</organization>
606      <address><email>henrikn@microsoft.com</email></address>
607    </author>
608    <author initials="L." surname="Masinter" fullname="Larry Masinter">
609      <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
610      <address><email>LMM@acm.org</email></address>
611    </author>
612    <author initials="P." surname="Leach" fullname="Paul J. Leach">
613      <organization abbrev="Microsoft">Microsoft Corporation</organization>
614      <address><email>paulle@microsoft.com</email></address>
615    </author>
616    <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
617      <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
618      <address><email>timbl@w3.org</email></address>
619    </author>
620    <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
621      <organization abbrev="W3C">World Wide Web Consortium</organization>
622      <address><email>ylafon@w3.org</email></address>
623    </author>
624    <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
625      <organization abbrev="greenbytes">greenbytes GmbH</organization>
626      <address><email>julian.reschke@greenbytes.de</email></address>
627    </author>
628    <date month="March" year="2010"/>
629  </front>
630  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p1-messaging-09"/>
631 
632</reference>
633
634<reference anchor="Part6">
635  <front>
636    <title abbrev="HTTP/1.1">HTTP/1.1, part 6: Caching</title>
637    <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
638      <organization abbrev="Day Software">Day Software</organization>
639      <address><email>fielding@gbiv.com</email></address>
640    </author>
641    <author initials="J." surname="Gettys" fullname="Jim Gettys">
642      <organization>One Laptop per Child</organization>
643      <address><email>jg@laptop.org</email></address>
644    </author>
645    <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
646      <organization abbrev="HP">Hewlett-Packard Company</organization>
647      <address><email>JeffMogul@acm.org</email></address>
648    </author>
649    <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
650      <organization abbrev="Microsoft">Microsoft Corporation</organization>
651      <address><email>henrikn@microsoft.com</email></address>
652    </author>
653    <author initials="L." surname="Masinter" fullname="Larry Masinter">
654      <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
655      <address><email>LMM@acm.org</email></address>
656    </author>
657    <author initials="P." surname="Leach" fullname="Paul J. Leach">
658      <organization abbrev="Microsoft">Microsoft Corporation</organization>
659      <address><email>paulle@microsoft.com</email></address>
660    </author>
661    <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
662      <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
663      <address><email>timbl@w3.org</email></address>
664    </author>
665    <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
666      <organization abbrev="W3C">World Wide Web Consortium</organization>
667      <address><email>ylafon@w3.org</email></address>
668    </author>
669    <author initials="M." surname="Nottingham" fullname="Mark Nottingham" role="editor">
670      <address><email>mnot@mnot.net</email></address>
671    </author>
672    <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
673      <organization abbrev="greenbytes">greenbytes GmbH</organization>
674      <address><email>julian.reschke@greenbytes.de</email></address>
675    </author>
676    <date month="March" year="2010"/>
677  </front>
678  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p6-cache-09"/>
679 
680</reference>
681
682<reference anchor="RFC2119">
683  <front>
684    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
685    <author initials="S." surname="Bradner" fullname="Scott Bradner">
686      <organization>Harvard University</organization>
687      <address><email>sob@harvard.edu</email></address>
688    </author>
689    <date month="March" year="1997"/>
690  </front>
691  <seriesInfo name="BCP" value="14"/>
692  <seriesInfo name="RFC" value="2119"/>
693</reference>
694
695<reference anchor="RFC2617">
696  <front>
697    <title abbrev="HTTP Authentication">HTTP Authentication: Basic and Digest Access Authentication</title>
698    <author initials="J." surname="Franks" fullname="John Franks">
699      <organization>Northwestern University, Department of Mathematics</organization>
700      <address><email>john@math.nwu.edu</email></address>
701    </author>
702    <author initials="P.M." surname="Hallam-Baker" fullname="Phillip M. Hallam-Baker">
703      <organization>Verisign Inc.</organization>
704      <address><email>pbaker@verisign.com</email></address>
705    </author>
706    <author initials="J.L." surname="Hostetler" fullname="Jeffery L. Hostetler">
707      <organization>AbiSource, Inc.</organization>
708      <address><email>jeff@AbiSource.com</email></address>
709    </author>
710    <author initials="S.D." surname="Lawrence" fullname="Scott D. Lawrence">
711      <organization>Agranat Systems, Inc.</organization>
712      <address><email>lawrence@agranat.com</email></address>
713    </author>
714    <author initials="P.J." surname="Leach" fullname="Paul J. Leach">
715      <organization>Microsoft Corporation</organization>
716      <address><email>paulle@microsoft.com</email></address>
717    </author>
718    <author initials="A." surname="Luotonen" fullname="Ari Luotonen">
719      <organization>Netscape Communications Corporation</organization>
720    </author>
721    <author initials="L." surname="Stewart" fullname="Lawrence C. Stewart">
722      <organization>Open Market, Inc.</organization>
723      <address><email>stewart@OpenMarket.com</email></address>
724    </author>
725    <date month="June" year="1999"/>
726  </front>
727  <seriesInfo name="RFC" value="2617"/>
728</reference>
729
730<reference anchor="RFC5234">
731  <front>
732    <title abbrev="ABNF for Syntax Specifications">Augmented BNF for Syntax Specifications: ABNF</title>
733    <author initials="D." surname="Crocker" fullname="Dave Crocker" role="editor">
734      <organization>Brandenburg InternetWorking</organization>
735      <address>
736        <email>dcrocker@bbiw.net</email>
737      </address> 
738    </author>
739    <author initials="P." surname="Overell" fullname="Paul Overell">
740      <organization>THUS plc.</organization>
741      <address>
742        <email>paul.overell@thus.net</email>
743      </address>
744    </author>
745    <date month="January" year="2008"/>
746  </front>
747  <seriesInfo name="STD" value="68"/>
748  <seriesInfo name="RFC" value="5234"/>
749</reference>
750
751</references>
752
753<references title="Informative References">
754
755<reference anchor="RFC2616">
756  <front>
757    <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
758    <author initials="R." surname="Fielding" fullname="R. Fielding">
759      <organization>University of California, Irvine</organization>
760      <address><email>fielding@ics.uci.edu</email></address>
761    </author>
762    <author initials="J." surname="Gettys" fullname="J. Gettys">
763      <organization>W3C</organization>
764      <address><email>jg@w3.org</email></address>
765    </author>
766    <author initials="J." surname="Mogul" fullname="J. Mogul">
767      <organization>Compaq Computer Corporation</organization>
768      <address><email>mogul@wrl.dec.com</email></address>
769    </author>
770    <author initials="H." surname="Frystyk" fullname="H. Frystyk">
771      <organization>MIT Laboratory for Computer Science</organization>
772      <address><email>frystyk@w3.org</email></address>
773    </author>
774    <author initials="L." surname="Masinter" fullname="L. Masinter">
775      <organization>Xerox Corporation</organization>
776      <address><email>masinter@parc.xerox.com</email></address>
777    </author>
778    <author initials="P." surname="Leach" fullname="P. Leach">
779      <organization>Microsoft Corporation</organization>
780      <address><email>paulle@microsoft.com</email></address>
781    </author>
782    <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee">
783      <organization>W3C</organization>
784      <address><email>timbl@w3.org</email></address>
785    </author>
786    <date month="June" year="1999"/>
787  </front>
788  <seriesInfo name="RFC" value="2616"/>
789</reference>
790
791<reference anchor="RFC3864">
792  <front>
793    <title>Registration Procedures for Message Header Fields</title>
794    <author initials="G." surname="Klyne" fullname="G. Klyne">
795      <organization>Nine by Nine</organization>
796      <address><email>GK-IETF@ninebynine.org</email></address>
797    </author>
798    <author initials="M." surname="Nottingham" fullname="M. Nottingham">
799      <organization>BEA Systems</organization>
800      <address><email>mnot@pobox.com</email></address>
801    </author>
802    <author initials="J." surname="Mogul" fullname="J. Mogul">
803      <organization>HP Labs</organization>
804      <address><email>JeffMogul@acm.org</email></address>
805    </author>
806    <date year="2004" month="September"/>
807  </front>
808  <seriesInfo name="BCP" value="90"/>
809  <seriesInfo name="RFC" value="3864"/>
810</reference>
811
812</references>
813
814
815<section title="Compatibility with Previous Versions" anchor="compatibility">
816
817<section title="Changes from RFC 2616" anchor="changes.from.rfc.2616">
818</section>
819
820</section>
821
822
823<section title="Collected ABNF" anchor="collected.abnf">
824<figure>
825<artwork type="abnf" name="p7-auth.parsed-abnf"><![CDATA[
826Authorization = "Authorization:" OWS Authorization-v
827Authorization-v = credentials
828
829OWS = <OWS, defined in [Part1], Section 1.2.2>
830
831Proxy-Authenticate = "Proxy-Authenticate:" OWS Proxy-Authenticate-v
832Proxy-Authenticate-v = *( "," OWS ) challenge *( OWS "," [ OWS
833 challenge ] )
834Proxy-Authorization = "Proxy-Authorization:" OWS
835 Proxy-Authorization-v
836Proxy-Authorization-v = credentials
837
838WWW-Authenticate = "WWW-Authenticate:" OWS WWW-Authenticate-v
839WWW-Authenticate-v = *( "," OWS ) challenge *( OWS "," [ OWS
840 challenge ] )
841
842challenge = <challenge, defined in [RFC2617], Section 1.2>
843credentials = <credentials, defined in [RFC2617], Section 1.2>
844]]></artwork>
845</figure>
846<figure><preamble>ABNF diagnostics:</preamble><artwork type="inline"><![CDATA[
847; Authorization defined but not used
848; Proxy-Authenticate defined but not used
849; Proxy-Authorization defined but not used
850; WWW-Authenticate defined but not used
851]]></artwork></figure></section>
852
853
854<section title="Change Log (to be removed by RFC Editor before publication)" anchor="change.log">
855
856<section title="Since RFC2616">
857<t>
858  Extracted relevant partitions from <xref target="RFC2616"/>.
859</t>
860</section>
861
862<section title="Since draft-ietf-httpbis-p7-auth-00">
863<t>
864  Closed issues:
865  <list style="symbols"> 
866    <t>
867      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/35"/>:
868      "Normative and Informative references"
869    </t>
870  </list>
871</t>
872</section>
873
874<section title="Since draft-ietf-httpbis-p7-auth-01">
875<t>
876  Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
877  <list style="symbols"> 
878    <t>
879      Explicitly import BNF rules for "challenge" and "credentials" from RFC2617.
880    </t>
881    <t>
882      Add explicit references to BNF syntax and rules imported from other parts of the specification.
883    </t>
884  </list>
885</t>
886</section>
887
888<section title="Since draft-ietf-httpbis-p7-auth-02" anchor="changes.since.02">
889<t>
890  Ongoing work on IANA Message Header Registration (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/40"/>):
891  <list style="symbols"> 
892    <t>
893      Reference RFC 3984, and update header registrations for headers defined
894      in this document.
895    </t>
896  </list>
897</t>
898</section>
899
900<section title="Since draft-ietf-httpbis-p7-auth-03" anchor="changes.since.03">
901<t>
902</t>
903</section>
904
905<section title="Since draft-ietf-httpbis-p7-auth-04" anchor="changes.since.04">
906<t>
907  Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
908  <list style="symbols"> 
909    <t>
910      Use "/" instead of "|" for alternatives.
911    </t>
912    <t>
913      Introduce new ABNF rules for "bad" whitespace ("BWS"), optional
914      whitespace ("OWS") and required whitespace ("RWS").
915    </t>
916    <t>
917      Rewrite ABNFs to spell out whitespace rules, factor out
918      header value format definitions.
919    </t>
920  </list>
921</t>
922</section>
923
924<section title="Since draft-ietf-httpbis-p7-auth-05" anchor="changes.since.05">
925<t>
926  Final work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
927  <list style="symbols"> 
928    <t>
929      Add appendix containing collected and expanded ABNF, reorganize ABNF introduction.
930    </t>
931  </list>
932</t>
933</section>
934
935<section title="Since draft-ietf-httpbis-p7-auth-06" anchor="changes.since.06">
936<t>
937  None.
938</t>
939</section>
940
941<section title="Since draft-ietf-httpbis-p7-auth-07" anchor="changes.since.07">
942<t>
943  Closed issues:
944  <list style="symbols"> 
945    <t>
946      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/198"/>:
947      "move IANA registrations for optional status codes"
948    </t>
949  </list>
950</t>
951</section>
952
953<section title="Since draft-ietf-httpbis-p7-auth-08" anchor="changes.since.08">
954<t>
955  No significant changes.
956</t>
957</section>
958
959</section>
960
961</back>
962</rfc>
Note: See TracBrowser for help on using the repository browser.