< draft-ietf-xmpp-6122bis-19.txt   draft-ietf-xmpp-6122bis-20.txt >
XMPP P. Saint-Andre XMPP P. Saint-Andre
Internet-Draft &yet Internet-Draft &yet
Obsoletes: 6122 (if approved) March 9, 2015 Obsoletes: 6122 (if approved) March 23, 2015
Intended status: Standards Track Intended status: Standards Track
Expires: September 10, 2015 Expires: September 24, 2015
Extensible Messaging and Presence Protocol (XMPP): Address Format Extensible Messaging and Presence Protocol (XMPP): Address Format
draft-ietf-xmpp-6122bis-19 draft-ietf-xmpp-6122bis-20
Abstract Abstract
This document defines the address format for the Extensible Messaging This document defines the address format for the Extensible Messaging
and Presence Protocol (XMPP), including support for code points and Presence Protocol (XMPP), including support for code points
outside the ASCII range. This document obsoletes RFC 6122. outside the ASCII range. This document obsoletes RFC 6122.
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
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 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 10, 2015. This Internet-Draft will expire on September 24, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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 7, line 40 skipping to change at page 7, line 40
The localpart of a JID is an instance of the UsernameCaseMapped The localpart of a JID is an instance of the UsernameCaseMapped
profile of the PRECIS IdentifierClass, which is specified in profile of the PRECIS IdentifierClass, which is specified in
[I-D.ietf-precis-saslprepbis]. The rules and considerations provided [I-D.ietf-precis-saslprepbis]. The rules and considerations provided
in that specification MUST be applied to XMPP localparts. in that specification MUST be applied to XMPP localparts.
Implementation Note: XMPP uses the Simple Authentication and Implementation Note: XMPP uses the Simple Authentication and
Security Layer (SASL) [RFC4422] for authentication. At the time Security Layer (SASL) [RFC4422] for authentication. At the time
of this writing, some SASL mechanisms use SASLprep [RFC4013] for of this writing, some SASL mechanisms use SASLprep [RFC4013] for
handling of usernames and passwords; in the future these SASL handling of usernames and passwords; in the future these SASL
mechanisms will likely transition to the use of PRECIS-based mechanisms will likely transition to the use of PRECIS-based
handling rules as specified in [I-D.ietf-precis-saslprepbis]. handling rules as specified in [I-D.ietf-precis-saslprepbis]. For
a detailed discussion about the implications of that transition
(including the potential need to modify or remove certain
characters in the underlying account database), see both
Section 6.1 and Appendix A of [I-D.ietf-precis-saslprepbis].
3.3.1. Further Excluded Characters 3.3.1. Further Excluded Characters
In XMPP, the following characters are explicitly disallowed in XMPP In XMPP, the following characters are explicitly disallowed in XMPP
localparts even though they are allowed by the IdentifierClass base localparts even though they are allowed by the IdentifierClass base
class and the UsernameCaseMapped profile: class and the UsernameCaseMapped profile:
U+0022 (QUOTATION MARK), i.e., " U+0022 (QUOTATION MARK), i.e., "
U+0026 (AMPERSAND), i.e., & U+0026 (AMPERSAND), i.e., &
U+0027 (APOSTROPHE), i.e., ' U+0027 (APOSTROPHE), i.e., '
U+002F (SOLIDUS), i.e., / U+002F (SOLIDUS), i.e., /
U+003A (COLON), i.e., : U+003A (COLON), i.e., :
U+003C (LESS-THAN SIGN), i.e., < U+003C (LESS-THAN SIGN), i.e., <
U+003E (GREATER-THAN SIGN), i.e., > U+003E (GREATER-THAN SIGN), i.e., >
U+0040 (COMMERCIAL AT), i.e., @ U+0040 (COMMERCIAL AT), i.e., @
skipping to change at page 14, line 17 skipping to change at page 14, line 17
A server is not responsible for enforcing the rules when the protocol A server is not responsible for enforcing the rules when the protocol
elements are intended for communication among other entities, elements are intended for communication among other entities,
typically within the payload of a stanza that the server is merely typically within the payload of a stanza that the server is merely
routing to another domain or delivering to a local entity. Two routing to another domain or delivering to a local entity. Two
examples are the 'initiator' attribute in the Jingle extension examples are the 'initiator' attribute in the Jingle extension
[XEP-0166] (which is a JID slot used for client-to-client [XEP-0166] (which is a JID slot used for client-to-client
coordination of multimedia sessions) and the 'nick' attribute in the coordination of multimedia sessions) and the 'nick' attribute in the
Multi-User Chat extension [XEP-0045] (which is a resourcepart slot Multi-User Chat extension [XEP-0045] (which is a resourcepart slot
used for administrative purposes in the context of XMPP chatrooms). used for administrative purposes in the context of XMPP chatrooms).
In such cases, clients SHOULD enforce the rules themselves and not In such cases, the entities involved SHOULD enforce the rules
depend on the server to do so, and client implementers need to themselves and not depend on the server to do so, and client
understand that not enforcing the rules can lead to a degraded user implementers need to understand that not enforcing the rules can lead
experience or to security vulnerabilities. However, when an add-on to a degraded user experience or to security vulnerabilities.
service (e.g., a multi-user chat service) handles a stanza directly, However, when an add-on service (e.g., a multi-user chat service)
it ought to enforce the rules as well, as defined in the relevant handles a stanza directly, it ought to enforce the rules as well, as
specification for that type of service. defined in the relevant specification for that type of service.
This document does not provide an exhaustive list of JID slots, This document does not provide an exhaustive list of JID slots,
localpart slots, or resourcepart slots. However, implementers of localpart slots, or resourcepart slots. However, implementers of
core XMPP servers are advised to consider as JID slots at least the core XMPP servers are advised to consider as JID slots at least the
following elements and attributes when they are handled directly or following elements and attributes when they are handled directly or
used for purposes of routing to another domain or delivering to a used for purposes of routing to another domain or delivering to a
local entity: local entity:
o The 'from' and 'to' stream attributes and the 'from' and 'to' o The 'from' and 'to' stream attributes and the 'from' and 'to'
stanza attributes [RFC6120]. stanza attributes [RFC6120].
skipping to change at page 18, line 31 skipping to change at page 18, line 31
implement consistent policies regarding the registration, storage, implement consistent policies regarding the registration, storage,
and presentation of visually similar characters in XMPP systems. In and presentation of visually similar characters in XMPP systems. In
particular, service providers and software implementers are strongly particular, service providers and software implementers are strongly
encouraged to apply the policies recommended in encouraged to apply the policies recommended in
[I-D.ietf-precis-framework]. [I-D.ietf-precis-framework].
8. Conformance Requirements 8. Conformance Requirements
This section describes a protocol feature set that summarizes the This section describes a protocol feature set that summarizes the
conformance requirements of this specification (similar feature sets conformance requirements of this specification (similar feature sets
are provided for XMPP in [RFC6120] and [RFC6121]). This feature set are provided for XMPP in [RFC6120] and [RFC6121]). The summary is
purely informational and the conformance keywords of [RFC2119] as
used here are intended only to briefly describe the referenced
normative text from the body of this specification. This feature set
is appropriate for use in software certification, interoperability is appropriate for use in software certification, interoperability
testing, and implementation reports. For each feature, this section testing, and implementation reports. For each feature, this section
provides the following information: provides the following information:
o A human-readable name o A human-readable name
o An informational description o An informational description
o A reference to the particular section of this document that o A reference to the particular section of this document that
normatively defines the feature normatively defines the feature
skipping to change at page 25, line 13 skipping to change at page 25, line 13
use of NFKC). use of NFKC).
o Specified the use of Unicode Normalization Form C (instead of o Specified the use of Unicode Normalization Form C (instead of
Unicode Normalization Form KC as specified in the Nodeprep and Unicode Normalization Form KC as specified in the Nodeprep and
Resourceprep profiles of Stringprep). Resourceprep profiles of Stringprep).
o Specified that servers must enforce the address formatting rules. o Specified that servers must enforce the address formatting rules.
Appendix B. Acknowledgements Appendix B. Acknowledgements
Thanks to Dave Cridland, Miguel Garcia, Joe Hildebrand, Jonathan Thanks to Ben Campbell, Dave Cridland, Miguel Garcia, Joe Hildebrand,
Lennox, Matt Miller, and Florian Zeitz for their feedback. Jonathan Lennox, Matt Miller, and Florian Zeitz for their feedback.
Peter Saint-Andre wishes to acknowledge Cisco Systems, Inc., for Peter Saint-Andre wishes to acknowledge Cisco Systems, Inc., for
employing him during his work on earlier versions of this document. employing him during his work on earlier versions of this document.
Author's Address Author's Address
Peter Saint-Andre Peter Saint-Andre
&yet &yet
Email: peter@andyet.com Email: peter@andyet.com
 End of changes. 10 change blocks. 
16 lines changed or deleted 23 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/