source: draft-ietf-httpbis/latest/p7-auth.xml @ 365

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

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

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