Use of Internationalized Email Addresses in EPP protocol
draft-belyavskiy-epp-eai-01

The information below is for an old version of the document
Document Type Active Internet-Draft (individual)
Author Dmitry Belyavsky 
Last updated 2020-10-11
Replaced by draft-ietf-regext-epp-eai, draft-ietf-regext-epp-eai, draft-ietf-regext-epp-eai, draft-ietf-regext-epp-eai, draft-ietf-regext-epp-eai, draft-ietf-regext-epp-eai
Stream (None)
Formats plain text xml pdf htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                      D. Belyavskiy
Internet-Draft                                          October 11, 2020
Intended status: Standards Track
Expires: April 14, 2021

        Use of Internationalized Email Addresses in EPP protocol
                      draft-belyavskiy-epp-eai-01

Abstract

   This document permits usage of Internationalized Email Addresses in
   the EPP protocol.  The Extensible Provisioning Protocol (EPP), being
   developed before appearing the standards for Internationalized Email
   Addresses (EAI), does not support such email addressed.  This
   document describes an EPP extension that allows EAI addresses to be
   used in contact mapping in the EPP protocol.

   TO BE REMOVED on turning to RFC: The document is edited in the
   dedicated github repo [1].  Please send your submissions via GitHub.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 14, 2021.

Copyright Notice

   Copyright (c) 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect

Belyavskiy               Expires April 14, 2021                 [Page 1]
Internet-Draft              Use of EAI in EPP               October 2020

   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Conventions Used in This Document . . . . . . . . . . . .   3
   2.  Migrating to Newer Versions of This Extension . . . . . . . .   3
   3.  Object Attributes . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  EAI email address . . . . . . . . . . . . . . . . . . . .   3
     3.2.  [EAI-DUMMY] email value . . . . . . . . . . . . . . . . .   4
   4.  Email Address specification . . . . . . . . . . . . . . . . .   4
   5.  EPP commands mapping  . . . . . . . . . . . . . . . . . . . .   4
     5.1.  EPP <create> command  . . . . . . . . . . . . . . . . . .   4
     5.2.  EPP <update> command  . . . . . . . . . . . . . . . . . .   5
     5.3.  EPP <info> command  . . . . . . . . . . . . . . . . . . .   6
   6.  Formal syntax . . . . . . . . . . . . . . . . . . . . . . . .   8
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  10
     8.1.  XML Namespace . . . . . . . . . . . . . . . . . . . . . .  10
     8.2.  EPP Extension Registry  . . . . . . . . . . . . . . . . .  10
   9.  Implementation Considerations . . . . . . . . . . . . . . . .  10
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  11
     10.2.  Informative References . . . . . . . . . . . . . . . . .  11
     10.3.  URIs . . . . . . . . . . . . . . . . . . . . . . . . . .  12
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  12

1.  Introduction

   RFC 6530 [RFC6530] introduced the framework for Internationalized
   Email Addresses.  To make such addresses more widely accepted, the
   changes to various protocols need to be introduced.

   This document describes an Extensible Provisioning Protocol (EPP)
   extension for using the Email Addresses Internationalized (EAI) in
   contact object mapping descibed in RFC 5733 [RFC5733].

   The Extensible Provisioning Protocol (EPP) specified in RFC 5730
   [RFC5730] is a base document for object management operations and an
   extensible framework that maps protocol operations to objects.  The
   specifics of various objects managed via EPP is described in separate
   documents, RFC 5731 [RFC5731], RFC 5732 [RFC5732], RFC 5733
   [RFC5733], and RFC 5734 [RFC5734].

Belyavskiy               Expires April 14, 2021                 [Page 2]
Internet-Draft              Use of EAI in EPP               October 2020

   RFC 5733 [RFC5733] describes an Extensible Provisioning Protocol
   (EPP) mapping for the provisioning and management of individual or
   organizational social information identifiers (known as "contacts")
   stored in a shared central repository.  This document is the only one
   refering to Email address as a property of a managed object.

   RFC 3735 [RFC3735] provides a guideline to extend the EPP protocol
   for various purposes.

1.1.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   In examples, "C:" represents lines sent by a protocol client and "S:"
   represents lines returned by a protocol server.  In examples,
   indentation and whitespace are provided only to illustrate element
   relationships and are not a required feature of this protocol.

   "eppEAI-1.0" is used as an abbreviation for
   "urn:ietf:params:xml:ns:epp:eppEAI-1.0".  The XML namespace prefix
   "eppEAI" is used, but implementations MUST NOT depend on it.
   Instead, they are to employ a proper namespace-aware XML parser and
   serializer to interpret and output the XML documents.

