| draft-ietf-httpbis-p7-auth-19.txt | draft-ietf-httpbis-p7-auth-latest.txt | |||
|---|---|---|---|---|
| HTTPbis Working Group R. Fielding, Ed. | HTTPbis Working Group R. Fielding, Ed. | |||
| Internet-Draft Adobe | Internet-Draft Adobe | |||
| Obsoletes: 2616 (if approved) Y. Lafon, Ed. | Obsoletes: 2616 (if approved) Y. Lafon, Ed. | |||
| Updates: 2617 (if approved) W3C | Updates: 2617 (if approved) W3C | |||
| Intended status: Standards Track J. Reschke, Ed. | Intended status: Standards Track J. Reschke, Ed. | |||
| Expires: September 13, 2012 greenbytes | Expires: November 20, 2012 greenbytes | |||
| March 12, 2012 | May 19, 2012 | |||
| HTTP/1.1, part 7: Authentication | HTTP/1.1, part 7: Authentication | |||
| draft-ietf-httpbis-p7-auth-19 | draft-ietf-httpbis-p7-auth-latest | |||
| Abstract | Abstract | |||
| The Hypertext Transfer Protocol (HTTP) is an application-level | The Hypertext Transfer Protocol (HTTP) is an application-level | |||
| protocol for distributed, collaborative, hypermedia information | protocol for distributed, collaborative, hypermedia information | |||
| systems. HTTP has been in use by the World Wide Web global | systems. HTTP has been in use by the World Wide Web global | |||
| information initiative since 1990. This document is Part 7 of the | information initiative since 1990. This document is Part 7 of the | |||
| seven-part specification that defines the protocol referred to as | seven-part specification that defines the protocol referred to as | |||
| "HTTP/1.1" and, taken together, obsoletes RFC 2616. | "HTTP/1.1" and, taken together, obsoletes RFC 2616. | |||
| skipping to change at page 1, line 36 | skipping to change at page 1, line 36 | |||
| Discussion of this draft should take place on the HTTPBIS working | Discussion of this draft should take place on the HTTPBIS working | |||
| group mailing list (ietf-http-wg@w3.org), which is archived at | group mailing list (ietf-http-wg@w3.org), which is archived at | |||
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | |||
| The current issues list is at | The current issues list is at | |||
| <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | |||
| documents (including fancy diffs) can be found at | documents (including fancy diffs) can be found at | |||
| <http://tools.ietf.org/wg/httpbis/>. | <http://tools.ietf.org/wg/httpbis/>. | |||
| The changes in this draft are summarized in Appendix C.20. | The changes in this draft are summarized in Appendix C.1. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 13, 2012. | This Internet-Draft will expire on November 20, 2012. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 21 | skipping to change at page 3, line 38 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.1. Authentication Credentials and Idle Clients . . . . . . . 13 | 6.1. Authentication Credentials and Idle Clients . . . . . . . 13 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 14 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 14 | |||
| Appendix A. Changes from RFCs 2616 and 2617 . . . . . . . . . . . 15 | Appendix A. Changes from RFCs 2616 and 2617 . . . . . . . . . . . 15 | |||
| Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 16 | Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix C. Change Log (to be removed by RFC Editor before | Appendix C. Change Log (to be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 16 | publication) . . . . . . . . . . . . . . . . . . . . 16 | |||
| C.1. Since RFC 2616 . . . . . . . . . . . . . . . . . . . . . . 16 | C.1. Since draft-ietf-httpbis-p7-auth-19 . . . . . . . . . . . 16 | |||
| C.2. Since draft-ietf-httpbis-p7-auth-00 . . . . . . . . . . . 16 | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| C.3. Since draft-ietf-httpbis-p7-auth-01 . . . . . . . . . . . 17 | ||||
| C.4. Since draft-ietf-httpbis-p7-auth-02 . . . . . . . . . . . 17 | ||||
| C.5. Since draft-ietf-httpbis-p7-auth-03 . . . . . . . . . . . 17 | ||||
| C.6. Since draft-ietf-httpbis-p7-auth-04 . . . . . . . . . . . 17 | ||||
| C.7. Since draft-ietf-httpbis-p7-auth-05 . . . . . . . . . . . 17 | ||||
| C.8. Since draft-ietf-httpbis-p7-auth-06 . . . . . . . . . . . 18 | ||||
| C.9. Since draft-ietf-httpbis-p7-auth-07 . . . . . . . . . . . 18 | ||||
| C.10. Since draft-ietf-httpbis-p7-auth-08 . . . . . . . . . . . 18 | ||||
| C.11. Since draft-ietf-httpbis-p7-auth-09 . . . . . . . . . . . 18 | ||||
| C.12. Since draft-ietf-httpbis-p7-auth-10 . . . . . . . . . . . 18 | ||||
| C.13. Since draft-ietf-httpbis-p7-auth-11 . . . . . . . . . . . 18 | ||||
| C.14. Since draft-ietf-httpbis-p7-auth-12 . . . . . . . . . . . 19 | ||||
| C.15. Since draft-ietf-httpbis-p7-auth-13 . . . . . . . . . . . 19 | ||||
| C.16. Since draft-ietf-httpbis-p7-auth-14 . . . . . . . . . . . 19 | ||||
| C.17. Since draft-ietf-httpbis-p7-auth-15 . . . . . . . . . . . 19 | ||||
| C.18. Since draft-ietf-httpbis-p7-auth-16 . . . . . . . . . . . 19 | ||||
| C.19. Since draft-ietf-httpbis-p7-auth-17 . . . . . . . . . . . 20 | ||||
| C.20. Since draft-ietf-httpbis-p7-auth-18 . . . . . . . . . . . 20 | ||||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines HTTP/1.1 access control and authentication. It | This document defines HTTP/1.1 access control and authentication. It | |||
| includes the relevant parts of RFC 2616 with only minor changes, plus | includes the relevant parts of RFC 2616 with only minor changes | |||
| the general framework for HTTP authentication, as previously defined | ([RFC2616]), plus the general framework for HTTP authentication, as | |||
| in "HTTP Authentication: Basic and Digest Access Authentication" | previously defined in "HTTP Authentication: Basic and Digest Access | |||
| ([RFC2617]). | Authentication" ([RFC2617]). | |||
| HTTP provides several OPTIONAL challenge-response authentication | HTTP provides several OPTIONAL challenge-response authentication | |||
| mechanisms which can be used by a server to challenge a client | mechanisms which can be used by a server to challenge a client | |||
| request and by a client to provide authentication information. The | request and by a client to provide authentication information. The | |||
| "basic" and "digest" authentication schemes continue to be specified | "basic" and "digest" authentication schemes continue to be specified | |||
| in RFC 2617. | in RFC 2617. | |||
| 1.1. Conformance and Error Handling | 1.1. Conformance and Error Handling | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| skipping to change at page 6, line 24 | skipping to change at page 6, line 24 | |||
| challenge = auth-scheme [ 1*SP ( b64token / #auth-param ) ] | challenge = auth-scheme [ 1*SP ( b64token / #auth-param ) ] | |||
| Note: User agents will need to take special care in parsing the | Note: User agents will need to take special care in parsing the | |||
| WWW-Authenticate and Proxy-Authenticate header field values | WWW-Authenticate and Proxy-Authenticate header field values | |||
| because they can contain more than one challenge, or if more than | because they can contain more than one challenge, or if more than | |||
| one of each is provided, since the contents of a challenge can | one of each is provided, since the contents of a challenge can | |||
| itself contain a comma-separated list of authentication | itself contain a comma-separated list of authentication | |||
| parameters. | parameters. | |||
| Note: Many browsers fail to parse challenges containing unknown | Note: Many clients fail to parse challenges containing unknown | |||
| schemes. A workaround for this problem is to list well-supported | schemes. A workaround for this problem is to list well-supported | |||
| schemes (such as "basic") first. | schemes (such as "basic") first. | |||
| A user agent that wishes to authenticate itself with an origin server | A user agent that wishes to authenticate itself with an origin server | |||
| -- usually, but not necessarily, after receiving a 401 (Unauthorized) | -- usually, but not necessarily, after receiving a 401 (Unauthorized) | |||
| -- MAY do so by including an Authorization header field with the | -- MAY do so by including an Authorization header field with the | |||
| request. | request. | |||
| A client that wishes to authenticate itself with a proxy -- usually, | A client that wishes to authenticate itself with a proxy -- usually, | |||
| but not necessarily, after receiving a 407 (Proxy Authentication | but not necessarily, after receiving a 407 (Proxy Authentication | |||
| skipping to change at page 11, line 7 | skipping to change at page 11, line 7 | |||
| subsequent request. But if the response is stale, all caches | subsequent request. But if the response is stale, all caches | |||
| MUST first revalidate it with the origin server, using the header | MUST first revalidate it with the origin server, using the header | |||
| fields from the new request to allow the origin server to | fields from the new request to allow the origin server to | |||
| authenticate the new request. | authenticate the new request. | |||
| 3. If the response includes the "public" cache-control directive, it | 3. If the response includes the "public" cache-control directive, it | |||
| MAY be returned in reply to any subsequent request. | MAY be returned in reply to any subsequent request. | |||
| 4.2. Proxy-Authenticate | 4.2. Proxy-Authenticate | |||
| The "Proxy-Authenticate" header field consists of a challenge that | The "Proxy-Authenticate" header field consists of at least one | |||
| indicates the authentication scheme and parameters applicable to the | challenge that indicates the authentication scheme(s) and parameters | |||
| proxy for this effective request URI (Section 5.5 of [Part1]). It | applicable to the proxy for this effective request URI (Section 5.5 | |||
| MUST be included as part of a 407 (Proxy Authentication Required) | of [Part1]). It MUST be included as part of a 407 (Proxy | |||
| response. | Authentication Required) response. | |||
| Proxy-Authenticate = 1#challenge | Proxy-Authenticate = 1#challenge | |||
| Unlike WWW-Authenticate, the Proxy-Authenticate header field applies | Unlike WWW-Authenticate, the Proxy-Authenticate header field applies | |||
| only to the current connection and SHOULD NOT be passed on to | only to the current connection and SHOULD NOT be passed on to | |||
| downstream clients. However, an intermediate proxy might need to | downstream clients. However, an intermediate proxy might need to | |||
| obtain its own credentials by requesting them from the downstream | obtain its own credentials by requesting them from the downstream | |||
| client, which in some circumstances will appear as if the proxy is | client, which in some circumstances will appear as if the proxy is | |||
| forwarding the Proxy-Authenticate header field. | forwarding the Proxy-Authenticate header field. | |||
| skipping to change at page 14, line 26 | skipping to change at page 14, line 26 | |||
| See Section 9 of [Part1] for the Acknowledgments related to this | See Section 9 of [Part1] for the Acknowledgments related to this | |||
| document revision. | document revision. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., | [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., | |||
| "HTTP/1.1, part 1: URIs, Connections, and Message | "HTTP/1.1, part 1: URIs, Connections, and Message | |||
| Parsing", draft-ietf-httpbis-p1-messaging-19 (work in | Parsing", draft-ietf-httpbis-p1-messaging-latest (work in | |||
| progress), March 2012. | progress), May 2012. | |||
| [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed., | [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed., | |||
| and J. Reschke, Ed., "HTTP/1.1, part 6: Caching", | and J. Reschke, Ed., "HTTP/1.1, part 6: Caching", | |||
| draft-ietf-httpbis-p6-cache-19 (work in progress), | draft-ietf-httpbis-p6-cache-latest (work in progress), | |||
| March 2012. | May 2012. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
| skipping to change at page 16, line 44 | skipping to change at page 16, line 44 | |||
| ABNF diagnostics: | ABNF diagnostics: | |||
| ; Authorization defined but not used | ; Authorization defined but not used | |||
| ; Proxy-Authenticate defined but not used | ; Proxy-Authenticate defined but not used | |||
| ; Proxy-Authorization defined but not used | ; Proxy-Authorization defined but not used | |||
| ; WWW-Authenticate defined but not used | ; WWW-Authenticate defined but not used | |||
| Appendix C. Change Log (to be removed by RFC Editor before publication) | Appendix C. Change Log (to be removed by RFC Editor before publication) | |||
| C.1. Since RFC 2616 | Changes up to the first Working Group Last Call draft are summarized | |||
| in <http://trac.tools.ietf.org/html/ | ||||
| Extracted relevant partitions from [RFC2616]. | draft-ietf-httpbis-p7-auth-19#appendix-C>. | |||
| C.2. Since draft-ietf-httpbis-p7-auth-00 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/35>: "Normative and | ||||
| Informative references" | ||||
| C.3. Since draft-ietf-httpbis-p7-auth-01 | ||||
| Ongoing work on ABNF conversion | ||||
| (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | ||||
| o Explicitly import BNF rules for "challenge" and "credentials" from | ||||
| RFC2617. | ||||
| o Add explicit references to BNF syntax and rules imported from | ||||
| other parts of the specification. | ||||
| C.4. Since draft-ietf-httpbis-p7-auth-02 | ||||
| Ongoing work on IANA Message Header Field Registration | ||||
| (<http://tools.ietf.org/wg/httpbis/trac/ticket/40>): | ||||
| o Reference RFC 3984, and update header field registrations for | ||||
| header fields defined in this document. | ||||
| C.5. Since draft-ietf-httpbis-p7-auth-03 | ||||
| None. | ||||
| C.6. Since draft-ietf-httpbis-p7-auth-04 | ||||
| Ongoing work on ABNF conversion | ||||
| (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | ||||
| o Use "/" instead of "|" for alternatives. | ||||
| o Introduce new ABNF rules for "bad" whitespace ("BWS"), optional | ||||
| whitespace ("OWS") and required whitespace ("RWS"). | ||||
| o Rewrite ABNFs to spell out whitespace rules, factor out header | ||||
| field value format definitions. | ||||
| C.7. Since draft-ietf-httpbis-p7-auth-05 | ||||
| Final work on ABNF conversion | ||||
| (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | ||||
| o Add appendix containing collected and expanded ABNF, reorganize | ||||
| ABNF introduction. | ||||
| C.8. Since draft-ietf-httpbis-p7-auth-06 | ||||
| None. | ||||
| C.9. Since draft-ietf-httpbis-p7-auth-07 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/198>: "move IANA | ||||
| registrations for optional status codes" | ||||
| C.10. Since draft-ietf-httpbis-p7-auth-08 | ||||
| No significant changes. | ||||
| C.11. Since draft-ietf-httpbis-p7-auth-09 | ||||
| Partly resolved issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/196>: "Term for the | ||||
| requested resource's URI" | ||||
| C.12. Since draft-ietf-httpbis-p7-auth-10 | ||||
| None. | ||||
| C.13. Since draft-ietf-httpbis-p7-auth-11 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/130>: "introduction | ||||
| to part 7 is work-in-progress" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/195>: "auth-param | ||||
| syntax" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/224>: "Header | ||||
| Classification" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/237>: "absorbing the | ||||
| auth framework from 2617" | ||||
| Partly resolved issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/141>: "should we | ||||
| have an auth scheme registry" | ||||
| C.14. Since draft-ietf-httpbis-p7-auth-12 | ||||
| None. | ||||
| C.15. Since draft-ietf-httpbis-p7-auth-13 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/276>: "untangle | ||||
| ABNFs for header fields" | ||||
| C.16. Since draft-ietf-httpbis-p7-auth-14 | ||||
| None. | ||||
| C.17. Since draft-ietf-httpbis-p7-auth-15 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/78>: "Relationship | ||||
| between 401, Authorization and WWW-Authenticate" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/177>: "Realm | ||||
| required on challenges" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/195>: "auth-param | ||||
| syntax" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/257>: | ||||
| "Considerations for new authentications schemes" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/287>: "LWS in auth- | ||||
| param ABNF" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/309>: "credentials | ||||
| ABNF missing SP (still using implied LWS?)" | ||||
| C.18. Since draft-ietf-httpbis-p7-auth-16 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/186>: "Document | ||||
| HTTP's error-handling philosophy" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/320>: "add advice on | ||||
| defining auth scheme parameters" | ||||
| C.19. Since draft-ietf-httpbis-p7-auth-17 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/314>: "allow | ||||
| unquoted realm parameters" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/321>: "Repeating | ||||
| auth-params" | ||||
| C.20. Since draft-ietf-httpbis-p7-auth-18 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/334>: "recipient | C.1. Since draft-ietf-httpbis-p7-auth-19 | |||
| behavior for new auth parameters" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/342>: "WWW- | None yet. | |||
| Authenticate ABNF slightly ambiguous" | ||||
| Index | Index | |||
| 4 | 4 | |||
| 401 Unauthorized (status code) 9 | 401 Unauthorized (status code) 9 | |||
| 407 Proxy Authentication Required (status code) 9 | 407 Proxy Authentication Required (status code) 9 | |||
| A | A | |||
| auth-param 5 | auth-param 5 | |||
| auth-scheme 5 | auth-scheme 5 | |||
| End of changes. 13 change blocks. | ||||
| 206 lines changed or deleted | 26 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||