| < draft-ietf-extra-imap-list-myrights-05.txt | draft-ietf-extra-imap-list-myrights-06.txt > | |||
|---|---|---|---|---|
| EXTRA K. Murchison | EXTRA K. Murchison | |||
| Internet-Draft B. Gondwana | Internet-Draft B. Gondwana | |||
| Intended status: Standards Track FastMail | Intended status: Standards Track FastMail | |||
| Expires: October 31, 2018 April 29, 2018 | Expires: December 9, 2018 June 7, 2018 | |||
| IMAP4 Extension for Returning MYRIGHTS Information in Extended LIST | IMAP4 Extension for Returning MYRIGHTS Information in Extended LIST | |||
| draft-ietf-extra-imap-list-myrights-05 | draft-ietf-extra-imap-list-myrights-06 | |||
| Abstract | Abstract | |||
| This document defines an extension to the Internet Message Access | This document defines an extension to the Internet Message Access | |||
| Protocol (IMAP) LIST command that allows the client to request the | Protocol (IMAP) LIST command that allows the client to request the | |||
| set of rights that the logged-in user has been granted on mailboxes, | set of rights that the logged-in user has been granted on mailboxes, | |||
| along with other information typically returned by the LIST command. | along with other information typically returned by the LIST command. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 October 31, 2018. | This Internet-Draft will expire on December 9, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 | |||
| 3. MYRIGHTS Return Option to LIST Command . . . . . . . . . . . 2 | 3. MYRIGHTS Return Option to LIST Command . . . . . . . . . . . 3 | |||
| 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 4 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | |||
| 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 4 | 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 4 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 8.1. Registration of IMAP capability LIST-MYRIGHTS . . . . . . 4 | 8.1. Registration of IMAP capability LIST-MYRIGHTS . . . . . . 4 | |||
| 8.2. Registration of LIST-EXTENDED option MYRIGHTS . . . . . . 4 | 8.2. Registration of LIST-EXTENDED option MYRIGHTS . . . . . . 5 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 10. Normative References . . . . . . . . . . . . . . . . . . . . 5 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 5 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 6 | ||||
| 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 6 | publication) . . . . . . . . . . . . . . . . . . . . 6 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 1. Introduction | 1. Introduction | |||
| IMAP [RFC3501] clients typically fetch the set of rights granted on | IMAP [RFC3501] clients typically fetch the set of rights granted on | |||
| mailboxes so they can expose the allowed functionality to the logged- | mailboxes so they can expose the allowed functionality to the logged- | |||
| in user. In order to do that, the client is forced to issue a LIST | in user. In order to do that, the client is forced to issue a LIST | |||
| or LSUB command to list all available mailboxes, followed by a | or LSUB command to list all available mailboxes, followed by a | |||
| MYRIGHTS command for each mailbox found. This document defines an | MYRIGHTS command for each mailbox found. This document defines an | |||
| extension to the to IMAP LIST command that is identified by the | extension to the to IMAP LIST command that is identified by the | |||
| capability string "LIST-MYRIGHTS". The LIST-MYRIGHTS extension | capability string "LIST-MYRIGHTS". The LIST-MYRIGHTS extension | |||
| skipping to change at page 2, line 43 ¶ | skipping to change at page 2, line 46 ¶ | |||
| user has been granted on mailboxes, along with other information | user has been granted on mailboxes, along with other information | |||
| typically returned by the LIST command. | typically returned by the LIST command. | |||
| 2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
| In examples, "C:" indicates lines sent by a client that is connected | In examples, "C:" indicates lines sent by a client that is connected | |||
| to a server. "S:" indicates lines sent by the server to the client. | to a server. "S:" indicates lines sent by the server to the client. | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| [RFC2119]. | 14 [1] [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | ||||
| 3. MYRIGHTS Return Option to LIST Command | 3. MYRIGHTS Return Option to LIST Command | |||
| [RFC4314] defines the MYRIGHTS command which is used by an IMAP | [RFC4314] defines the MYRIGHTS command which is used by an IMAP | |||
| client to determine the set of rights that the logged-in user has | client to determine the set of rights that the logged-in user has | |||
| been granted on a given mailbox. Frequently, a client will have to | been granted on a given mailbox. Frequently, a client will have to | |||
| look up the rights for some or all of the mailboxes returned by the | look up the rights for some or all of the mailboxes returned by the | |||
| LIST command. Doing so in multiple MYRIGHTS commands wastes | LIST command. Doing so in multiple MYRIGHTS commands wastes | |||
| bandwidth and can degrade performance if the client does not pipeline | bandwidth and can degrade performance if the client does not pipeline | |||
| the requests. | the requests. | |||
| This document extends the LIST command with a new return option | This document extends the LIST command with a new "MYRIGHTS" return | |||
| [RFC5258], "MYRIGHTS", which allows the client to request all of the | option [RFC5258], which allows the client to request all of the | |||
| desired information in a single command. For each listable mailbox | desired information in a single command. For each listable mailbox | |||
| matching the list pattern and selection options, the server MUST | matching the list pattern and selection options, the server MUST | |||
| return an untagged LIST response and SHOULD also return an untagged | return an untagged LIST response and SHOULD also return an untagged | |||
| MYRIGHTS response containing the set of rights granted to the logged- | MYRIGHTS response containing the set of rights granted to the logged- | |||
| in user. The ordering of the responses is significant only in that | in user. The ordering of the responses is significant only in that | |||
| the server MUST NOT send a MYRIGHTS response for a given mailbox | the server MUST NOT send a MYRIGHTS response for a given mailbox | |||
| before it sends the LIST response for that mailbox. | before it sends the LIST response for that mailbox. | |||
| If the server is unable to look up the set of rights for a given | If the server is unable to look up the set of rights for a given | |||
| mailbox, it does not send the MYRIGHTS reply for that mailbox. | mailbox, it does not send the MYRIGHTS reply for that mailbox. | |||
| skipping to change at page 4, line 15 ¶ | skipping to change at page 4, line 25 ¶ | |||
| 5. Formal Syntax | 5. Formal Syntax | |||
| The following syntax specification uses the augmented Backus-Naur | The following syntax specification uses the augmented Backus-Naur | |||
| Form (BNF) as described in [RFC5234]. Terms not defined here are | Form (BNF) as described in [RFC5234]. Terms not defined here are | |||
| taken from [RFC5258]. | taken from [RFC5258]. | |||
| return-option =/ "MYRIGHTS" | return-option =/ "MYRIGHTS" | |||
| 6. Security Considerations | 6. Security Considerations | |||
| This extension makes it a bit easier for clients to overload the | In addition to the security described in [RFC4314], this extension | |||
| server by requesting MYRIGHTS information for a large number of | makes it a bit easier for clients to overload the server by | |||
| mailboxes. However, as already noted in the introduction, existing | requesting MYRIGHTS information for a large number of mailboxes. | |||
| clients already try to do that by generating a large number of | However, as already noted in the introduction, existing clients | |||
| MYRIGHTS commands for each mailbox in which they are interested. | already try to do that by generating a large number of MYRIGHTS | |||
| While performing MYRIGHTS information retrieval for big lists of | commands for each mailbox in which they are interested. While | |||
| mailboxes, a server implementation needs to make sure that it can | performing MYRIGHTS information retrieval for big lists of mailboxes, | |||
| still serve other IMAP connections and yield execution to other | a server implementation needs to make sure that it can still serve | |||
| connections, when necessary. | other IMAP connections and yield execution to other connections, when | |||
| necessary. | ||||
| 7. Privacy Considerations | 7. Privacy Considerations | |||
| This specification does not introduce any additional privacy concerns | This specification does not introduce any additional privacy concerns | |||
| beyond those described in [RFC4314]. | beyond those described in [RFC4314]. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1. Registration of IMAP capability LIST-MYRIGHTS | 8.1. Registration of IMAP capability LIST-MYRIGHTS | |||
| skipping to change at page 5, line 4 ¶ | skipping to change at page 5, line 19 ¶ | |||
| imap-list-extended/imap-list-extended.xhtml#imap-list-extended-1>. | imap-list-extended/imap-list-extended.xhtml#imap-list-extended-1>. | |||
| LIST-EXTENDED option name: MYRIGHTS | LIST-EXTENDED option name: MYRIGHTS | |||
| LIST-EXTENDED option type: RETURN | LIST-EXTENDED option type: RETURN | |||
| LIST-EXTENDED option description: Causes the LIST command to return | LIST-EXTENDED option description: Causes the LIST command to return | |||
| MYRIGHTS responses in addition to LIST responses. | MYRIGHTS responses in addition to LIST responses. | |||
| Published specification: RFC XXXX, Section 3 | Published specification: RFC XXXX, Section 3 | |||
| Security considerations: RFC XXXX, Section 6 | Security considerations: RFC XXXX, Section 6 | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Person and email address to contact for further | Person and email address to contact for further | |||
| information: | information: | |||
| Kenneth Murchison <murch@fastmail.com> | Kenneth Murchison <murch@fastmail.com> | |||
| Owner/Change controller: IESG <iesg@ietf.org> | Owner/Change controller: IESG <iesg@ietf.org> | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| This document is based largely on RFC5819. The authors would like to | This document is based largely on [RFC5819]. The authors would like | |||
| thank the authors of that document for providing both inspiration and | to thank the authors of that document for providing both inspiration | |||
| some borrowed text for this document. The authors would also like to | and some borrowed text for this document. The authors would also | |||
| thank the following individuals for contributing their ideas and | like to thank the following individuals for contributing their ideas | |||
| support for writing this specification: Barry Leiba. | and support for writing this specification: Barry Leiba. | |||
| 10. Normative References | 10. References | |||
| 10.1. Normative References | ||||
| [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, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | |||
| 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, | 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, | |||
| <https://www.rfc-editor.org/info/rfc3501>. | <https://www.rfc-editor.org/info/rfc3501>. | |||
| skipping to change at page 6, line 5 ¶ | skipping to change at page 6, line 19 ¶ | |||
| [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, | Specifications: ABNF", STD 68, RFC 5234, | |||
| DOI 10.17487/RFC5234, January 2008, | DOI 10.17487/RFC5234, January 2008, | |||
| <https://www.rfc-editor.org/info/rfc5234>. | <https://www.rfc-editor.org/info/rfc5234>. | |||
| [RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access | [RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access | |||
| Protocol version 4 - LIST Command Extensions", RFC 5258, | Protocol version 4 - LIST Command Extensions", RFC 5258, | |||
| DOI 10.17487/RFC5258, June 2008, | DOI 10.17487/RFC5258, June 2008, | |||
| <https://www.rfc-editor.org/info/rfc5258>. | <https://www.rfc-editor.org/info/rfc5258>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| 10.2. Informative References | ||||
| [RFC5819] Melnikov, A. and T. Sirainen, "IMAP4 Extension for | ||||
| Returning STATUS Information in Extended LIST", RFC 5819, | ||||
| DOI 10.17487/RFC5819, March 2010, | ||||
| <https://www.rfc-editor.org/info/rfc5819>. | ||||
| 10.3. URIs | ||||
| [1] https://tools.ietf.org/html/bcp14 | ||||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) | publication) | |||
| Changes from draft-ietf-extra-imap-list-myrights-05: | ||||
| o Updated Keywords boilerplate. | ||||
| o Referenced security concerns in RFC 4314. | ||||
| o Reworded first sentence in second paragraph of Section 3. | ||||
| o Added informative reference to RFC5819. | ||||
| Changes from draft-ietf-extra-imap-list-myrights-04: | Changes from draft-ietf-extra-imap-list-myrights-04: | |||
| o Added references for "IMAP" and "return option". | o Added references for "IMAP" and "return option". | |||
| Changes from draft-ietf-extra-imap-list-myrights-03: | Changes from draft-ietf-extra-imap-list-myrights-03: | |||
| o Fixed a typo in the Abstract. | o Fixed a typo in the Abstract. | |||
| Changes from draft-ietf-extra-imap-list-myrights-02: | Changes from draft-ietf-extra-imap-list-myrights-02: | |||
| End of changes. 15 change blocks. | ||||
| 26 lines changed or deleted | 59 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||