2.  Migrating to Newer Versions of This Extension

   Servers that implement this extension SHOULD provide a way for
   clients to progressively update their implementations when a new
   version of the extension is deployed.  A newer version of the
   extension is expected to use an XML namespace with a higher version
   number than the prior versions.

3.  Object Attributes

   This extension adds additional elements to RFC 5733 commands and adds
   a predefined value to indicate usage of the EAI in the object data.
   Only those new elements and values are described here.

3.1.  EAI email address

   An address used by <eppEAI:email> element represents an email address
   matching the specification in RFC 6530 [RFC6530].

   Example EAI email address:

Belyavskiy               Expires April 14, 2021                 [Page 3]
Internet-Draft              Use of EAI in EPP               October 2020

   <eppEAI:email>
   someaddress@example.com
   </eppEAI:email>

3.2.  [EAI-DUMMY] email value

   When the RFC 5733 <email> element contains the predefined value of
   [EAI-DUMMY], the <eppEAI:email> extension MUST be present.  The value
   in the <eppEAI:email> MUST be used as the contact object email
   attribute.

4.  Email Address specification

   Email address syntax is defined in in RFC 6530 [RFC6530].  This
   mapping does not prescribe minimum or maximum lengths for character
   strings used to represent email addresses.

5.  EPP commands mapping

   The proposed extension modifies mapping for the <contact:create>,
   <contact:update>, and <contact:info> commands.

5.1.  EPP <create> command

   Example <create> command:

Belyavskiy               Expires April 14, 2021                 [Page 4]
Internet-Draft              Use of EAI in EPP               October 2020

      C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
      C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
      C:  <command>
      C:    <create>
      C:      <contact:create
      C:       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
      C:        <contact:id>sh8013</contact:id>
      C:        <contact:postalInfo type="int">
      C:          <contact:name>John Doe</contact:name>
      C:          <contact:org>Example Inc.</contact:org>
      C:          <contact:addr>
      C:            <contact:street>123 Example Dr.</contact:street>
      C:            <contact:street>Suite 100</contact:street>
      C:            <contact:city>Dulles</contact:city>
      C:            <contact:sp>VA</contact:sp>
      C:            <contact:pc>20166-6503</contact:pc>
      C:            <contact:cc>US</contact:cc>
      C:          </contact:addr>
      C:        </contact:postalInfo>
      C:        <contact:voice x="1234">+1.7035555555</contact:voice>
      C:        <contact:fax>+1.7035555556</contact:fax>
      C:        <contact:email>[EAI-DUMMY]</contact:email>
      C:        <contact:authInfo>
      C:          <contact:pw>2fooBAR</contact:pw>
      C:        </contact:authInfo>
      C:        <contact:disclose flag="0">
      C:          <contact:voice/>
      C:          <contact:email/>
      C:        </contact:disclose>
      C:      </contact:create>
      C:    <extension>
      C:      <eppEAI:eppEAI
      C:        xmlns:eppEAI=
      C:          "urn:ietf:params:xml:ns:epp:eppEAI-1.0">
      C:        <eppEAI:email>someaddress@example.com</eppEAI:email>
      C:      </eppEAI:eppEAI>
      C:    </extension>
      C:    </create>
      C:    <clTRID>ABC-12345</clTRID>
      C:  </command>
      C:</epp>

5.2.  EPP <update> command

   When executing the <update> command, there are multiple possibilities
   of changing the email address.

Belyavskiy               Expires April 14, 2021                 [Page 5]
Internet-Draft              Use of EAI in EPP               October 2020

      No mentioning of <email> element means the email address of the
      contact is not changed.  The <eppEAI> extension MUST not be
      present.

      When the [EAI-DUMMY] of <email> is used, the <eppEAI> extension
      MUST be present and contain a valid email address.

      When the value not equal to [EAI-DUMMY] of <email> is used, the
      <eppEAI> extension MUST NOT be present.

   Example <update> command:

      C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
      C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
      C:  <command>
      C:    <update>
      C:      <contact:update
      C:       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
      C:        <contact:id>sh8013</contact:id>
      C:        <contact:email>[EAI-DUMMY]</contact:email>
      C:      </contact:update>
      C:    <extension>
      C:      <eppEAI:eppEAI
      C:        xmlns:eppEAI=
      C:          "urn:ietf:params:xml:ns:epp:eppEAI-1.0">
      C:        <eppEAI:email>someaddress@example.net</eppEAI:email>
      C:      </eppEAI:eppEAI>
      C:    </extension>
      C:    </update>
      C:    <clTRID>ABC-12345</clTRID>
      C:  </command>
      C:</epp>

