[29] | 1 | <?xml version="1.0" encoding="utf-8"?> |
---|
[101] | 2 | <?xml-stylesheet type='text/xsl' href='../myxml2rfc.xslt'?> |
---|
[8] | 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>"> |
---|
[29] | 14 | <!ENTITY ID-VERSION "latest"> |
---|
[2218] | 15 | <!ENTITY ID-MONTH "April"> |
---|
[2080] | 16 | <!ENTITY ID-YEAR "2013"> |
---|
[1101] | 17 | <!ENTITY mdash "—"> |
---|
[1692] | 18 | <!ENTITY Note "<x:h xmlns:x='http://purl.org/net/xml2rfc/ext'>Note:</x:h>"> |
---|
[2069] | 19 | <!ENTITY messaging "<xref target='Part1' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
| 20 | <!ENTITY semantics "<xref target='Part2' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1452] | 21 | <!ENTITY architecture "<xref target='Part1' x:rel='#architecture' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1875] | 22 | <!ENTITY conformance "<xref target='Part1' x:rel='#conformance' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[424] | 23 | <!ENTITY notation "<xref target='Part1' x:rel='#notation' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1518] | 24 | <!ENTITY abnf-extension "<xref target='Part1' x:rel='#abnf.extension' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1399] | 25 | <!ENTITY acks "<xref target='Part1' x:rel='#acks' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1518] | 26 | <!ENTITY whitespace "<xref target='Part1' x:rel='#whitespace' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
| 27 | <!ENTITY field-components "<xref target='Part1' x:rel='#field.components' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[961] | 28 | <!ENTITY effective-request-uri "<xref target='Part1' x:rel='#effective.request.uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1518] | 29 | <!ENTITY msg-orient-and-buffering "<xref target='Part1' x:rel='#intermediaries' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[998] | 30 | <!ENTITY end-to-end.and-hop-by-hop "<xref target='Part1' x:rel='#end-to-end.and.hop-by-hop.header-fields' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1693] | 31 | <!ENTITY status.403 "<xref target='Part2' x:rel='#status.403' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[1999] | 32 | <!ENTITY caching-authenticated-responses "<xref target='Part6' x:rel='#caching.authenticated.responses' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> |
---|
[8] | 33 | ]> |
---|
| 34 | <?rfc toc="yes" ?> |
---|
[29] | 35 | <?rfc symrefs="yes" ?> |
---|
| 36 | <?rfc sortrefs="yes" ?> |
---|
[8] | 37 | <?rfc compact="yes"?> |
---|
| 38 | <?rfc subcompact="no" ?> |
---|
| 39 | <?rfc linkmailto="no" ?> |
---|
| 40 | <?rfc editing="no" ?> |
---|
[205] | 41 | <?rfc comments="yes"?> |
---|
| 42 | <?rfc inline="yes"?> |
---|
[799] | 43 | <?rfc rfcedstyle="yes"?> |
---|
[8] | 44 | <?rfc-ext allow-markup-in-artwork="yes" ?> |
---|
| 45 | <?rfc-ext include-references-in-index="yes" ?> |
---|
[1477] | 46 | <rfc obsoletes="2616" updates="2617" category="std" x:maturity-level="proposed" |
---|
[446] | 47 | ipr="pre5378Trust200902" docName="draft-ietf-httpbis-p7-auth-&ID-VERSION;" |
---|
[153] | 48 | xmlns:x='http://purl.org/net/xml2rfc/ext'> |
---|
[1472] | 49 | <x:link rel="prev" basename="p6-cache"/> |
---|
[1522] | 50 | <x:feedback template="mailto:ietf-http-wg@w3.org?subject={docname},%20%22{section}%22&body=<{ref}>:"/> |
---|
[8] | 51 | <front> |
---|
| 52 | |
---|
[1864] | 53 | <title abbrev="HTTP/1.1 Authentication">Hypertext Transfer Protocol (HTTP/1.1): Authentication</title> |
---|
[8] | 54 | |
---|
[29] | 55 | <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor"> |
---|
[1106] | 56 | <organization abbrev="Adobe">Adobe Systems Incorporated</organization> |
---|
[8] | 57 | <address> |
---|
| 58 | <postal> |
---|
[1106] | 59 | <street>345 Park Ave</street> |
---|
| 60 | <city>San Jose</city> |
---|
[8] | 61 | <region>CA</region> |
---|
[1106] | 62 | <code>95110</code> |
---|
[29] | 63 | <country>USA</country> |
---|
[8] | 64 | </postal> |
---|
[29] | 65 | <email>fielding@gbiv.com</email> |
---|
| 66 | <uri>http://roy.gbiv.com/</uri> |
---|
[8] | 67 | </address> |
---|
| 68 | </author> |
---|
| 69 | |
---|
[95] | 70 | <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor"> |
---|
| 71 | <organization abbrev="greenbytes">greenbytes GmbH</organization> |
---|
| 72 | <address> |
---|
| 73 | <postal> |
---|
| 74 | <street>Hafenweg 16</street> |
---|
| 75 | <city>Muenster</city><region>NW</region><code>48155</code> |
---|
| 76 | <country>Germany</country> |
---|
| 77 | </postal> |
---|
[609] | 78 | <email>julian.reschke@greenbytes.de</email> |
---|
| 79 | <uri>http://greenbytes.de/tech/webdav/</uri> |
---|
[95] | 80 | </address> |
---|
| 81 | </author> |
---|
| 82 | |
---|
[31] | 83 | <date month="&ID-MONTH;" year="&ID-YEAR;"/> |
---|
[440] | 84 | <workgroup>HTTPbis Working Group</workgroup> |
---|
[8] | 85 | |
---|
| 86 | <abstract> |
---|
| 87 | <t> |
---|
[1373] | 88 | The Hypertext Transfer Protocol (HTTP) is an application-level protocol for |
---|
[1808] | 89 | distributed, collaborative, hypermedia information systems. This document |
---|
| 90 | defines the HTTP Authentication framework. |
---|
[8] | 91 | </t> |
---|
| 92 | </abstract> |
---|
[36] | 93 | |
---|
| 94 | <note title="Editorial Note (To be removed by RFC Editor)"> |
---|
| 95 | <t> |
---|
[1764] | 96 | Discussion of this draft takes place on the HTTPBIS working group |
---|
[1268] | 97 | mailing list (ietf-http-wg@w3.org), which is archived at |
---|
| 98 | <eref target="http://lists.w3.org/Archives/Public/ietf-http-wg/"/>. |
---|
| 99 | </t> |
---|
| 100 | <t> |
---|
| 101 | The current issues list is at |
---|
| 102 | <eref target="http://tools.ietf.org/wg/httpbis/trac/report/3"/> and related |
---|
| 103 | documents (including fancy diffs) can be found at |
---|
[324] | 104 | <eref target="http://tools.ietf.org/wg/httpbis/"/>. |
---|
[36] | 105 | </t> |
---|
[153] | 106 | <t> |
---|
[2190] | 107 | The changes in this draft are summarized in <xref target="changes.since.22"/>. |
---|
[153] | 108 | </t> |
---|
[36] | 109 | </note> |
---|
[8] | 110 | </front> |
---|
| 111 | <middle> |
---|
| 112 | <section title="Introduction" anchor="introduction"> |
---|
| 113 | <t> |
---|
[998] | 114 | This document defines HTTP/1.1 access control and authentication. It |
---|
| 115 | includes the relevant parts of <xref target="RFC2616" x:fmt="none">RFC 2616</xref> |
---|
[1636] | 116 | with only minor changes (<xref target="RFC2616"/>), plus the general framework for HTTP authentication, |
---|
[998] | 117 | as previously defined in "HTTP Authentication: Basic and Digest Access |
---|
| 118 | Authentication" (<xref target="RFC2617"/>). |
---|
[8] | 119 | </t> |
---|
| 120 | <t> |
---|
| 121 | HTTP provides several &OPTIONAL; challenge-response authentication |
---|
[2211] | 122 | schemes that can be used by a server to challenge a client request and |
---|
[998] | 123 | by a client to provide authentication information. The "basic" and "digest" |
---|
| 124 | authentication schemes continue to be specified in |
---|
| 125 | <xref target="RFC2617" x:fmt="none">RFC 2617</xref>. |
---|
[8] | 126 | </t> |
---|
[96] | 127 | |
---|
[1875] | 128 | <section title="Conformance and Error Handling" anchor="conformance"> |
---|
[96] | 129 | <t> |
---|
| 130 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", |
---|
| 131 | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this |
---|
| 132 | document are to be interpreted as described in <xref target="RFC2119"/>. |
---|
| 133 | </t> |
---|
| 134 | <t> |
---|
[1875] | 135 | Conformance criteria and considerations regarding error handling |
---|
| 136 | are defined in &conformance;. |
---|
[96] | 137 | </t> |
---|
[8] | 138 | </section> |
---|
[39] | 139 | |
---|
[424] | 140 | <section title="Syntax Notation" anchor="notation"> |
---|
[205] | 141 | <t> |
---|
[1518] | 142 | This specification uses the Augmented Backus-Naur Form (ABNF) notation |
---|
| 143 | of <xref target="RFC5234"/> with the list rule extension defined in |
---|
[1805] | 144 | ¬ation;. <xref target="imported.abnf"/> describes rules imported from |
---|
| 145 | other documents. <xref target="collected.abnf"/> shows the collected ABNF |
---|
[1518] | 146 | with the list rule expanded. |
---|
[543] | 147 | </t> |
---|
[424] | 148 | </section> |
---|
[998] | 149 | </section> |
---|
[424] | 150 | |
---|
[998] | 151 | <section title="Access Authentication Framework" anchor="access.authentication.framework"> |
---|
[1344] | 152 | |
---|
| 153 | <section title="Challenge and Response" anchor="challenge.and.response"> |
---|
[998] | 154 | <x:anchor-alias value="auth-scheme"/> |
---|
| 155 | <x:anchor-alias value="auth-param"/> |
---|
[1815] | 156 | <x:anchor-alias value="token68"/> |
---|
[229] | 157 | <x:anchor-alias value="challenge"/> |
---|
| 158 | <x:anchor-alias value="credentials"/> |
---|
[424] | 159 | <t> |
---|
[2211] | 160 | HTTP provides a simple challenge-response authentication framework |
---|
[998] | 161 | that can be used by a server to challenge a client request and by a |
---|
| 162 | client to provide authentication information. It uses an extensible, |
---|
[1394] | 163 | case-insensitive token to identify the authentication scheme, followed |
---|
| 164 | by additional information necessary for achieving authentication via that |
---|
[1473] | 165 | scheme. The latter can either be a comma-separated list of parameters or a |
---|
| 166 | single sequence of characters capable of holding base64-encoded |
---|
[1394] | 167 | information. |
---|
[205] | 168 | </t> |
---|
[1473] | 169 | <t> |
---|
| 170 | Parameters are name-value pairs where the name is matched case-insensitively, |
---|
| 171 | and each parameter name &MUST; only occur once per challenge. |
---|
| 172 | </t> |
---|
[1902] | 173 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="auth-scheme"/><iref primary="true" item="Grammar" subitem="auth-param"/><iref primary="true" item="Grammar" subitem="token68"/> |
---|
[1386] | 174 | auth-scheme = <x:ref>token</x:ref> |
---|
[1394] | 175 | |
---|
[1386] | 176 | auth-param = <x:ref>token</x:ref> <x:ref>BWS</x:ref> "=" <x:ref>BWS</x:ref> ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) |
---|
[1394] | 177 | |
---|
[1815] | 178 | token68 = 1*( <x:ref>ALPHA</x:ref> / <x:ref>DIGIT</x:ref> / |
---|
[1394] | 179 | "-" / "." / "_" / "~" / "+" / "/" ) *"=" |
---|
[205] | 180 | </artwork></figure> |
---|
[998] | 181 | <t> |
---|
[1815] | 182 | The "token68" syntax allows the 66 unreserved URI characters (<xref target="RFC3986"/>), |
---|
[1394] | 183 | plus a few others, so that it can hold a base64, base64url (URL and filename |
---|
| 184 | safe alphabet), base32, or base16 (hex) encoding, with or without padding, but |
---|
| 185 | excluding whitespace (<xref target="RFC4648"/>). |
---|
| 186 | </t> |
---|
| 187 | <t> |
---|
[1708] | 188 | The <x:ref>401 (Unauthorized)</x:ref> response message is used by an origin server |
---|
[998] | 189 | to challenge the authorization of a user agent. This response &MUST; |
---|
[1736] | 190 | include a <x:ref>WWW-Authenticate</x:ref> header field containing at least one |
---|
[1344] | 191 | challenge applicable to the requested resource. |
---|
| 192 | </t> |
---|
| 193 | <t> |
---|
[1736] | 194 | The <x:ref>407 (Proxy Authentication Required)</x:ref> response message is |
---|
| 195 | used by a proxy to challenge the authorization of a client and &MUST; |
---|
| 196 | include a <x:ref>Proxy-Authenticate</x:ref> header field containing at least |
---|
| 197 | one challenge applicable to the proxy for the requested resource. |
---|
[998] | 198 | </t> |
---|
[1902] | 199 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="challenge"/> |
---|
[1815] | 200 | <x:ref>challenge</x:ref> = <x:ref>auth-scheme</x:ref> [ 1*<x:ref>SP</x:ref> ( <x:ref>token68</x:ref> / #<x:ref>auth-param</x:ref> ) ] |
---|
[998] | 201 | </artwork></figure> |
---|
| 202 | <x:note> |
---|
| 203 | <t> |
---|
[1692] | 204 | &Note; User agents will need to take special care in parsing the |
---|
[1736] | 205 | <x:ref>WWW-Authenticate</x:ref> and <x:ref>Proxy-Authenticate</x:ref> |
---|
| 206 | header field values because they can contain more than one challenge, or |
---|
| 207 | if more than one of each is provided, since the contents of a challenge |
---|
| 208 | can itself contain a comma-separated list of authentication parameters. |
---|
[998] | 209 | </t> |
---|
| 210 | </x:note> |
---|
[1018] | 211 | <x:note> |
---|
| 212 | <t> |
---|
[1692] | 213 | &Note; Many clients fail to parse challenges containing unknown |
---|
[1343] | 214 | schemes. A workaround for this problem is to list well-supported schemes |
---|
[1344] | 215 | (such as "basic") first.<!-- see http://greenbytes.de/tech/tc/httpauth/#multibasicunknown2 --> |
---|
[1018] | 216 | </t> |
---|
| 217 | </x:note> |
---|
[998] | 218 | <t> |
---|
[1344] | 219 | A user agent that wishes to authenticate itself with an origin server |
---|
[1708] | 220 | — usually, but not necessarily, after receiving a <x:ref>401 (Unauthorized)</x:ref> |
---|
[1736] | 221 | — can do so by including an <x:ref>Authorization</x:ref> header field with the |
---|
[1344] | 222 | request. |
---|
[998] | 223 | </t> |
---|
[1344] | 224 | <t> |
---|
| 225 | A client that wishes to authenticate itself with a proxy — usually, |
---|
[1708] | 226 | but not necessarily, after receiving a <x:ref>407 (Proxy Authentication Required)</x:ref> |
---|
[1736] | 227 | — can do so by including a <x:ref>Proxy-Authorization</x:ref> header field with the |
---|
[1344] | 228 | request. |
---|
[998] | 229 | </t> |
---|
[1669] | 230 | <t> |
---|
[1736] | 231 | Both the <x:ref>Authorization</x:ref> field value and the <x:ref>Proxy-Authorization</x:ref> field value |
---|
[1669] | 232 | contain the client's credentials for the realm of the resource being |
---|
| 233 | requested, based upon a challenge received from the server (possibly at |
---|
| 234 | some point in the past). When creating their values, the user agent ought to |
---|
| 235 | do so by selecting the challenge with what it considers to be the most |
---|
| 236 | secure auth-scheme that it understands, obtaining credentials from the user |
---|
| 237 | as appropriate. |
---|
[998] | 238 | </t> |
---|
[1902] | 239 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="credentials"/> |
---|
[1815] | 240 | <x:ref>credentials</x:ref> = <x:ref>auth-scheme</x:ref> [ 1*<x:ref>SP</x:ref> ( <x:ref>token68</x:ref> / #<x:ref>auth-param</x:ref> ) ] |
---|
[998] | 241 | </artwork></figure> |
---|
| 242 | <t> |
---|
[1694] | 243 | Upon a request for a protected resource that omits credentials, contains |
---|
| 244 | invalid credentials (e.g., a bad password) or partial credentials (e.g., |
---|
| 245 | when the authentication scheme requires more than one round trip), an origin |
---|
[2066] | 246 | server &SHOULD; send a <x:ref>401 (Unauthorized)</x:ref> response that |
---|
| 247 | contains a <x:ref>WWW-Authenticate</x:ref> header field with at least one |
---|
| 248 | (possibly new) challenge applicable to the requested resource. |
---|
[1344] | 249 | </t> |
---|
| 250 | <t> |
---|
[1694] | 251 | Likewise, upon a request that requires authentication by proxies that omit |
---|
| 252 | credentials or contain invalid or partial credentials, a proxy &SHOULD; |
---|
[2066] | 253 | send a <x:ref>407 (Proxy Authentication Required)</x:ref> response that |
---|
| 254 | contains a <x:ref>Proxy-Authenticate</x:ref> header field with a (possibly |
---|
[1694] | 255 | new) challenge applicable to the proxy. |
---|
[998] | 256 | </t> |
---|
| 257 | <t> |
---|
[1681] | 258 | A server receiving credentials that are valid, but not adequate to gain |
---|
[1713] | 259 | access, ought to respond with the <x:ref>403 (Forbidden)</x:ref> status code (&status.403;). |
---|
[1681] | 260 | </t> |
---|
| 261 | <t> |
---|
[998] | 262 | The HTTP protocol does not restrict applications to this simple |
---|
[2211] | 263 | challenge-response framework for access authentication. Additional |
---|
[998] | 264 | mechanisms &MAY; be used, such as encryption at the transport level or |
---|
| 265 | via message encapsulation, and with additional header fields |
---|
[1107] | 266 | specifying authentication information. However, such additional |
---|
[998] | 267 | mechanisms are not defined by this specification. |
---|
| 268 | </t> |
---|
| 269 | <t> |
---|
[1736] | 270 | Proxies &MUST; forward the <x:ref>WWW-Authenticate</x:ref> and |
---|
| 271 | <x:ref>Authorization</x:ref> header fields unmodified and follow the rules |
---|
| 272 | found in <xref target="header.authorization"/>. |
---|
[998] | 273 | </t> |
---|
[1344] | 274 | </section> |
---|
[1026] | 275 | |
---|
[1344] | 276 | <section title="Protection Space (Realm)" anchor="protection.space"> |
---|
[1354] | 277 | <iref item="Protection Space"/> |
---|
| 278 | <iref item="Realm"/> |
---|
[1672] | 279 | <iref item="Canonical Root URI"/> |
---|
[1344] | 280 | <t> |
---|
[1354] | 281 | The authentication parameter realm is reserved for use by authentication |
---|
[1478] | 282 | schemes that wish to indicate the scope of protection. |
---|
[1344] | 283 | </t> |
---|
| 284 | <t> |
---|
[1354] | 285 | A <x:dfn>protection space</x:dfn> is defined by the canonical root URI (the |
---|
| 286 | scheme and authority components of the effective request URI; see |
---|
| 287 | <xref target="Part1" x:fmt="of" x:rel="#effective.request.uri"/>) of the |
---|
| 288 | server being accessed, in combination with the realm value if present. |
---|
[1344] | 289 | These realms allow the protected resources on a server to be |
---|
| 290 | partitioned into a set of protection spaces, each with its own |
---|
| 291 | authentication scheme and/or authorization database. The realm value |
---|
[2074] | 292 | is a string, generally assigned by the origin server, that can have |
---|
[1344] | 293 | additional semantics specific to the authentication scheme. Note that |
---|
| 294 | there can be multiple challenges with the same auth-scheme but |
---|
| 295 | different realms. |
---|
| 296 | </t> |
---|
| 297 | <t> |
---|
| 298 | The protection space determines the domain over which credentials can |
---|
| 299 | be automatically applied. If a prior request has been authorized, the |
---|
| 300 | same credentials &MAY; be reused for all other requests within that |
---|
| 301 | protection space for a period of time determined by the |
---|
| 302 | authentication scheme, parameters, and/or user preference. Unless |
---|
| 303 | otherwise defined by the authentication scheme, a single protection |
---|
| 304 | space cannot extend outside the scope of its server. |
---|
| 305 | </t> |
---|
[1478] | 306 | <t> |
---|
| 307 | For historical reasons, senders &MUST; only use the quoted-string syntax. |
---|
| 308 | Recipients might have to support both token and quoted-string syntax for |
---|
| 309 | maximum interoperability with existing clients that have been accepting both |
---|
| 310 | notations for a long time. |
---|
| 311 | </t> |
---|
[1344] | 312 | </section> |
---|
| 313 | |
---|
[1026] | 314 | <section title="Authentication Scheme Registry" anchor="authentication.scheme.registry"> |
---|
| 315 | <t> |
---|
| 316 | The HTTP Authentication Scheme Registry defines the name space for the |
---|
| 317 | authentication schemes in challenges and credentials. |
---|
| 318 | </t> |
---|
| 319 | <t> |
---|
| 320 | Registrations &MUST; include the following fields: |
---|
| 321 | <list style="symbols"> |
---|
| 322 | <t>Authentication Scheme Name</t> |
---|
| 323 | <t>Pointer to specification text</t> |
---|
[1371] | 324 | <t>Notes (optional)</t> |
---|
[1026] | 325 | </list> |
---|
| 326 | </t> |
---|
| 327 | <t> |
---|
[1567] | 328 | Values to be added to this name space require IETF Review |
---|
| 329 | (see <xref target="RFC5226" x:fmt="," x:sec="4.1"/>). |
---|
[1026] | 330 | </t> |
---|
| 331 | <t> |
---|
| 332 | The registry itself is maintained at <eref target="http://www.iana.org/assignments/http-authschemes"/>. |
---|
| 333 | </t> |
---|
[1356] | 334 | |
---|
| 335 | <section title="Considerations for New Authentication Schemes" anchor="considerations.for.new.authentication.schemes"> |
---|
| 336 | <t> |
---|
| 337 | There are certain aspects of the HTTP Authentication Framework that put |
---|
| 338 | constraints on how new authentication schemes can work: |
---|
| 339 | </t> |
---|
| 340 | <t> |
---|
| 341 | <list style="symbols"> |
---|
[1360] | 342 | <x:lt> |
---|
[1356] | 343 | <t> |
---|
[1518] | 344 | HTTP authentication is presumed to be stateless: all of the information |
---|
| 345 | necessary to authenticate a request &MUST; be provided in the request, |
---|
| 346 | rather than be dependent on the server remembering prior requests. |
---|
| 347 | Authentication based on, or bound to, the underlying connection is |
---|
| 348 | outside the scope of this specification and inherently flawed unless |
---|
| 349 | steps are taken to ensure that the connection cannot be used by any |
---|
| 350 | party other than the authenticated user |
---|
| 351 | (see &msg-orient-and-buffering;). |
---|
[1356] | 352 | </t> |
---|
[1360] | 353 | </x:lt> |
---|
| 354 | <x:lt> |
---|
[1356] | 355 | <t> |
---|
| 356 | The authentication parameter "realm" is reserved for defining Protection |
---|
| 357 | Spaces as defined in <xref target="protection.space"/>. New schemes |
---|
| 358 | &MUST-NOT; use it in a way incompatible with that definition. |
---|
| 359 | </t> |
---|
[1360] | 360 | </x:lt> |
---|
| 361 | <x:lt> |
---|
[1356] | 362 | <t> |
---|
[1815] | 363 | The "token68" notation was introduced for compatibility with existing |
---|
[1394] | 364 | authentication schemes and can only be used once per challenge/credentials. |
---|
| 365 | New schemes thus ought to use the "auth-param" syntax instead, because |
---|
| 366 | otherwise future extensions will be impossible. |
---|
| 367 | </t> |
---|
| 368 | </x:lt> |
---|
| 369 | <x:lt> |
---|
| 370 | <t> |
---|
[1465] | 371 | The parsing of challenges and credentials is defined by this specification, |
---|
| 372 | and cannot be modified by new authentication schemes. When the auth-param |
---|
| 373 | syntax is used, all parameters ought to support both token and |
---|
| 374 | quoted-string syntax, and syntactical constraints ought to be defined on |
---|
| 375 | the field value after parsing (i.e., quoted-string processing). This is |
---|
| 376 | necessary so that recipients can use a generic parser that applies to |
---|
| 377 | all authentication schemes. |
---|
| 378 | </t> |
---|
| 379 | <t> |
---|
[1692] | 380 | &Note; The fact that the value syntax for the "realm" parameter |
---|
[1465] | 381 | is restricted to quoted-string was a bad design choice not to be repeated |
---|
| 382 | for new parameters. |
---|
| 383 | </t> |
---|
| 384 | </x:lt> |
---|
| 385 | <x:lt> |
---|
| 386 | <t> |
---|
[1562] | 387 | Definitions of new schemes ought to define the treatment of unknown |
---|
| 388 | extension parameters. In general, a "must-ignore" rule is preferable |
---|
| 389 | over "must-understand", because otherwise it will be hard to introduce |
---|
| 390 | new parameters in the presence of legacy recipients. Furthermore, |
---|
| 391 | it's good to describe the policy for defining new parameters (such |
---|
| 392 | as "update the specification", or "use this registry"). |
---|
| 393 | </t> |
---|
| 394 | </x:lt> |
---|
| 395 | <x:lt> |
---|
| 396 | <t> |
---|
[1357] | 397 | Authentication schemes need to document whether they are usable in |
---|
[1736] | 398 | origin-server authentication (i.e., using <x:ref>WWW-Authenticate</x:ref>), |
---|
| 399 | and/or proxy authentication (i.e., using <x:ref>Proxy-Authenticate</x:ref>). |
---|
[1360] | 400 | </t> |
---|
| 401 | </x:lt> |
---|
| 402 | <x:lt> |
---|
| 403 | <t> |
---|
[1736] | 404 | The credentials carried in an <x:ref>Authorization</x:ref> header field are specific to |
---|
[1360] | 405 | the User Agent, and therefore have the same effect on HTTP caches as the |
---|
| 406 | "private" Cache-Control response directive, within the scope of the |
---|
| 407 | request they appear in. |
---|
| 408 | </t> |
---|
| 409 | <t> |
---|
[2074] | 410 | Therefore, new authentication schemes that choose not to carry |
---|
[1736] | 411 | credentials in the <x:ref>Authorization</x:ref> header field (e.g., using a newly defined |
---|
| 412 | header field) will need to explicitly disallow caching, by mandating the use of |
---|
[1360] | 413 | either Cache-Control request directives (e.g., "no-store") or response |
---|
| 414 | directives (e.g., "private"). |
---|
| 415 | </t> |
---|
| 416 | </x:lt> |
---|
[1356] | 417 | </list> |
---|
| 418 | </t> |
---|
[205] | 419 | </section> |
---|
| 420 | |
---|
[1026] | 421 | </section> |
---|
| 422 | |
---|
[1356] | 423 | </section> |
---|
| 424 | |
---|
[838] | 425 | <section title="Status Code Definitions" anchor="status.code.definitions"> |
---|
[39] | 426 | <section title="401 Unauthorized" anchor="status.401"> |
---|
| 427 | <iref primary="true" item="401 Unauthorized (status code)" x:for-anchor=""/> |
---|
[1708] | 428 | <x:anchor-alias value="401 (Unauthorized)"/> |
---|
[39] | 429 | <t> |
---|
[2066] | 430 | The <x:dfn>401 (Unauthorized)</x:dfn> status code indicates that the |
---|
| 431 | request has not been applied because it lacks valid authentication |
---|
| 432 | credentials for the target resource. The origin server &MUST; send a |
---|
[1736] | 433 | <x:ref>WWW-Authenticate</x:ref> header field (<xref target="header.www-authenticate"/>) |
---|
[2066] | 434 | containing at least one challenge applicable to the target resource. |
---|
| 435 | If the request included authentication credentials, then the 401 response |
---|
| 436 | indicates that authorization has been refused for those credentials. |
---|
| 437 | The client &MAY; repeat the request with a new or replaced |
---|
| 438 | <x:ref>Authorization</x:ref> header field (<xref target="header.authorization"/>). |
---|
| 439 | If the 401 response contains the same challenge as the prior response, and |
---|
| 440 | the user agent has already attempted authentication at least once, then the |
---|
| 441 | user agent &SHOULD; present the enclosed representation to the user, since |
---|
| 442 | it usually contains relevant diagnostic information. |
---|
[39] | 443 | </t> |
---|
| 444 | </section> |
---|
| 445 | <section title="407 Proxy Authentication Required" anchor="status.407"> |
---|
| 446 | <iref primary="true" item="407 Proxy Authentication Required (status code)" x:for-anchor=""/> |
---|
[1708] | 447 | <x:anchor-alias value="407 (Proxy Authentication Required)"/> |
---|
[39] | 448 | <t> |
---|
[2066] | 449 | The <x:dfn>407 (Proxy Authentication Required)</x:dfn> status code is |
---|
| 450 | similar to <x:ref>401 (Unauthorized)</x:ref>, but indicates that the client |
---|
| 451 | needs to authenticate itself in order to use a proxy. |
---|
| 452 | The proxy &MUST; send a <x:ref>Proxy-Authenticate</x:ref> header field |
---|
| 453 | (<xref target="header.proxy-authenticate"/>) containing a challenge |
---|
| 454 | applicable to that proxy for the target resource. The client &MAY; repeat |
---|
| 455 | the request with a new or replaced <x:ref>Proxy-Authorization</x:ref> |
---|
[998] | 456 | header field (<xref target="header.proxy-authorization"/>). |
---|
[39] | 457 | </t> |
---|
| 458 | </section> |
---|
| 459 | </section> |
---|
| 460 | |
---|
[1415] | 461 | <section title="Header Field Definitions" anchor="header.field.definitions"> |
---|
[8] | 462 | <t> |
---|
[117] | 463 | This section defines the syntax and semantics of HTTP/1.1 header fields |
---|
| 464 | related to authentication. |
---|
[8] | 465 | </t> |
---|
| 466 | |
---|
| 467 | <section title="Authorization" anchor="header.authorization"> |
---|
[1120] | 468 | <iref primary="true" item="Authorization header field" x:for-anchor=""/> |
---|
[229] | 469 | <x:anchor-alias value="Authorization"/> |
---|
[8] | 470 | <t> |
---|
[1163] | 471 | The "Authorization" header field allows a user agent to authenticate |
---|
[1708] | 472 | itself with a server — usually, but not necessarily, after receiving a <x:ref>401 |
---|
| 473 | (Unauthorized)</x:ref> response. Its value consists of credentials containing |
---|
[698] | 474 | information of the user agent for the realm of the resource being |
---|
| 475 | requested. |
---|
[8] | 476 | </t> |
---|
[1230] | 477 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Authorization"/> |
---|
| 478 | <x:ref>Authorization</x:ref> = <x:ref>credentials</x:ref> |
---|
[8] | 479 | </artwork></figure> |
---|
| 480 | <t> |
---|
[998] | 481 | If a request is |
---|
[698] | 482 | authenticated and a realm specified, the same credentials &SHOULD; |
---|
| 483 | be valid for all other requests within this realm (assuming that |
---|
| 484 | the authentication scheme itself does not require otherwise, such |
---|
| 485 | as credentials that vary according to a challenge value or using |
---|
| 486 | synchronized clocks). |
---|
[8] | 487 | </t> |
---|
| 488 | <t> |
---|
[1999] | 489 | See &caching-authenticated-responses; for details of and requirements |
---|
| 490 | pertaining to handling of the Authorization field by HTTP caches. |
---|
[8] | 491 | </t> |
---|
| 492 | </section> |
---|
| 493 | |
---|
| 494 | <section title="Proxy-Authenticate" anchor="header.proxy-authenticate"> |
---|
[1120] | 495 | <iref primary="true" item="Proxy-Authenticate header field" x:for-anchor=""/> |
---|
[229] | 496 | <x:anchor-alias value="Proxy-Authenticate"/> |
---|
[8] | 497 | <t> |
---|
[1601] | 498 | The "Proxy-Authenticate" header field consists of at least one |
---|
| 499 | challenge that indicates the authentication scheme(s) and parameters |
---|
| 500 | applicable to the proxy for this effective request URI (&effective-request-uri;). |
---|
[1708] | 501 | It &MUST; be included as part of a <x:ref>407 (Proxy Authentication Required)</x:ref> response. |
---|
[8] | 502 | </t> |
---|
[1230] | 503 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authenticate"/> |
---|
| 504 | <x:ref>Proxy-Authenticate</x:ref> = 1#<x:ref>challenge</x:ref> |
---|
[8] | 505 | </artwork></figure> |
---|
| 506 | <t> |
---|
[1736] | 507 | Unlike <x:ref>WWW-Authenticate</x:ref>, the Proxy-Authenticate header field |
---|
| 508 | applies only to the current connection, and intermediaries &SHOULD-NOT; |
---|
| 509 | forward it to downstream clients. However, an intermediate proxy might need |
---|
| 510 | to obtain its own credentials by requesting them from the downstream client, |
---|
| 511 | which in some circumstances will appear as if the proxy is forwarding the |
---|
[8] | 512 | Proxy-Authenticate header field. |
---|
| 513 | </t> |
---|
[1533] | 514 | <t> |
---|
[1736] | 515 | Note that the parsing considerations for <x:ref>WWW-Authenticate</x:ref> |
---|
| 516 | apply to this header field as well; see <xref target="header.www-authenticate"/> |
---|
| 517 | for details. |
---|
[1533] | 518 | </t> |
---|
[8] | 519 | </section> |
---|
| 520 | |
---|
| 521 | <section title="Proxy-Authorization" anchor="header.proxy-authorization"> |
---|
[1120] | 522 | <iref primary="true" item="Proxy-Authorization header field" x:for-anchor=""/> |
---|
[229] | 523 | <x:anchor-alias value="Proxy-Authorization"/> |
---|
[8] | 524 | <t> |
---|
[1163] | 525 | The "Proxy-Authorization" header field allows the client to |
---|
[2074] | 526 | identify itself (or its user) to a proxy that requires |
---|
[698] | 527 | authentication. Its value consists of |
---|
[8] | 528 | credentials containing the authentication information of the user |
---|
| 529 | agent for the proxy and/or realm of the resource being requested. |
---|
| 530 | </t> |
---|
[1230] | 531 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authorization"/> |
---|
| 532 | <x:ref>Proxy-Authorization</x:ref> = <x:ref>credentials</x:ref> |
---|
[8] | 533 | </artwork></figure> |
---|
| 534 | <t> |
---|
[1736] | 535 | Unlike <x:ref>Authorization</x:ref>, the Proxy-Authorization header field applies only to |
---|
| 536 | the next outbound proxy that demanded authentication using the <x:ref>Proxy-Authenticate</x:ref> |
---|
[8] | 537 | field. When multiple proxies are used in a chain, the |
---|
| 538 | Proxy-Authorization header field is consumed by the first outbound |
---|
| 539 | proxy that was expecting to receive credentials. A proxy &MAY; relay |
---|
| 540 | the credentials from the client request to the next proxy if that is |
---|
| 541 | the mechanism by which the proxies cooperatively authenticate a given |
---|
| 542 | request. |
---|
| 543 | </t> |
---|
| 544 | </section> |
---|
| 545 | |
---|
| 546 | <section title="WWW-Authenticate" anchor="header.www-authenticate"> |
---|
[1120] | 547 | <iref primary="true" item="WWW-Authenticate header field" x:for-anchor=""/> |
---|
[229] | 548 | <x:anchor-alias value="WWW-Authenticate"/> |
---|
[8] | 549 | <t> |
---|
[1163] | 550 | The "WWW-Authenticate" header field consists of at least one |
---|
[698] | 551 | challenge that indicates the authentication scheme(s) and parameters |
---|
[1360] | 552 | applicable to the effective request URI (&effective-request-uri;). |
---|
[8] | 553 | </t> |
---|
[1360] | 554 | <t> |
---|
[1708] | 555 | It &MUST; be included in <x:ref>401 (Unauthorized)</x:ref> response messages and &MAY; be |
---|
[1360] | 556 | included in other response messages to indicate that supplying credentials |
---|
| 557 | (or different credentials) might affect the response. |
---|
| 558 | </t> |
---|
[1230] | 559 | <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="WWW-Authenticate"/> |
---|
| 560 | <x:ref>WWW-Authenticate</x:ref> = 1#<x:ref>challenge</x:ref> |
---|
[8] | 561 | </artwork></figure> |
---|
| 562 | <t> |
---|
[998] | 563 | User agents are advised to take special care in parsing the WWW-Authenticate |
---|
[8] | 564 | field value as it might contain more than one challenge, |
---|
| 565 | or if more than one WWW-Authenticate header field is provided, the |
---|
| 566 | contents of a challenge itself can contain a comma-separated list of |
---|
| 567 | authentication parameters. |
---|
| 568 | </t> |
---|
[1465] | 569 | <figure> |
---|
| 570 | <preamble>For instance:</preamble> |
---|
| 571 | <artwork type="example"> |
---|
| 572 | WWW-Authenticate: Newauth realm="apps", type=1, |
---|
| 573 | title="Login to \"apps\"", Basic realm="simple" |
---|
| 574 | </artwork> |
---|
| 575 | <postamble> |
---|
| 576 | This header field contains two challenges; one for the "Newauth" scheme |
---|
| 577 | with a realm value of "apps", and two additional parameters "type" and |
---|
[1533] | 578 | "title", and another one for the "Basic" scheme with a realm value of |
---|
| 579 | "simple". |
---|
[1465] | 580 | </postamble></figure> |
---|
[1533] | 581 | <x:note> |
---|
| 582 | <t> |
---|
[1692] | 583 | &Note; The challenge grammar production uses the list syntax as |
---|
[1533] | 584 | well. Therefore, a sequence of comma, whitespace, and comma can be |
---|
| 585 | considered both as applying to the preceding challenge, or to be an |
---|
| 586 | empty entry in the list of challenges. In practice, this ambiguity |
---|
| 587 | does not affect the semantics of the header field value and thus is |
---|
| 588 | harmless. |
---|
| 589 | </t> |
---|
| 590 | </x:note> |
---|
[8] | 591 | </section> |
---|
[29] | 592 | |
---|
[8] | 593 | </section> |
---|
| 594 | |
---|
[29] | 595 | <section title="IANA Considerations" anchor="IANA.considerations"> |
---|
[700] | 596 | |
---|
[1759] | 597 | <section title="Authentication Scheme Registry" anchor="authentication.scheme.registration"> |
---|
[1026] | 598 | <t> |
---|
| 599 | The registration procedure for HTTP Authentication Schemes is defined by |
---|
| 600 | <xref target="authentication.scheme.registry"/> of this document. |
---|
| 601 | </t> |
---|
| 602 | <t> |
---|
| 603 | The HTTP Method Authentication Scheme shall be created at <eref target="http://www.iana.org/assignments/http-authschemes"/>. |
---|
| 604 | </t> |
---|
| 605 | </section> |
---|
| 606 | |
---|
[700] | 607 | <section title="Status Code Registration" anchor="status.code.registration"> |
---|
| 608 | <t> |
---|
| 609 | The HTTP Status Code Registry located at <eref target="http://www.iana.org/assignments/http-status-codes"/> |
---|
[969] | 610 | shall be updated with the registrations below: |
---|
[700] | 611 | </t> |
---|
| 612 | <?BEGININC p7-auth.iana-status-codes ?> |
---|
| 613 | <!--AUTOGENERATED FROM extract-status-code-defs.xslt, do not edit manually--> |
---|
| 614 | <texttable align="left" suppress-title="true" anchor="iana.status.code.registration.table"> |
---|
| 615 | <ttcol>Value</ttcol> |
---|
| 616 | <ttcol>Description</ttcol> |
---|
| 617 | <ttcol>Reference</ttcol> |
---|
| 618 | <c>401</c> |
---|
| 619 | <c>Unauthorized</c> |
---|
| 620 | <c> |
---|
| 621 | <xref target="status.401"/> |
---|
| 622 | </c> |
---|
| 623 | <c>407</c> |
---|
| 624 | <c>Proxy Authentication Required</c> |
---|
| 625 | <c> |
---|
| 626 | <xref target="status.407"/> |
---|
| 627 | </c> |
---|
| 628 | </texttable> |
---|
| 629 | <!--(END)--> |
---|
| 630 | <?ENDINC p7-auth.iana-status-codes ?> |
---|
| 631 | </section> |
---|
| 632 | |
---|
[921] | 633 | <section title="Header Field Registration" anchor="header.field.registration"> |
---|
[290] | 634 | <t> |
---|
[969] | 635 | The Message Header Field Registry located at <eref target="http://www.iana.org/assignments/message-headers/message-header-index.html"/> shall be updated |
---|
[2046] | 636 | with the permanent registrations below (see <xref target="BCP90"/>): |
---|
[290] | 637 | </t> |
---|
[680] | 638 | <?BEGININC p7-auth.iana-headers ?> |
---|
[253] | 639 | <!--AUTOGENERATED FROM extract-header-defs.xslt, do not edit manually--> |
---|
[290] | 640 | <texttable align="left" suppress-title="true" anchor="iana.header.registration.table"> |
---|
[253] | 641 | <ttcol>Header Field Name</ttcol> |
---|
| 642 | <ttcol>Protocol</ttcol> |
---|
| 643 | <ttcol>Status</ttcol> |
---|
| 644 | <ttcol>Reference</ttcol> |
---|
| 645 | |
---|
| 646 | <c>Authorization</c> |
---|
| 647 | <c>http</c> |
---|
| 648 | <c>standard</c> |
---|
| 649 | <c> |
---|
| 650 | <xref target="header.authorization"/> |
---|
| 651 | </c> |
---|
| 652 | <c>Proxy-Authenticate</c> |
---|
| 653 | <c>http</c> |
---|
| 654 | <c>standard</c> |
---|
| 655 | <c> |
---|
| 656 | <xref target="header.proxy-authenticate"/> |
---|
| 657 | </c> |
---|
| 658 | <c>Proxy-Authorization</c> |
---|
| 659 | <c>http</c> |
---|
| 660 | <c>standard</c> |
---|
| 661 | <c> |
---|
| 662 | <xref target="header.proxy-authorization"/> |
---|
| 663 | </c> |
---|
| 664 | <c>WWW-Authenticate</c> |
---|
| 665 | <c>http</c> |
---|
| 666 | <c>standard</c> |
---|
| 667 | <c> |
---|
| 668 | <xref target="header.www-authenticate"/> |
---|
| 669 | </c> |
---|
| 670 | </texttable> |
---|
[290] | 671 | <!--(END)--> |
---|
[680] | 672 | <?ENDINC p7-auth.iana-headers ?> |
---|
[253] | 673 | <t> |
---|
[290] | 674 | The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force". |
---|
| 675 | </t> |
---|
[29] | 676 | </section> |
---|
[253] | 677 | </section> |
---|
[8] | 678 | |
---|
| 679 | <section title="Security Considerations" anchor="security.considerations"> |
---|
| 680 | <t> |
---|
[2069] | 681 | This section is meant to inform developers, information providers, and |
---|
| 682 | users of known security concerns specific to HTTP/1.1 authentication. |
---|
| 683 | More general security considerations are addressed in HTTP messaging |
---|
| 684 | &messaging; and semantics &semantics;. |
---|
[8] | 685 | </t> |
---|
| 686 | |
---|
| 687 | <section title="Authentication Credentials and Idle Clients" anchor="auth.credentials.and.idle.clients"> |
---|
| 688 | <t> |
---|
| 689 | Existing HTTP clients and user agents typically retain authentication |
---|
[145] | 690 | information indefinitely. HTTP/1.1 does not provide a method for a |
---|
[8] | 691 | server to direct clients to discard these cached credentials. This is |
---|
| 692 | a significant defect that requires further extensions to HTTP. |
---|
| 693 | Circumstances under which credential caching can interfere with the |
---|
| 694 | application's security model include but are not limited to: |
---|
| 695 | <list style="symbols"> |
---|
[2074] | 696 | <t>Clients that have been idle for an extended period, following |
---|
| 697 | which the server might wish to cause the client to re-prompt the |
---|
[8] | 698 | user for credentials.</t> |
---|
| 699 | |
---|
[2074] | 700 | <t>Applications that include a session termination indication |
---|
[746] | 701 | (such as a "logout" or "commit" button on a page) after which |
---|
| 702 | the server side of the application "knows" that there is no |
---|
[8] | 703 | further reason for the client to retain the credentials.</t> |
---|
| 704 | </list> |
---|
| 705 | </t> |
---|
| 706 | <t> |
---|
| 707 | This is currently under separate study. There are a number of work-arounds |
---|
| 708 | to parts of this problem, and we encourage the use of |
---|
| 709 | password protection in screen savers, idle time-outs, and other |
---|
[2074] | 710 | methods that mitigate the security problems inherent in this |
---|
| 711 | problem. In particular, user agents that cache credentials are |
---|
[8] | 712 | encouraged to provide a readily accessible mechanism for discarding |
---|
| 713 | cached credentials under user control. |
---|
| 714 | </t> |
---|
| 715 | </section> |
---|
[1672] | 716 | |
---|
| 717 | <section title="Protection Spaces" anchor="protection.spaces"> |
---|
| 718 | <t> |
---|
| 719 | Authentication schemes that solely rely on the "realm" mechanism for |
---|
| 720 | establishing a protection space will expose credentials to all resources on a |
---|
| 721 | server. Clients that have successfully made authenticated requests with a |
---|
| 722 | resource can use the same authentication credentials for other resources on |
---|
| 723 | the same server. This makes it possible for a different resource to harvest |
---|
| 724 | authentication credentials for other resources. |
---|
| 725 | </t> |
---|
| 726 | <t> |
---|
| 727 | This is of particular concern when a server hosts resources for multiple |
---|
[1791] | 728 | parties under the same canonical root URI (<xref target="protection.space"/>). |
---|
[1672] | 729 | Possible mitigation strategies include restricting direct access to |
---|
| 730 | authentication credentials (i.e., not making the content of the |
---|
[1736] | 731 | <x:ref>Authorization</x:ref> request header field available), and separating protection |
---|
[1672] | 732 | spaces by using a different host name for each party. |
---|
| 733 | </t> |
---|
[8] | 734 | </section> |
---|
[1672] | 735 | </section> |
---|
[8] | 736 | |
---|
[1364] | 737 | <section title="Acknowledgments" anchor="acks"> |
---|
[119] | 738 | <t> |
---|
[998] | 739 | This specification takes over the definition of the HTTP Authentication |
---|
[1363] | 740 | Framework, previously defined in <xref target="RFC2617" x:fmt="none">RFC 2617</xref>. |
---|
| 741 | We thank John Franks, Phillip M. Hallam-Baker, Jeffery L. Hostetler, Scott D. Lawrence, |
---|
[998] | 742 | Paul J. Leach, Ari Luotonen, and Lawrence C. Stewart for their work |
---|
[1389] | 743 | on that specification. See <xref target="RFC2617" x:fmt="of" x:sec="6"/> |
---|
[1363] | 744 | for further acknowledgements. |
---|
[119] | 745 | </t> |
---|
[1364] | 746 | <t> |
---|
| 747 | See &acks; for the Acknowledgments related to this document revision. |
---|
| 748 | </t> |
---|
[8] | 749 | </section> |
---|
| 750 | </middle> |
---|
[119] | 751 | |
---|
[8] | 752 | <back> |
---|
[36] | 753 | |
---|
[119] | 754 | <references title="Normative References"> |
---|
| 755 | |
---|
[205] | 756 | <reference anchor="Part1"> |
---|
| 757 | <front> |
---|
[1864] | 758 | <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title> |
---|
[205] | 759 | <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor"> |
---|
[1106] | 760 | <organization abbrev="Adobe">Adobe Systems Incorporated</organization> |
---|
[205] | 761 | <address><email>fielding@gbiv.com</email></address> |
---|
| 762 | </author> |
---|
| 763 | <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor"> |
---|
| 764 | <organization abbrev="greenbytes">greenbytes GmbH</organization> |
---|
| 765 | <address><email>julian.reschke@greenbytes.de</email></address> |
---|
| 766 | </author> |
---|
| 767 | <date month="&ID-MONTH;" year="&ID-YEAR;"/> |
---|
| 768 | </front> |
---|
| 769 | <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p1-messaging-&ID-VERSION;"/> |
---|
| 770 | <x:source href="p1-messaging.xml" basename="p1-messaging"/> |
---|
| 771 | </reference> |
---|
| 772 | |
---|
[1693] | 773 | <reference anchor="Part2"> |
---|
| 774 | <front> |
---|
[1864] | 775 | <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title> |
---|
[1693] | 776 | <author fullname="Roy T. Fielding" initials="R." role="editor" surname="Fielding"> |
---|
| 777 | <organization abbrev="Adobe">Adobe Systems Incorporated</organization> |
---|
| 778 | <address><email>fielding@gbiv.com</email></address> |
---|
| 779 | </author> |
---|
| 780 | <author fullname="Julian F. Reschke" initials="J. F." role="editor" surname="Reschke"> |
---|
| 781 | <organization abbrev="greenbytes">greenbytes GmbH</organization> |
---|
| 782 | <address><email>julian.reschke@greenbytes.de</email></address> |
---|
| 783 | </author> |
---|
| 784 | <date month="&ID-MONTH;" year="&ID-YEAR;" /> |
---|
| 785 | </front> |
---|
| 786 | <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p2-semantics-&ID-VERSION;" /> |
---|
[1713] | 787 | <x:source basename="p2-semantics" href="p2-semantics.xml"> |
---|
| 788 | <x:defines>403 (Forbidden)</x:defines> |
---|
[1740] | 789 | <x:defines>Location</x:defines> |
---|
[1713] | 790 | </x:source> |
---|
[1693] | 791 | </reference> |
---|
| 792 | |
---|
[31] | 793 | <reference anchor="Part6"> |
---|
[119] | 794 | <front> |
---|
[1864] | 795 | <title>Hypertext Transfer Protocol (HTTP/1.1): Caching</title> |
---|
[119] | 796 | <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor"> |
---|
[1106] | 797 | <organization abbrev="Adobe">Adobe Systems Incorporated</organization> |
---|
[119] | 798 | <address><email>fielding@gbiv.com</email></address> |
---|
| 799 | </author> |
---|
[601] | 800 | <author initials="M." surname="Nottingham" fullname="Mark Nottingham" role="editor"> |
---|
[1915] | 801 | <organization>Akamai</organization> |
---|
[601] | 802 | <address><email>mnot@mnot.net</email></address> |
---|
| 803 | </author> |
---|
[119] | 804 | <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor"> |
---|
| 805 | <organization abbrev="greenbytes">greenbytes GmbH</organization> |
---|
| 806 | <address><email>julian.reschke@greenbytes.de</email></address> |
---|
| 807 | </author> |
---|
| 808 | <date month="&ID-MONTH;" year="&ID-YEAR;"/> |
---|
| 809 | </front> |
---|
| 810 | <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p6-cache-&ID-VERSION;"/> |
---|
| 811 | <x:source href="p6-cache.xml" basename="p6-cache"/> |
---|
[31] | 812 | </reference> |
---|
| 813 | |
---|
[96] | 814 | <reference anchor="RFC2119"> |
---|
| 815 | <front> |
---|
| 816 | <title>Key words for use in RFCs to Indicate Requirement Levels</title> |
---|
| 817 | <author initials="S." surname="Bradner" fullname="Scott Bradner"> |
---|
| 818 | <organization>Harvard University</organization> |
---|
| 819 | <address><email>sob@harvard.edu</email></address> |
---|
| 820 | </author> |
---|
| 821 | <date month="March" year="1997"/> |
---|
| 822 | </front> |
---|
| 823 | <seriesInfo name="BCP" value="14"/> |
---|
| 824 | <seriesInfo name="RFC" value="2119"/> |
---|
| 825 | </reference> |
---|
| 826 | |
---|
[425] | 827 | <reference anchor="RFC5234"> |
---|
| 828 | <front> |
---|
| 829 | <title abbrev="ABNF for Syntax Specifications">Augmented BNF for Syntax Specifications: ABNF</title> |
---|
| 830 | <author initials="D." surname="Crocker" fullname="Dave Crocker" role="editor"> |
---|
| 831 | <organization>Brandenburg InternetWorking</organization> |
---|
| 832 | <address> |
---|
[728] | 833 | <email>dcrocker@bbiw.net</email> |
---|
| 834 | </address> |
---|
[425] | 835 | </author> |
---|
| 836 | <author initials="P." surname="Overell" fullname="Paul Overell"> |
---|
| 837 | <organization>THUS plc.</organization> |
---|
| 838 | <address> |
---|
[728] | 839 | <email>paul.overell@thus.net</email> |
---|
| 840 | </address> |
---|
[425] | 841 | </author> |
---|
| 842 | <date month="January" year="2008"/> |
---|
| 843 | </front> |
---|
| 844 | <seriesInfo name="STD" value="68"/> |
---|
| 845 | <seriesInfo name="RFC" value="5234"/> |
---|
| 846 | </reference> |
---|
| 847 | |
---|
[119] | 848 | </references> |
---|
| 849 | |
---|
| 850 | <references title="Informative References"> |
---|
| 851 | |
---|
| 852 | <reference anchor="RFC2616"> |
---|
| 853 | <front> |
---|
| 854 | <title>Hypertext Transfer Protocol -- HTTP/1.1</title> |
---|
| 855 | <author initials="R." surname="Fielding" fullname="R. Fielding"> |
---|
| 856 | <organization>University of California, Irvine</organization> |
---|
| 857 | <address><email>fielding@ics.uci.edu</email></address> |
---|
| 858 | </author> |
---|
| 859 | <author initials="J." surname="Gettys" fullname="J. Gettys"> |
---|
| 860 | <organization>W3C</organization> |
---|
| 861 | <address><email>jg@w3.org</email></address> |
---|
| 862 | </author> |
---|
| 863 | <author initials="J." surname="Mogul" fullname="J. Mogul"> |
---|
| 864 | <organization>Compaq Computer Corporation</organization> |
---|
| 865 | <address><email>mogul@wrl.dec.com</email></address> |
---|
| 866 | </author> |
---|
| 867 | <author initials="H." surname="Frystyk" fullname="H. Frystyk"> |
---|
| 868 | <organization>MIT Laboratory for Computer Science</organization> |
---|
| 869 | <address><email>frystyk@w3.org</email></address> |
---|
| 870 | </author> |
---|
| 871 | <author initials="L." surname="Masinter" fullname="L. Masinter"> |
---|
| 872 | <organization>Xerox Corporation</organization> |
---|
| 873 | <address><email>masinter@parc.xerox.com</email></address> |
---|
| 874 | </author> |
---|
| 875 | <author initials="P." surname="Leach" fullname="P. Leach"> |
---|
| 876 | <organization>Microsoft Corporation</organization> |
---|
| 877 | <address><email>paulle@microsoft.com</email></address> |
---|
| 878 | </author> |
---|
| 879 | <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee"> |
---|
| 880 | <organization>W3C</organization> |
---|
| 881 | <address><email>timbl@w3.org</email></address> |
---|
| 882 | </author> |
---|
| 883 | <date month="June" year="1999"/> |
---|
| 884 | </front> |
---|
| 885 | <seriesInfo name="RFC" value="2616"/> |
---|
[8] | 886 | </reference> |
---|
[36] | 887 | |
---|
[998] | 888 | <reference anchor="RFC2617"> |
---|
| 889 | <front> |
---|
| 890 | <title abbrev="HTTP Authentication">HTTP Authentication: Basic and Digest Access Authentication</title> |
---|
| 891 | <author initials="J." surname="Franks" fullname="John Franks"> |
---|
| 892 | <organization>Northwestern University, Department of Mathematics</organization> |
---|
| 893 | <address><email>john@math.nwu.edu</email></address> |
---|
| 894 | </author> |
---|
| 895 | <author initials="P.M." surname="Hallam-Baker" fullname="Phillip M. Hallam-Baker"> |
---|
| 896 | <organization>Verisign Inc.</organization> |
---|
| 897 | <address><email>pbaker@verisign.com</email></address> |
---|
| 898 | </author> |
---|
| 899 | <author initials="J.L." surname="Hostetler" fullname="Jeffery L. Hostetler"> |
---|
| 900 | <organization>AbiSource, Inc.</organization> |
---|
| 901 | <address><email>jeff@AbiSource.com</email></address> |
---|
| 902 | </author> |
---|
| 903 | <author initials="S.D." surname="Lawrence" fullname="Scott D. Lawrence"> |
---|
| 904 | <organization>Agranat Systems, Inc.</organization> |
---|
| 905 | <address><email>lawrence@agranat.com</email></address> |
---|
| 906 | </author> |
---|
| 907 | <author initials="P.J." surname="Leach" fullname="Paul J. Leach"> |
---|
| 908 | <organization>Microsoft Corporation</organization> |
---|
| 909 | <address><email>paulle@microsoft.com</email></address> |
---|
| 910 | </author> |
---|
| 911 | <author initials="A." surname="Luotonen" fullname="Ari Luotonen"> |
---|
| 912 | <organization>Netscape Communications Corporation</organization> |
---|
| 913 | </author> |
---|
| 914 | <author initials="L." surname="Stewart" fullname="Lawrence C. Stewart"> |
---|
| 915 | <organization>Open Market, Inc.</organization> |
---|
| 916 | <address><email>stewart@OpenMarket.com</email></address> |
---|
| 917 | </author> |
---|
| 918 | <date month="June" year="1999"/> |
---|
| 919 | </front> |
---|
| 920 | <seriesInfo name="RFC" value="2617"/> |
---|
| 921 | </reference> |
---|
| 922 | |
---|
[2046] | 923 | <reference anchor='BCP90'> |
---|
[253] | 924 | <front> |
---|
| 925 | <title>Registration Procedures for Message Header Fields</title> |
---|
| 926 | <author initials='G.' surname='Klyne' fullname='G. Klyne'> |
---|
| 927 | <organization>Nine by Nine</organization> |
---|
| 928 | <address><email>GK-IETF@ninebynine.org</email></address> |
---|
| 929 | </author> |
---|
| 930 | <author initials='M.' surname='Nottingham' fullname='M. Nottingham'> |
---|
| 931 | <organization>BEA Systems</organization> |
---|
| 932 | <address><email>mnot@pobox.com</email></address> |
---|
| 933 | </author> |
---|
| 934 | <author initials='J.' surname='Mogul' fullname='J. Mogul'> |
---|
| 935 | <organization>HP Labs</organization> |
---|
| 936 | <address><email>JeffMogul@acm.org</email></address> |
---|
| 937 | </author> |
---|
| 938 | <date year='2004' month='September' /> |
---|
| 939 | </front> |
---|
| 940 | <seriesInfo name='BCP' value='90' /> |
---|
| 941 | <seriesInfo name='RFC' value='3864' /> |
---|
| 942 | </reference> |
---|
| 943 | |
---|
[1394] | 944 | <reference anchor="RFC3986"> |
---|
| 945 | <front> |
---|
| 946 | <title abbrev='URI Generic Syntax'>Uniform Resource Identifier (URI): Generic Syntax</title> |
---|
| 947 | <author initials='T.' surname='Berners-Lee' fullname='Tim Berners-Lee'> |
---|
| 948 | <organization abbrev="W3C/MIT">World Wide Web Consortium</organization> |
---|
| 949 | <address> |
---|
| 950 | <email>timbl@w3.org</email> |
---|
| 951 | <uri>http://www.w3.org/People/Berners-Lee/</uri> |
---|
| 952 | </address> |
---|
| 953 | </author> |
---|
| 954 | <author initials='R.' surname='Fielding' fullname='Roy T. Fielding'> |
---|
| 955 | <organization abbrev="Day Software">Day Software</organization> |
---|
| 956 | <address> |
---|
| 957 | <email>fielding@gbiv.com</email> |
---|
| 958 | <uri>http://roy.gbiv.com/</uri> |
---|
| 959 | </address> |
---|
| 960 | </author> |
---|
| 961 | <author initials='L.' surname='Masinter' fullname='Larry Masinter'> |
---|
| 962 | <organization abbrev="Adobe Systems">Adobe Systems Incorporated</organization> |
---|
| 963 | <address> |
---|
| 964 | <email>LMM@acm.org</email> |
---|
| 965 | <uri>http://larry.masinter.net/</uri> |
---|
| 966 | </address> |
---|
| 967 | </author> |
---|
| 968 | <date month='January' year='2005'></date> |
---|
| 969 | </front> |
---|
| 970 | <seriesInfo name="STD" value="66"/> |
---|
| 971 | <seriesInfo name="RFC" value="3986"/> |
---|
| 972 | </reference> |
---|
| 973 | |
---|
| 974 | <reference anchor="RFC4648"> |
---|
| 975 | <front> |
---|
| 976 | <title>The Base16, Base32, and Base64 Data Encodings</title> |
---|
| 977 | <author fullname="S. Josefsson" initials="S." surname="Josefsson"/> |
---|
| 978 | <date year="2006" month="October"/> |
---|
| 979 | </front> |
---|
| 980 | <seriesInfo value="4648" name="RFC"/> |
---|
| 981 | </reference> |
---|
| 982 | |
---|
[1026] | 983 | <reference anchor='RFC5226'> |
---|
| 984 | <front> |
---|
| 985 | <title>Guidelines for Writing an IANA Considerations Section in RFCs</title> |
---|
| 986 | <author initials='T.' surname='Narten' fullname='T. Narten'> |
---|
| 987 | <organization>IBM</organization> |
---|
| 988 | <address><email>narten@us.ibm.com</email></address> |
---|
| 989 | </author> |
---|
| 990 | <author initials='H.' surname='Alvestrand' fullname='H. Alvestrand'> |
---|
| 991 | <organization>Google</organization> |
---|
| 992 | <address><email>Harald@Alvestrand.no</email></address> |
---|
| 993 | </author> |
---|
| 994 | <date year='2008' month='May' /> |
---|
| 995 | </front> |
---|
| 996 | <seriesInfo name='BCP' value='26' /> |
---|
| 997 | <seriesInfo name='RFC' value='5226' /> |
---|
| 998 | </reference> |
---|
| 999 | |
---|
[8] | 1000 | </references> |
---|
[99] | 1001 | |
---|
[1385] | 1002 | <section title="Changes from RFCs 2616 and 2617" anchor="changes.from.rfc.2616"> |
---|
[1230] | 1003 | <t> |
---|
[2019] | 1004 | The framework for HTTP Authentication is now defined by this document, |
---|
| 1005 | rather than RFC 2617. |
---|
| 1006 | </t> |
---|
| 1007 | <t> |
---|
| 1008 | The "realm" parameter is no longer always required on challenges; |
---|
| 1009 | consequently, the ABNF allows challenges without any auth parameters. |
---|
[1385] | 1010 | (<xref target="access.authentication.framework"/>) |
---|
| 1011 | </t> |
---|
| 1012 | <t> |
---|
[1815] | 1013 | The "token68" alternative to auth-param lists has been added for consistency |
---|
[1394] | 1014 | with legacy authentication schemes such as "Basic". |
---|
| 1015 | (<xref target="access.authentication.framework"/>) |
---|
| 1016 | </t> |
---|
| 1017 | <t> |
---|
[2019] | 1018 | This specification introduces the Authentication Scheme Registry, along with |
---|
| 1019 | considerations for new authentication schemes. |
---|
[1760] | 1020 | (<xref target="authentication.scheme.registry"/>) |
---|
| 1021 | </t> |
---|
[99] | 1022 | </section> |
---|
[911] | 1023 | |
---|
[1805] | 1024 | <section title="Imported ABNF" anchor="imported.abnf"> |
---|
| 1025 | <x:anchor-alias value="ALPHA"/> |
---|
| 1026 | <x:anchor-alias value="CR"/> |
---|
| 1027 | <x:anchor-alias value="DIGIT"/> |
---|
| 1028 | <x:anchor-alias value="LF"/> |
---|
| 1029 | <x:anchor-alias value="OCTET"/> |
---|
| 1030 | <x:anchor-alias value="VCHAR"/> |
---|
| 1031 | <x:anchor-alias value="SP"/> |
---|
| 1032 | <x:anchor-alias value="quoted-string"/> |
---|
| 1033 | <x:anchor-alias value="token"/> |
---|
| 1034 | <x:anchor-alias value="BWS"/> |
---|
| 1035 | <x:anchor-alias value="OWS"/> |
---|
| 1036 | <t> |
---|
| 1037 | The following core rules are included by |
---|
| 1038 | reference, as defined in <xref target="RFC5234" x:fmt="of" x:sec="B.1"/>: |
---|
| 1039 | ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), |
---|
| 1040 | DIGIT (decimal 0-9), DQUOTE (double quote), |
---|
| 1041 | HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), |
---|
| 1042 | OCTET (any 8-bit sequence of data), SP (space), and |
---|
| 1043 | VCHAR (any visible US-ASCII character). |
---|
| 1044 | </t> |
---|
| 1045 | <t> |
---|
| 1046 | The rules below are defined in <xref target="Part1"/>: |
---|
| 1047 | </t> |
---|
| 1048 | <figure><artwork type="abnf2616"> |
---|
| 1049 | <x:ref>BWS</x:ref> = <BWS, defined in &whitespace;> |
---|
| 1050 | <x:ref>OWS</x:ref> = <OWS, defined in &whitespace;> |
---|
| 1051 | <x:ref>quoted-string</x:ref> = <quoted-string, defined in &field-components;> |
---|
| 1052 | <x:ref>token</x:ref> = <token, defined in &field-components;> |
---|
| 1053 | </artwork></figure> |
---|
| 1054 | </section> |
---|
| 1055 | |
---|
[680] | 1056 | <?BEGININC p7-auth.abnf-appendix ?> |
---|
[427] | 1057 | <section xmlns:x="http://purl.org/net/xml2rfc/ext" title="Collected ABNF" anchor="collected.abnf"> |
---|
[2206] | 1058 | <t> |
---|
| 1059 | In the collected ABNF below, list rules are expanded as per <xref target="Part1" x:rel="#notation"/>. |
---|
| 1060 | </t><figure> |
---|
[427] | 1061 | <artwork type="abnf" name="p7-auth.parsed-abnf"> |
---|
[1230] | 1062 | <x:ref>Authorization</x:ref> = credentials |
---|
[427] | 1063 | |
---|
[2045] | 1064 | <x:ref>BWS</x:ref> = <BWS, defined in [Part1], Section 3.2.3> |
---|
[1386] | 1065 | |
---|
[2045] | 1066 | <x:ref>OWS</x:ref> = <OWS, defined in [Part1], Section 3.2.3> |
---|
[427] | 1067 | |
---|
[1230] | 1068 | <x:ref>Proxy-Authenticate</x:ref> = *( "," OWS ) challenge *( OWS "," [ OWS |
---|
[425] | 1069 | challenge ] ) |
---|
[1230] | 1070 | <x:ref>Proxy-Authorization</x:ref> = credentials |
---|
[427] | 1071 | |
---|
[1230] | 1072 | <x:ref>WWW-Authenticate</x:ref> = *( "," OWS ) challenge *( OWS "," [ OWS challenge |
---|
| 1073 | ] ) |
---|
[428] | 1074 | |
---|
[1386] | 1075 | <x:ref>auth-param</x:ref> = token BWS "=" BWS ( token / quoted-string ) |
---|
[998] | 1076 | <x:ref>auth-scheme</x:ref> = token |
---|
| 1077 | |
---|
[1815] | 1078 | <x:ref>challenge</x:ref> = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) *( |
---|
[1394] | 1079 | OWS "," [ OWS auth-param ] ) ] ) ] |
---|
[1815] | 1080 | <x:ref>credentials</x:ref> = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) |
---|
[1394] | 1081 | *( OWS "," [ OWS auth-param ] ) ] ) ] |
---|
| 1082 | |
---|
[2045] | 1083 | <x:ref>quoted-string</x:ref> = <quoted-string, defined in [Part1], Section 3.2.6> |
---|
[998] | 1084 | |
---|
[2045] | 1085 | <x:ref>token</x:ref> = <token, defined in [Part1], Section 3.2.6> |
---|
[1815] | 1086 | <x:ref>token68</x:ref> = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) |
---|
| 1087 | *"=" |
---|
[454] | 1088 | </artwork> |
---|
| 1089 | </figure> |
---|
[1773] | 1090 | </section> |
---|
[680] | 1091 | <?ENDINC p7-auth.abnf-appendix ?> |
---|
[427] | 1092 | |
---|
[252] | 1093 | <section title="Change Log (to be removed by RFC Editor before publication)" anchor="change.log"> |
---|
[115] | 1094 | <t> |
---|
[1624] | 1095 | Changes up to the first Working Group Last Call draft are summarized |
---|
| 1096 | in <eref target="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p7-auth-19#appendix-C"/>. |
---|
[115] | 1097 | </t> |
---|
| 1098 | |
---|
[1592] | 1099 | <section title="Since draft-ietf-httpbis-p7-auth-19" anchor="changes.since.19"> |
---|
| 1100 | <t> |
---|
[1669] | 1101 | Closed issues: |
---|
| 1102 | <list style="symbols"> |
---|
| 1103 | <t> |
---|
[1672] | 1104 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/348"/>: |
---|
| 1105 | "Realms and scope" |
---|
| 1106 | </t> |
---|
| 1107 | <t> |
---|
[1669] | 1108 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/349"/>: |
---|
| 1109 | "Strength" |
---|
| 1110 | </t> |
---|
[1681] | 1111 | <t> |
---|
| 1112 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/357"/>: |
---|
| 1113 | "Authentication exchanges" |
---|
| 1114 | </t> |
---|
[1682] | 1115 | <t> |
---|
| 1116 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/361"/>: |
---|
| 1117 | "ABNF requirements for recipients" |
---|
| 1118 | </t> |
---|
[1760] | 1119 | <t> |
---|
| 1120 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/368"/>: |
---|
| 1121 | "note introduction of new IANA registries as normative changes" |
---|
| 1122 | </t> |
---|
[1669] | 1123 | </list> |
---|
[1592] | 1124 | </t> |
---|
[1499] | 1125 | </section> |
---|
| 1126 | |
---|
[1807] | 1127 | <section title="Since draft-ietf-httpbis-p7-auth-20" anchor="changes.since.20"> |
---|
| 1128 | <t> |
---|
[1815] | 1129 | Closed issues: |
---|
| 1130 | <list style="symbols"> |
---|
| 1131 | <t> |
---|
| 1132 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/376"/>: |
---|
| 1133 | "rename b64token for clarity" |
---|
| 1134 | </t> |
---|
| 1135 | </list> |
---|
[1807] | 1136 | </t> |
---|
[1889] | 1137 | <t> |
---|
| 1138 | Other changes: |
---|
| 1139 | <list style="symbols"> |
---|
| 1140 | <t> |
---|
| 1141 | Conformance criteria and considerations regarding error handling are |
---|
| 1142 | now defined in Part 1. |
---|
| 1143 | </t> |
---|
| 1144 | </list> |
---|
| 1145 | </t> |
---|
[1592] | 1146 | </section> |
---|
[1929] | 1147 | |
---|
| 1148 | <section title="Since draft-ietf-httpbis-p7-auth-21" anchor="changes.since.21"> |
---|
| 1149 | <t> |
---|
[2000] | 1150 | Closed issues: |
---|
| 1151 | <list style="symbols"> |
---|
| 1152 | <t> |
---|
| 1153 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/403"/>: |
---|
| 1154 | "Authentication and caching - max-age" |
---|
| 1155 | </t> |
---|
| 1156 | </list> |
---|
[1929] | 1157 | </t> |
---|
[1807] | 1158 | </section> |
---|
[2169] | 1159 | |
---|
[2190] | 1160 | <section title="Since draft-ietf-httpbis-p7-auth-22" anchor="changes.since.22"> |
---|
[2169] | 1161 | <t> |
---|
[2206] | 1162 | Closed issues: |
---|
| 1163 | <list style="symbols"> |
---|
| 1164 | <t> |
---|
| 1165 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/436"/>: |
---|
| 1166 | "explain list expansion in ABNF appendices" |
---|
| 1167 | </t> |
---|
[2211] | 1168 | <t> |
---|
| 1169 | <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/439"/>: |
---|
| 1170 | "terminology: mechanism vs framework vs scheme" |
---|
| 1171 | </t> |
---|
[2206] | 1172 | </list> |
---|
[2169] | 1173 | </t> |
---|
[1929] | 1174 | </section> |
---|
[2190] | 1175 | </section> |
---|
[1592] | 1176 | |
---|
[8] | 1177 | </back> |
---|
| 1178 | </rfc> |
---|