draft-ietf-regext-epp-eai-00.txt | draft-ietf-regext-epp-eai-01.txt | |||
---|---|---|---|---|
Network Working Group D. Belyavskiy | Network Working Group D. Belyavskiy | |||
Internet-Draft | Internet-Draft | |||
Intended status: Standards Track J. Gould | Intended status: Standards Track J. Gould | |||
Expires: 14 October 2021 VeriSign, Inc. | Expires: 26 January 2022 VeriSign, Inc. | |||
12 April 2021 | 25 July 2021 | |||
Use of Internationalized Email Addresses in EPP protocol | Use of Internationalized Email Addresses in EPP protocol | |||
draft-ietf-regext-epp-eai-00 | draft-ietf-regext-epp-eai-01 | |||
Abstract | Abstract | |||
This document describes an EPP extension that permits usage of | This document describes an EPP extension that permits usage of | |||
Internationalized Email Addresses in the EPP protocol and specifies | Internationalized Email Addresses in the EPP protocol and specifies | |||
the terms when it can be used by EPP clients and servers. The | the terms when it can be used by EPP clients and servers. The | |||
Extensible Provisioning Protocol (EPP), being developed before | Extensible Provisioning Protocol (EPP), being developed before | |||
appearing the standards for Internationalized Email Addresses (EAI), | appearing the standards for Internationalized Email Addresses (EAI), | |||
does not support such email addresses. | does not support such email addresses. | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
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 14 October 2021. | This Internet-Draft will expire on 26 January 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
2. Migrating to Newer Versions of This Extension . . . . . . . . 3 | 2. Migrating to Newer Versions of This Extension . . . . . . . . 3 | |||
3. Email Address Specification . . . . . . . . . . . . . . . . . 3 | 3. Email Address Specification . . . . . . . . . . . . . . . . . 3 | |||
4. Functional Extension . . . . . . . . . . . . . . . . . . . . 4 | 4. Functional Extension . . . . . . . . . . . . . . . . . . . . 4 | |||
5. Internationalized Email Addresses (EAI) Functional | 5. Internationalized Email Addresses (EAI) Functional | |||
Extension . . . . . . . . . . . . . . . . . . . . . . . . 4 | Extension . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
5.1. Scope of Functional Extension . . . . . . . . . . . . . . 4 | 5.1. Scope of Functional Extension . . . . . . . . . . . . . . 4 | |||
5.2. Signaling Client and Server Support . . . . . . . . . . . 5 | 5.2. Signaling Client and Server Support . . . . . . . . . . . 5 | |||
5.3. Functional Extension Behavior . . . . . . . . . . . . . . 5 | 5.3. Functional Extension Behavior . . . . . . . . . . . . . . 5 | |||
5.3.1. EAI Functional Extension Negotiated . . . . . . . . . 5 | 5.3.1. EAI Functional Extension Negotiated . . . . . . . . . 5 | |||
5.3.2. EAI Functional Extension Not Negotiated . . . . . . . 6 | 5.3.2. EAI Functional Extension Not Negotiated . . . . . . . 6 | |||
5.3.3. EAI Placeholder Email Address . . . . . . . . . . . . 7 | ||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 7 | 7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 7 | |||
7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 7 | 7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 8 | |||
8. Implementation Considerations . . . . . . . . . . . . . . . . 8 | 8. Implementation Considerations . . . . . . . . . . . . . . . . 8 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 9 | 9.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 9 | Appendix A. Change History . . . . . . . . . . . . . . . . . . . 10 | |||
A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 9 | A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 10 | |||
A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 9 | A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 10 | |||
A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 10 | A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 10 | |||
A.4. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 10 | A.4. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
[RFC6530] introduced the framework for Internationalized Email | [RFC6530] introduced the framework for Internationalized Email | |||
Addresses. To make such addresses more widely accepted, the changes | Addresses. To make such addresses more widely accepted, the changes | |||
to various protocols need to be introduced. | to various protocols need to be introduced. | |||
This document describes an Extensible Provisioning Protocol (EPP) | This document describes an Extensible Provisioning Protocol (EPP) | |||
extension that permits usage of Internationalized Email Addresses in | extension that permits usage of Internationalized Email Addresses in | |||
the EPP protocol and specifies the terms when it can be used by EPP | the EPP protocol and specifies the terms when it can be used by EPP | |||
skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 19 ¶ | |||
with the same or similar definitions. | with the same or similar definitions. | |||
The email address format is formally defined in Section 3.4.1 of | The email address format is formally defined in Section 3.4.1 of | |||
[RFC5322], which only consists of printable US-ASCII characters for | [RFC5322], which only consists of printable US-ASCII characters for | |||
both the local-part and the domain ABNF rules. In [RFC6531], the | both the local-part and the domain ABNF rules. In [RFC6531], the | |||
extends the Mailbox, Local-part and Domain ABNF rules in [RFC5321] to | extends the Mailbox, Local-part and Domain ABNF rules in [RFC5321] to | |||
support "UTF8-non-ascii", defined in Section 3.1 of [RFC6532], for | support "UTF8-non-ascii", defined in Section 3.1 of [RFC6532], for | |||
the local-part and U-label, defined in Section 2.3.2.1 of [RFC5890], | the local-part and U-label, defined in Section 2.3.2.1 of [RFC5890], | |||
for the domain. By applying the syntax rules of [RFC5322], the EPP | for the domain. By applying the syntax rules of [RFC5322], the EPP | |||
extensions will change from supporting only ASCII characters to | extensions will change from supporting only ASCII characters to | |||
supporting Internationailzed characters in the email address local- | supporting Internationailzed characters both in the email address | |||
part and domain-part. | local-part and domain-part. | |||
4. Functional Extension | 4. Functional Extension | |||
[RFC5730] defines three types of extensions at the protocol, object, | [RFC5730] defines three types of extensions at the protocol, object, | |||
and command-response level, which impact the structure of the EPP | and command-response level, which impact the structure of the EPP | |||
messages. A Functional Extension applies a functional capability to | messages. A Functional Extension applies a functional capability to | |||
an existing set of EPP extensions and properties. The scope of the | an existing set of EPP extensions and properties. The scope of the | |||
applicable EPP extensions and applicable extension properties are | applicable EPP extensions and applicable extension properties are | |||
defined in the Functional Extension along with the requirements for | defined in the Functional Extension along with the requirements for | |||
the servers and clients that support it. The Functional Extension | the servers and clients that support it. The Functional Extension | |||
needs to cover the expected behavior of the supporting client or | needs to cover the expected behavior of the supporting client or | |||
server when interfacing with an unsupporting client or server. | server when interacting with an unsupporting client or server. | |||
Negotiating support for a Functional Extension is handled using the | Negotiating support for a Functional Extension is handled using the | |||
EPP Greeting and EPP Login services. | EPP Greeting and EPP Login services. | |||
5. Internationalized Email Addresses (EAI) Functional Extension | 5. Internationalized Email Addresses (EAI) Functional Extension | |||
5.1. Scope of Functional Extension | 5.1. Scope of Functional Extension | |||
The functional extension applies to all object extensions and | The functional extension applies to all object extensions and | |||
command-response extensions negotiated in the EPP session that | command-response extensions negotiated in the EPP session that | |||
include email address properties. Examples include the | include email address properties. Examples include the | |||
skipping to change at page 5, line 12 ¶ | skipping to change at page 5, line 9 ¶ | |||
registry zones (e.g., top-level domains) authorized for the client in | registry zones (e.g., top-level domains) authorized for the client in | |||
the EPP session apply. There is no concept of a per-client, per- | the EPP session apply. There is no concept of a per-client, per- | |||
zone, per-extension, or per-field setting that is used to indicate | zone, per-extension, or per-field setting that is used to indicate | |||
support for EAI, but instead it's a global setting that applies to | support for EAI, but instead it's a global setting that applies to | |||
the EPP session. | the EPP session. | |||
5.2. Signaling Client and Server Support | 5.2. Signaling Client and Server Support | |||
The client and the server can signal support for the functional | The client and the server can signal support for the functional | |||
extension using a namespace URI in the login and greeting extension | extension using a namespace URI in the login and greeting extension | |||
services. The namespace URI "urn:ietf:params:xml:ns:epp:eai-0.2" is | services respectively. The namespace URI | |||
used to signal support for the functional extension. The client | "urn:ietf:params:xml:ns:epp:eai-0.2" is used to signal support for | |||
includes the namespace URI in an <svcExtension> <extURI> element of | the functional extension. The client includes the namespace URI in | |||
the [RFC5730] <login> Command. The server includes the namespace URI | an <svcExtension> <extURI> element of the [RFC5730] <login> Command. | |||
in an <svcExtension> <extURI> element of the [RFC5730] Greeting. | The server includes the namespace URI in an <svcExtension> <extURI> | |||
element of the [RFC5730] Greeting. | ||||
5.3. Functional Extension Behavior | 5.3. Functional Extension Behavior | |||
5.3.1. EAI Functional Extension Negotiated | 5.3.1. EAI Functional Extension Negotiated | |||
If both client and server have indicated the support of the EAI | If both client and server have indicated the support of the EAI | |||
addresses during the session establishment, it implies possibility to | addresses during the session establishment, it implies possibility to | |||
process the EAI address in any message having an email property | process the EAI address in any message having an email property | |||
during the established EPP session. Below are the server and client | during the established EPP session. Below are the server and client | |||
obligations when the EAI extension has been successfuly negotiated in | obligations when the EAI extension has been successfuly negotiated in | |||
skipping to change at page 5, line 49 ¶ | skipping to change at page 5, line 47 ¶ | |||
* Email address validation based on EAI validation rules defined in | * Email address validation based on EAI validation rules defined in | |||
Section 3 | Section 3 | |||
* Storage of email properties that supports internationalized | * Storage of email properties that supports internationalized | |||
characters. | characters. | |||
* Return EAI compatible addresses for all email properties in the | * Return EAI compatible addresses for all email properties in the | |||
EPP responses. | EPP responses. | |||
The server MUST satisfy the following obligations when THE EAI | The client MUST satisfy the following obligations when THE EAI | |||
extension has been negotiated: | extension has been negotiated: | |||
* Provide EAI compatible addresses for all e-mail properties in the | * Provide EAI compatible addresses for all e-mail properties in the | |||
EPP session negotiated object extensions and command-response | EPP session negotiated object extensions and command-response | |||
extensions. For example the <contact:email> element in [RFC5733] | extensions. For example the <contact:email> element in [RFC5733] | |||
and the <org:email> element in [RFC8543]. | and the <org:email> element in [RFC8543]. | |||
* Provide EAI compatible addresses for all registry zones (e.g., | * Provide EAI compatible addresses for all registry zones (e.g., | |||
top-level domains) authorized for the client in the EPP session. | top-level domains) authorized for the client in the EPP session. | |||
* Accept EAI compatible addresses in the EPP responses for all email | * Accept EAI compatible addresses in the EPP responses for all email | |||
properties in the EPP session negotiated object extensions and | properties in the EPP session negotiated object extensions and | |||
command-response extensions. | command-response extensions. | |||
5.3.2. EAI Functional Extension Not Negotiated | 5.3.2. EAI Functional Extension Not Negotiated | |||
The lack of EAI support can cause data and functional issues, so an | The lack of EAI support can cause data and functional issues, so an | |||
EAI supporting client or server needs to handle cases where the | EAI supporting client or server needs to handle cases where the | |||
opposite party doesn't support EAI. Below are the server and client | opposite party doesn't support EAI. Below are the server and client | |||
obligations when the EAI extension is not negotiated due to the lack | obligations when the EAI extension is not negotiated due to the lack | |||
of support by the opposite party. | of support by the peer. | |||
The EAI supporting server MUST satisfy the following obligations when | The EAI supporting server MUST satisfy the following obligations when | |||
the client does not support the EAI extension: | the client does not support the EAI extension: | |||
* When the email property is required in the EPP extension command, | * When the email property is required in the EPP extension command, | |||
the server SHOULD validate the email property by the client using | the server SHOULD validate the email property sent by the client | |||
the ASCII email validation rules. | using the ASCII email validation rules. | |||
* When the email property is optional according the EPP extension | * When the email property is optional according the EPP extension | |||
command, if the client supplies the email property the server | command, if the client supplies the email property the server | |||
SHOULD validate the email property using the ASCII email | SHOULD validate the email property using the ASCII email | |||
validation rules. | validation rules. | |||
* When the email property is required in the EPP extension response, | * When the email property is required in the EPP extension response, | |||
the server MUST validate whether the email property is an EAI | the server MUST validate whether the email property is an EAI | |||
address and if so return the predefined placeholder email TBD and | address and if so return the predefined placeholder email (see | |||
otherwise return the email property that has been set. | below) and otherwise return the email property that has been set. | |||
* When the email property is optional in the EPP extension response, | * When the email property is optional in the EPP extension response, | |||
the server MUST validate whether the email property is an EAI | the server MUST validate whether the email property is an EAI | |||
address and if so don't return the email property in the response | address and if so don't return the email property in the response | |||
and otherwise return the email property that has been set based on | and otherwise return the email property that has been set based on | |||
server policy. | server policy. | |||
The EAI supporting client MUST satisfy the following obligations when | The EAI supporting client MUST satisfy the following obligations when | |||
the server does not support the EAI extension: | the server does not support the EAI extension: | |||
* When the email property is required in the EPP extension command | * When the email property is required in the EPP extension command | |||
and the email property is an EAI address with no alternative ASCII | and the email property is an EAI address with no alternative ASCII | |||
address, the client MUST provide the predefined placeholder email | address, the client MUST provide the predefined placeholder email | |||
address TBD. | address (see below). | |||
* When the email property is optional in the EPP extension command | * When the email property is optional in the EPP extension command | |||
and the email property is an EAI address with no alternative ASCII | and the email property is an EAI address with no alternative ASCII | |||
address, the client SHOULD omit the email property. | address, the client SHOULD omit the email property. | |||
5.3.3. EAI Placeholder Email Address | ||||
A valid email value needs to be provided to a non-EAI supporting | ||||
client or server to satisfy a required email property when all that | ||||
is available is an EAI value. To satisfy this requirement, a | ||||
predefined placeholder email needs to be selected that meets the | ||||
requirements: | ||||
* A syntactically valid email address to pass client or server | ||||
validation logic. | ||||
* A non-EAI email address since the client or server doesn't support | ||||
EAI email addresses. | ||||
* A single value that can indicate the lack of EAI support to the | ||||
client or server. | ||||
* An email address that is blackholed and never delivered. | ||||
* Use of the email address will not cause operational issues. | ||||
RFC 7535 [RFC7535] defines a blackholed domain name with | ||||
EMPTY.AS112.ARPA, which can be leveraged for the EAI predefined | ||||
placeholder email. The proposal is to define the predefined | ||||
placeholder email value as EAI@EMPTY.AS112.ARPA. | ||||
6. Security Considerations | 6. Security Considerations | |||
Registries SHOULD validate the domain names in the provided email | Registries SHOULD validate the domain names in the provided email | |||
addresses. This can be done by validating all code points according | addresses. This can be done by validating all code points according | |||
to IDNA2008 [RFC5892]. | to IDNA2008 [RFC5892]. | |||
7. IANA Considerations | 7. IANA Considerations | |||
7.1. XML Namespace | 7.1. XML Namespace | |||
skipping to change at page 9, line 37 ¶ | skipping to change at page 10, line 5 ¶ | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.27487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.27487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
9.2. Informative References | 9.2. Informative References | |||
[RFC5892] Faltstrom, P., Ed., "The Unicode Code Points and | [RFC5892] Faltstrom, P., Ed., "The Unicode Code Points and | |||
Internationalized Domain Names for Applications (IDNA)", | Internationalized Domain Names for Applications (IDNA)", | |||
RFC 5892, DOI 10.27487/RFC5892, August 2010, | RFC 5892, DOI 10.27487/RFC5892, August 2010, | |||
<https://www.rfc-editor.org/info/rfc5892>. | <https://www.rfc-editor.org/info/rfc5892>. | |||
[RFC7535] Abley, J., Dickson, B., Kumari, W., and G. Michaelson, | ||||
"AS112 Redirection Using DNAME", RFC 7535, | ||||
DOI 10.17487/RFC7535, May 2015, | ||||
<https://www.rfc-editor.org/info/rfc7535>. | ||||
[RFC8543] Zhou, L., Kong, N., Yao, J., Gould, J., and G. Zhou, | [RFC8543] Zhou, L., Kong, N., Yao, J., Gould, J., and G. Zhou, | |||
"Extensible Provisioning Protocol (EPP) Organization | "Extensible Provisioning Protocol (EPP) Organization | |||
Mapping", RFC 8543, DOI 10.27487/RFC8543, March 2019, | Mapping", RFC 8543, DOI 10.27487/RFC8543, March 2019, | |||
<https://www.rfc-editor.org/info/rfc8543>. | <https://www.rfc-editor.org/info/rfc8543>. | |||
Appendix A. Change History | Appendix A. Change History | |||
A.1. Change from 00 to 01 | A.1. Change from 00 to 01 | |||
1. Changed from update of RFC 5733 to use the "Placeholder Text and | 1. Changed from update of RFC 5733 to use the "Placeholder Text and | |||
End of changes. 17 change blocks. | ||||
24 lines changed or deleted | 57 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/ |