5.3.  EPP <info> command

   When the requested contact object was created using the arbitrary
   value for the email attribute, the server should return that value
   for the email attribute.

   When the requested contact object was created using the [EAI-DUMMY]
   value for the email attribute, the server should return the [EAI-
   DUMMY] value for the email attribute and the corresponding email
   value in the <eppEAI:email< attribute.

   Example <info> command for the authorized client:

      S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
      S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

Belyavskiy               Expires April 14, 2021                 [Page 6]
Internet-Draft              Use of EAI in EPP               October 2020

      S:  <response>
      S:    <result code="1000">
      S:      <msg>Command completed successfully</msg>
      S:    </result>
      S:    <resData>
      S:      <contact:infData
      S:       xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
      S:        <contact:id>sh8013</contact:id>
      S:        <contact:roid>SH8013-REP</contact:roid>
      S:        <contact:status s="linked"/>
      S:        <contact:status s="clientDeleteProhibited"/>
      S:        <contact:postalInfo type="int">
      S:          <contact:name>John Doe</contact:name>
      S:          <contact:org>Example Inc.</contact:org>
      S:          <contact:addr>
      S:            <contact:street>123 Example Dr.</contact:street>
      S:            <contact:street>Suite 100</contact:street>
      S:            <contact:city>Dulles</contact:city>
      S:            <contact:sp>VA</contact:sp>
      S:            <contact:pc>20166-6503</contact:pc>
      S:            <contact:cc>US</contact:cc>
      S:          </contact:addr>
      S:        </contact:postalInfo>
      S:        <contact:voice x="1234">+1.7035555555</contact:voice>
      S:        <contact:fax>+1.7035555556</contact:fax>
      S:        <contact:email>jdoe@example.com</contact:email>
      S:        <contact:clID>ClientY</contact:clID>
      S:        <contact:crID>ClientX</contact:crID>
      S:        <contact:crDate>1999-04-03T22:00:00.0Z</contact:crDate>
      S:        <contact:upID>ClientX</contact:upID>
      S:        <contact:upDate>1999-12-03T09:00:00.0Z</contact:upDate>
      S:        <contact:trDate>2000-04-08T09:00:00.0Z</contact:trDate>
      S:        <contact:authInfo>
      S:          <contact:pw>2fooBAR</contact:pw>
      S:        </contact:authInfo>
      S:        <contact:disclose flag="0">
      S:          <contact:voice/>
      S:          <contact:email/>
      S:        </contact:disclose>
      S:      </contact:infData>
      S:    </resData>
      S:    <extension>
      S:      <eppEAI:eppEAI
      S:        xmlns:eppEAI=
      S:          "urn:ietf:params:xml:ns:epp:eppEAI-1.0">
      S:        <eppEAI:email>someaddress@example.com</eppEAI:email>
      S:      </eppEAI:eppEAI>
      S:    </extension>

Belyavskiy               Expires April 14, 2021                 [Page 7]
Internet-Draft              Use of EAI in EPP               October 2020

      S:    <trID>
      S:      <clTRID>ABC-12345</clTRID>
      S:      <svTRID>54322-XYZ</svTRID>
      S:    </trID>
      S:  </response>
      S:</epp>

6.  Formal syntax

   The Internationalized Email Addresses in EPP protocol schema is
   presented here.

   The formal syntax shown here is a complete XML Schema representation
   of the object mapping suitable for automated validation of EPP XML
   instances.  The <CODE BEGINS> and <CODE ENDS> tags are not part of
   the XML Schema; they are used to note the beginning and ending of the
   XML Schema for URI registration purposes.

Belyavskiy               Expires April 14, 2021                 [Page 8]
Internet-Draft              Use of EAI in EPP               October 2020

      <CODE BEGINS>
      <?xml version="1.0" encoding="UTF-8"?>
      <schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns:eppEAI="urn:ietf:params:xml:ns:epp:eppEAI-1.0"
        targetNamespace="urn:ietf:params:xml:ns:epp:eppEAI-1.0"
        elementFormDefault="qualified">
        <!--
        Import common element types.
        -->
        <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
        <import namespace="urn:ietf:params:xml:ns:epp-1.0" />
        <annotation>
          <documentation>Use of Internationalized Email Addresses in
   Extensible Provisioning Protocol v1.0 Schema.</documentation>
        </annotation>
        <!-- Child elements found in EPP commands. -->
        <element name="create" type="eppEAI:eppEAIType" />
        <element name="update" type="eppEAI:eppEAIType" />
        <!--
          The eppEAIType definition
         -->
        <complexType name="eppEAIType">
          <sequence>
            <element name="email"
              type="eppEAI:email" minOccurs="1" maxOccurs = "1" />
          </sequence>
        </complexType>
        <simpleType name="eppEAI:email">
          <restriction base="token" />
        </simpleType>

        <!--
        Child response elements.
        -->
        <element name="infData" type="eppEAI:eppEAIType"/>
      </schema>
      <CODE ENDS>

7.  Security Considerations

   Registries SHOULD validate the validity of the domain names in the
   provided email addresses.  This can be done by validating all code
   points according to IDNA2008 [RFC5892].

Belyavskiy               Expires April 14, 2021                 [Page 9]
Internet-Draft              Use of EAI in EPP               October 2020

8.  IANA Considerations

8.1.  XML Namespace

   This document uses URNs to describe XML namespaces and XML schemas
   conforming to a registry mechanism described in RFC 3688 [RFC3688].
   The following URI assignment should be made by IANA:

   Registration request for the eppEAI namespace:

      URI:  urn:ietf:params:xml:ns:epp:eppEAI-1.0
      Registrant Contact:  IESG
      XML:  None.  Namespace URIs do not represent an XML specification.

      Registration request for the eppEAI XML Schema:

      URI:  urn:ietf:params:xml:schema:epp:eppEAI-1.0
      Registrant Contact:  IESG
      XML:  See the "Formal Syntax" section of this document.

8.2.  EPP Extension Registry

   The EPP extension described in this document should be registered by
   IANA in the "Extensions for the Extensible Provisioning Protocol
   (EPP)" registry described in RFC 7451 [RFC7451].  The details of the
   registration are as follows:

      Name of Extension: Use of Internationalized Email Addresses
                         in EPP protocol
      Document status:  Standards Track
      Reference:  TBA
      Registrant Name and Email Address:  IESG, <iesg@ietf.org>
      Top-Level Domains(TLDs):  Any
      IPR Disclosure:  None
      Status:  Active
      Notes:  None

9.  Implementation Considerations

   For the sake of uniform syntax on the client side, it is RECOMMENDED
   to registries to allow any valid address, including the ASCII-only,
   in the <eppEAI:email> element.

   Registries MAY apply extra limitation to the email address syntax
   (e.g. the addresses can be limited to Left-to-Right scripts).  These
   limitations are out of scope of this document.

Belyavskiy               Expires April 14, 2021                [Page 10]
Internet-Draft              Use of EAI in EPP               October 2020

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC3735]  Hollenbeck, S., "Guidelines for Extending the Extensible
              Provisioning Protocol (EPP)", RFC 3735,
              DOI 10.17487/RFC3735, March 2004,
              <https://www.rfc-editor.org/info/rfc3735>.

   [RFC5733]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Contact Mapping", STD 69, RFC 5733, DOI 10.17487/RFC5733,
              August 2009, <https://www.rfc-editor.org/info/rfc5733>.

   [RFC6530]  Klensin, J. and Y. Ko, "Overview and Framework for
              Internationalized Email", RFC 6530, DOI 10.17487/RFC6530,
              February 2012, <https://www.rfc-editor.org/info/rfc6530>.

   [RFC7451]  Hollenbeck, S., "Extension Registry for the Extensible
              Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451,
              February 2015, <https://www.rfc-editor.org/info/rfc7451>.

   [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

   [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
              STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,
              <https://www.rfc-editor.org/info/rfc5730>.

   [RFC5731]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Domain Name Mapping", STD 69, RFC 5731,
              DOI 10.17487/RFC5731, August 2009,
              <https://www.rfc-editor.org/info/rfc5731>.

   [RFC5732]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Host Mapping", STD 69, RFC 5732, DOI 10.17487/RFC5732,
              August 2009, <https://www.rfc-editor.org/info/rfc5732>.

Belyavskiy               Expires April 14, 2021                [Page 11]
Internet-Draft              Use of EAI in EPP               October 2020

   [RFC5734]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Transport over TCP", STD 69, RFC 5734,
              DOI 10.17487/RFC5734, August 2009,
              <https://www.rfc-editor.org/info/rfc5734>.

   [RFC5892]  Faltstrom, P., Ed., "The Unicode Code Points and
              Internationalized Domain Names for Applications (IDNA)",
              RFC 5892, DOI 10.17487/RFC5892, August 2010,
              <https://www.rfc-editor.org/info/rfc5892>.

10.3.  URIs

   [1] https://github.com/beldmit/eppeai

Author's Address

   Dmitry Belyavskiy
   8 marta st.
   Moscow
   Russian Federation

   Phone: +7 916 262 5593
   Email: beldmit@gmail.com

Belyavskiy               Expires April 14, 2021                [Page 12]