summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8544.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8544.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8544.txt')
-rw-r--r--doc/rfc/rfc8544.txt1235
1 files changed, 1235 insertions, 0 deletions
diff --git a/doc/rfc/rfc8544.txt b/doc/rfc/rfc8544.txt
new file mode 100644
index 0000000..d3bec94
--- /dev/null
+++ b/doc/rfc/rfc8544.txt
@@ -0,0 +1,1235 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) L. Zhou
+Request for Comments: 8544 CNNIC
+Category: Standards Track N. Kong
+ISSN: 2070-1721 Consultant
+ J. Wei
+ J. Yao
+ CNNIC
+ J. Gould
+ VeriSign, Inc.
+ April 2019
+
+
+ Organization Extension for the Extensible Provisioning Protocol (EPP)
+
+Abstract
+
+ This document describes an extension to Extensible Provisioning
+ Protocol (EPP) object mappings that is designed to support assigning
+ an organization to any existing object (domain, host, contact) as
+ well as any future objects.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc8544.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 1]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+Copyright Notice
+
+ Copyright (c) 2019 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
+ 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 . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
+ 3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 3
+ 3.1. Organization Identifier . . . . . . . . . . . . . . . . . 4
+ 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 4
+ 4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 4
+ 4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4
+ 4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 4
+ 4.1.3. EPP <transfer> Query Command . . . . . . . . . . . . 8
+ 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 8
+ 4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 8
+ 4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 10
+ 4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 10
+ 4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11
+ 4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11
+ 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15
+ 6. Internationalization Considerations . . . . . . . . . . . . . 18
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
+ 7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 18
+ 7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 19
+ 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19
+ 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
+ 9.1. Normative References . . . . . . . . . . . . . . . . . . 19
+ 9.2. Informative References . . . . . . . . . . . . . . . . . 21
+ Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 2]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+1. Introduction
+
+ There are many entities, such as registrars, resellers, DNS service
+ operators, and privacy proxies, involved in the domain registration
+ business. These kinds of entities are supported in the Extensible
+ Provisioning Protocol (EPP) by the "organization" entities in
+ [RFC8543]. This document provides a way to associate any EPP object
+ such as domain names in [RFC5731], hosts in [RFC5732], and contacts
+ in [RFC5733] to "organization" entities in [RFC8543]. The examples
+ provided in this document are used for the domain object for
+ illustration purposes. The host and contact object could be extended
+ in the same way as the domain object.
+
+ Organization object identifiers, defined in [RFC8543], MUST be known
+ to the server before the organization object can be associated with
+ the EPP object.
+
+ This document is specified using XML 1.0 as described in
+ [W3C.REC-xml-20081126] and XML Schema notation as described in
+ [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028].
+
+2. 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. Indentation and
+ white space in examples are provided only to illustrate element
+ relationships and are not a required feature of this specification.
+
+ XML is case sensitive. Unless stated otherwise, XML specifications
+ and examples provided in this document MUST be interpreted in the
+ character case presented.
+
+ The XML namespace prefix "orgext" is used for the namespace
+ "urn:ietf:params:xml:ns:epp:orgext-1.0", but implementations MUST NOT
+ depend on it; instead, they should employ a proper namespace-aware
+ XML parser and serializer to interpret and output the XML documents.
+
+3. Object Attributes
+
+ This extension adds additional elements to EPP object mappings such
+ as the EPP domain name mapping [RFC5731]. Only the new elements are
+ described here.
+
+
+
+Zhou, et al. Standards Track [Page 3]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+3.1. Organization Identifier
+
+ The organization identifier provides the ID of an organization. Its
+ corresponding element is <orgext:id>, which refers to the <org:id>
+ element defined in [RFC8543]. All organization objects are
+ identified by a server-unique identifier. A "role" attribute is used
+ to represent the relationship that the organization has to the EPP
+ object. Any given object MUST have at most one associated
+ organization ID for any given role value.
+
+4. EPP Command Mapping
+
+ A detailed description of the EPP syntax and semantics can be found
+ in the EPP core protocol specification [RFC5730]. The command
+ mappings described here are specifically for assigning organizations
+ to EPP objects.
+
+4.1. EPP Query Commands
+
+ EPP provides three commands to retrieve EPP object information:
+ <check> to determine if an object can be provisioned within a
+ repository, <info> to retrieve detailed information associated with
+ an object, and <transfer> to retrieve object transfer status
+ information.
+
+4.1.1. EPP <check> Command
+
+ This extension does not add any elements to the EPP <check> command
+ or <check> response described in the EPP object mapping.
+
+4.1.2. EPP <info> Command
+
+ This extension does not add any elements to the EPP <info> command
+ described in the EPP object mapping. However, additional elements
+ are defined for the <info> response in the EPP object mapping.
+
+ When an <info> command has been processed successfully, the EPP
+ <resData> element MUST contain child elements as described in the EPP
+ object extensions. In addition, the EPP <extension> element SHOULD
+ contain a child <orgext:infData> element. This element is returned
+ if the object has data that is associated with this extension and
+ that is based on server policy. This element or its ancestor element
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 4]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ MUST identify the extension namespace
+ "urn:ietf:params:xml:ns:epp:orgext-1.0". The <orgext:infData>
+ element contains the following child elements:
+
+ o Zero or more <orgext:id> elements are allowed that contain the
+ identifier of the organization, as defined in Section 3.1. The
+ "role" attribute is used to represent the relationship that the
+ organization has to the object. See Section 7.3 of [RFC8543] for
+ a list of values.
+
+ Example <info> response for an authorized client with multiple
+ organizations:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 5]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
+ S: <response>
+ S: <result code="1000">
+ S: <msg lang="en-US">Command completed successfully</msg>
+ S: </result>
+ S: <resData>
+ S: <domain:infData
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ S: <domain:name>example.com</domain:name>
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
+ S: <domain:status s="ok"/>
+ S: <domain:registrant>jd1234</domain:registrant>
+ S: <domain:contact type="admin">sh8013</domain:contact>
+ S: <domain:contact type="billing">sh8013</domain:contact>
+ S: <domain:contact type="tech">sh8013</domain:contact>
+ S: <domain:ns>
+ S: <domain:hostObj>ns1.example.com</domain:hostObj>
+ S: </domain:ns>
+ S: <domain:clID>ClientX</domain:clID>
+ S: <domain:crID>ClientY</domain:crID>
+ S: <domain:crDate>2015-02-06T04:01:21.0Z</domain:crDate>
+ S: <domain:exDate>2018-02-06T04:01:21.0Z</domain:exDate>
+ S: <domain:authInfo>
+ S: <domain:pw>2fooBAR</domain:pw>
+ S: </domain:authInfo>
+ S: </domain:infData>
+ S: </resData>
+ S: <extension>
+ S: <orgext:infData
+ S: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ S: <orgext:id role="reseller">reseller1523</orgext:id>
+ S: <orgext:id role="privacyproxy">proxy2935</orgext:id>
+ S: </orgext:infData>
+ S: </extension>
+ S: <trID>
+ S: <clTRID>ngcl-IvJjzMZc</clTRID>
+ S: <svTRID>test142AWQONJZ</svTRID>
+ S: </trID>
+ S: </response>
+ S:</epp>
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 6]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <info> response for an authorized client with no
+ organization:
+
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
+ S: <response>
+ S: <result code="1000">
+ S: <msg lang="en-US">Command completed successfully</msg>
+ S: </result>
+ S: <resData>
+ S: <domain:infData
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ S: <domain:name>example.com</domain:name>
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
+ S: <domain:status s="ok"/>
+ S: <domain:registrant>jd1234</domain:registrant>
+ S: <domain:contact type="admin">sh8013</domain:contact>
+ S: <domain:contact type="billing">sh8013</domain:contact>
+ S: <domain:contact type="tech">sh8013</domain:contact>
+ S: <domain:ns>
+ S: <domain:hostObj>ns1.example.com</domain:hostObj>
+ S: </domain:ns>
+ S: <domain:clID>ClientX</domain:clID>
+ S: <domain:crID>ClientY</domain:crID>
+ S: <domain:crDate>2015-02-06T04:01:21.0Z</domain:crDate>
+ S: <domain:exDate>2018-02-06T04:01:21.0Z</domain:exDate>
+ S: <domain:authInfo>
+ S: <domain:pw>2fooBAR</domain:pw>
+ S: </domain:authInfo>
+ S: </domain:infData>
+ S: </resData>
+ S: <extension>
+ S: <orgext:infData
+ S: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"/>
+ S: </extension>
+ S: <trID>
+ S: <clTRID>ngcl-IvJjzMZc</clTRID>
+ S: <svTRID>test142AWQONJZ</svTRID>
+ S: </trID>
+ S: </response>
+ S:</epp>
+
+ An EPP error response MUST be returned if an <info> command cannot be
+ processed for any reason.
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 7]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+4.1.3. EPP <transfer> Query Command
+
+ This extension does not add any elements to the EPP <transfer> query
+ command or <transfer> query response described in the EPP object
+ mapping.
+
+4.2. EPP Transform Commands
+
+ EPP provides five commands to transform EPP objects: <create> to
+ create an instance of an object, <delete> to delete an instance of an
+ object, <renew> to extend the validity period of an object,
+ <transfer> to manage the object sponsorship changes, and <update> to
+ change information associated with an object.
+
+4.2.1. EPP <create> Command
+
+ This extension defines additional elements for the EPP <create>
+ command described in the EPP object extensions. No additional
+ elements are defined for the EPP <create> response.
+
+ The EPP <create> command provides a transform operation that allows a
+ client to create an object. In addition to the EPP command elements
+ described in the EPP object extensions, the command MUST contain an
+ <extension> element, and the <extension> element MUST contain a child
+ <orgext:create> element. This element is used if the client wants to
+ associate data defined in this extension to the object. This element
+ or its ancestor element MUST identify the extension namespace
+ "urn:ietf:params:xml:ns:epp:orgext-1.0". The <orgext:create> element
+ contains the following child elements:
+
+ o One or more <orgext:id> elements that contain the identifier of
+ the organization, as defined in Section 3.1. The "role" attribute
+ is used to represent the relationship that the organization has to
+ the object. See Section 7.3 of [RFC8543] for a list of values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 8]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <create> command with only one organization:
+
+ 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: <domain:create
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: <domain:period unit="y">3</domain:period>
+ C: <domain:ns>
+ C: <domain:hostObj>ns1.example.com</domain:hostObj>
+ C: </domain:ns>
+ C: <domain:registrant>jd1234</domain:registrant>
+ C: <domain:contact type="tech">sh8013</domain:contact>
+ C: <domain:contact type="billing">sh8013</domain:contact>
+ C: <domain:contact type="admin">sh8013</domain:contact>
+ C: <domain:authInfo>
+ C: <domain:pw>fooBAR</domain:pw>
+ C: </domain:authInfo>
+ C: </domain:create>
+ C: </create>
+ C: <extension>
+ C: <orgext:create
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: </orgext:create>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 9]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <create> command with multiple organizations:
+
+ 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: <domain:create
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: <domain:period unit="y">3</domain:period>
+ C: <domain:ns>
+ C: <domain:hostObj>ns1.example.com</domain:hostObj>
+ C: </domain:ns>
+ C: <domain:registrant>jd1234</domain:registrant>
+ C: <domain:contact type="tech">sh8013</domain:contact>
+ C: <domain:contact type="billing">sh8013</domain:contact>
+ C: <domain:contact type="admin">sh8013</domain:contact>
+ C: <domain:authInfo>
+ C: <domain:pw>fooBAR</domain:pw>
+ C: </domain:authInfo>
+ C: </domain:create>
+ C: </create>
+ C: <extension>
+ C: <orgext:create
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
+ C: </orgext:create>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+ When a <create> command has been processed successfully, the EPP
+ response is as described in the EPP object extension.
+
+ An EPP error response MUST be returned if a <create> command cannot
+ be processed for any reason.
+
+4.2.2. EPP <delete> Command
+
+ This extension does not add any elements to the EPP <delete> command
+ or <delete> response described in the EPP object mapping.
+
+4.2.3. EPP <renew> Command
+
+ This extension does not add any elements to the EPP <renew> command
+ or <renew> response described in the EPP object mapping.
+
+
+
+Zhou, et al. Standards Track [Page 10]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+4.2.4. EPP <transfer> Command
+
+ This extension does not add any elements to the EPP <transfer>
+ command or <transfer> response described in the EPP object mapping,
+ but after a successful transfer of an object with an assigned
+ organization, the handling of the assigned organization is dependent
+ on the organization roles and server policy.
+
+4.2.5. EPP <update> Command
+
+ This extension defines additional elements for the EPP <update>
+ command described in the EPP domain mapping [RFC5731], host mapping
+ [RFC5732], and contact mapping [RFC5733]. No additional elements are
+ defined for the EPP <update> response.
+
+ The EPP <update> command provides a transform operation that allows a
+ client to modify the attributes of an object. In addition to the EPP
+ <update> command elements, the command MUST contain an <extension>
+ element, and the <extension> element MUST contain a child
+ <orgext:update> element. This element is used if the client wants to
+ update the object with data defined in this extension. This element
+ or its ancestor element MUST identify the extension namespace
+ "urn:ietf:params:xml:ns:epp:orgext-1.0". The <orgext:update> element
+ contains the following child elements:
+
+ o An OPTIONAL <orgext:add> element that contains one or more
+ <orgext:id> elements, as defined in Section 3.1, that add
+ nonexistent organization roles to the object. The <orgext:id>
+ element MUST have a non-empty organization identifier value. The
+ server SHOULD validate that the <orgext:id> element role does not
+ exist.
+
+ o An OPTIONAL <orgext:rem> element that contains one or more
+ <orgext:id> elements, as defined in Section 3.1, that remove
+ organization roles from the object. The <orgext:id> element MAY
+ have an empty organization identifier value. The server SHOULD
+ validate the existence of the <orgext:id> element role and the
+ organization identifier if provided.
+
+ o An OPTIONAL <orgext:chg> element that contains one or more
+ <orgext:id> elements, as defined in Section 3.1, that change
+ organization role identifiers for the object. The existing
+ organization identifier value will be replaced for the defined
+ role. The server SHOULD validate the existence of the <orgext:id>
+ element role.
+
+ At least one <orgext:add>, <orgext:rem>, or <orgext:chg> element MUST
+ be provided.
+
+
+
+Zhou, et al. Standards Track [Page 11]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <update> command, adding a reseller:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:add>
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: </orgext:add>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+ Example <update> command, adding multiple organizations:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:add>
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
+ C: </orgext:add>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+
+
+
+
+Zhou, et al. Standards Track [Page 12]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <update> command, removing a reseller:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:rem>
+ C: <orgext:id role="reseller"/>
+ C: </orgext:rem>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+ Example <update> command, removing multiple organizations:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:rem>
+ C: <orgext:id role="reseller"/>
+ C: <orgext:id role="privacyproxy"/>
+ C: </orgext:rem>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+
+
+
+
+Zhou, et al. Standards Track [Page 13]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ Example <update> command, updating reseller identifier:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:chg>
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: </orgext:chg>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+ Example <update> command, updating multiple organization identifiers:
+
+ 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: <domain:update
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+ C: <domain:name>example.com</domain:name>
+ C: </domain:update>
+ C: </update>
+ C: <extension>
+ C: <orgext:update
+ C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
+ C: <orgext:chg>
+ C: <orgext:id role="reseller">reseller1523</orgext:id>
+ C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
+ C: </orgext:chg>
+ C: </orgext:update>
+ C: </extension>
+ C: <clTRID>ABC-12345</clTRID>
+ C: </command>
+ C:</epp>
+
+
+
+
+
+Zhou, et al. Standards Track [Page 14]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ When an extended <update> command has been processed successfully,
+ the EPP response is as described in the EPP object extension.
+
+ An EPP error response MUST be returned if an <update> command cannot
+ be processed for any reason. An attempt to add one organization ID
+ or multiple organization IDs with a particular role value when at
+ least one of them already exists does not change the object at all.
+ A server SHOULD notify clients that object relationships exist by
+ sending a 2305 error response code. An attempt to remove an
+ organization ID or multiple organization IDs with a particular role
+ value when at least one of them does not exist does not change the
+ object at all. A server SHOULD notify clients that object
+ relationships do not exist by sending a 2305 error response code. An
+ attempt to change an organization ID or multiple organization IDs
+ with a particular role value when at least one of them does not exist
+ does not change the object at all. A server SHOULD notify clients
+ that object relationships do not exist by sending a 2305 error
+ response code. Response format with error value elements is defined
+ in Section 2.6 of [RFC5730].
+
+5. Formal Syntax
+
+ An EPP object mapping is specified in XML Schema notation. The
+ formal syntax presented here is a complete schema representation of
+ the object mapping suitable for automated validation of EPP XML
+ instances. The BEGIN and END tags are not part of the schema; they
+ are used to note the beginning and ending of the schema for URI
+ registration purposes.
+
+ BEGIN
+ <?xml version="1.0" encoding="UTF-8"?>
+
+ <schema
+ targetNamespace="urn:ietf:params:xml:ns:epp:orgext-1.0"
+ xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ >
+
+ <annotation>
+ <documentation>
+ Extensible Provisioning Protocol v1.0
+ Organization Extension Schema v1.0
+ </documentation>
+ </annotation>
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 15]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ <!-- Child elements found in EPP commands -->
+ <element
+ name="create"
+ type="orgext:createType"/>
+ <element
+ name="update"
+ type="orgext:updateType"/>
+
+ <!--
+ Organization identifier with required role
+ -->
+ <complexType name="orgIdType">
+ <simpleContent>
+ <extension base="token">
+ <attribute
+ name="role"
+ type="token"
+ use="required"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <!--
+ Child elements of the <orgext:create> command.
+ All elements must be present at time of creation.
+ -->
+ <complexType name="createType">
+ <sequence>
+ <!-- Agent identifier or the organization,
+ e.g., registrar, reseller, privacy proxy, etc. -->
+ <element
+ name="id"
+ type="orgext:orgIdType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <!--
+ Child elements of <orgext:update> command
+ -->
+ <complexType name="updateType">
+ <sequence>
+ <element
+ name="add"
+ type="orgext:addRemChgType"
+ minOccurs="0"
+ />
+
+
+
+
+Zhou, et al. Standards Track [Page 16]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ <element
+ name="rem"
+ type="orgext:addRemChgType"
+ minOccurs="0"
+ />
+ <element
+ name="chg"
+ type="orgext:addRemChgType"
+ minOccurs="0"
+ />
+ </sequence>
+ </complexType>
+
+ <complexType name="addRemChgType">
+ <sequence>
+ <!-- Agent identifier of the organization,
+ e.g., registrar, reseller, privacy proxy, etc. -->
+ <element
+ name="id"
+ type="orgext:orgIdType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <!-- Child response element -->
+ <element
+ name="infData"
+ type="orgext:infDataType"/>
+
+ <!-- <orgext:infData> response elements -->
+ <complexType name="infDataType">
+ <sequence>
+ <!-- Agent identifier the organization,
+ e.g., registrar, reseller, privacy proxy, etc. -->
+ <element
+ name="id"
+ type="orgext:orgIdType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <!-- End of schema -->
+ </schema>
+ END
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 17]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+6. Internationalization Considerations
+
+ EPP is represented in XML, which provides native support for encoding
+ information using the Unicode character set [UNICODE] and its more
+ compact representations, including UTF-8. Conformant XML processors
+ recognize both UTF-8 [RFC3629] and UTF-16 [RFC2781]. Though XML
+ includes provisions to identify and use other character encodings
+ through use of an "encoding" attribute in an <?xml?> declaration, use
+ of UTF-8 is RECOMMENDED.
+
+ As an extension of the EPP object mapping, the elements and element
+ content described in this document MUST inherit the
+ internationalization conventions used to represent higher-layer
+ domain and core protocol structures present in an XML instance that
+ includes this extension.
+
+7. IANA Considerations
+
+7.1. XML Namespace
+
+ This document uses URNs to describe XML namespaces and XML schemas
+ conforming to a registry mechanism described in [RFC3688]. IANA has
+ assigned the following URI.
+
+ The organization extension namespace:
+
+ URI: urn:ietf:params:xml:ns:epp:orgext-1.0
+
+ Registrant Contact: IESG
+
+ XML: None. Namespace URIs do not represent an XML specification.
+
+ The organization XML schema:
+
+ URI: urn:ietf:params:xml:schema:epp:orgext-1.0
+
+ Registrant Contact: IESG
+
+ XML: See the "Formal Syntax" section of RFC 8544 (this document).
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 18]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+7.2. EPP Extension Registry
+
+ The EPP extension described in this document has been registered by
+ IANA in the "Extensions for the Extensible Provisioning Protocol
+ (EPP)" registry described in [RFC7451]. The details of the
+ registration are as follows:
+
+ Name of Extension: Organization Extension for the Extensible
+ Provisioning Protocol (EPP)
+
+ Document Status: Standards Track
+
+ Reference: RFC 8544
+
+ Registrant Name and Email Address: IESG, iesg@ietf.org
+
+ TLDs: Any
+
+ IPR Disclosure: None
+
+ Status: Active
+
+ Notes: None
+
+8. Security Considerations
+
+ The object mapping extension described in this document does not
+ provide any other security services or introduce any additional
+ considerations beyond those described by [RFC5730], [RFC5731],
+ [RFC5732], and [RFC5733] or those caused by the protocol layers used
+ by EPP.
+
+9. References
+
+9.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>.
+
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
+ 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
+ 2003, <https://www.rfc-editor.org/info/rfc3629>.
+
+ [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
+ DOI 10.17487/RFC3688, January 2004,
+ <https://www.rfc-editor.org/info/rfc3688>.
+
+
+
+Zhou, et al. Standards Track [Page 19]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+ [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>.
+
+ [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>.
+
+ [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>.
+
+ [UNICODE] The Unicode Consortium, "The Unicode Standard",
+ <http://www.unicode.org/versions/latest/>.
+
+ [W3C.REC-xml-20081126]
+ Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
+ F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
+ Edition)", World Wide Web Consortium Recommendation
+ REC-xml-20081126, November 2008,
+ <https://www.w3.org/TR/xml/>.
+
+ [W3C.REC-xmlschema-1-20041028]
+ Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn,
+ "XML Schema Part 1: Structures Second Edition", World Wide
+ Web Consortium Recommendation REC-xmlschema-1-20041028,
+ October 2004,
+ <http://www.w3.org/TR/2004/REC-xmlschema-1-20041028>.
+
+ [W3C.REC-xmlschema-2-20041028]
+ Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes
+ Second Edition", World Wide Web Consortium Recommendation
+ REC-xmlschema-2-20041028, October 2004,
+ <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 20]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+9.2. Informative References
+
+ [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO
+ 10646", RFC 2781, DOI 10.17487/RFC2781, February 2000,
+ <https://www.rfc-editor.org/info/rfc2781>.
+
+ [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>.
+
+ [RFC8543] Zhou, L., Kong, N., Yao, J., Gould, J., and G. Zhou,
+ "Extensible Provisioning Protocol (EPP) Organization
+ Mapping", RFC 8543, DOI 10.17487/RFC8543, March 2019,
+ <https://www.rfc-editor.org/info/rfc8543>.
+
+Acknowledgments
+
+ The authors would like to thank Rik Ribbers, Marc Groeneweg, Patrick
+ Mevzek, Antoin Verschuren, and Scott Hollenbeck for their careful
+ review and valuable comments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 21]
+
+RFC 8544 Organization Extension for the EPP April 2019
+
+
+Authors' Addresses
+
+ Linlin Zhou
+ CNNIC
+ 4 South 4th Street, Zhongguancun, Haidian District
+ Beijing, Beijing 100190
+ China
+
+ Email: zhoulinlin@cnnic.cn
+
+
+ Ning Kong
+ Consultant
+
+ Email: ietfing@gmail.com
+
+
+ Junkai Wei
+ CNNIC
+ 4 South 4th Street, Zhongguancun, Haidian District
+ Beijing, Beijing 100190
+ China
+
+ Email: weijunkai@cnnic.cn
+
+
+ Jiankang Yao
+ CNNIC
+ 4 South 4th Street, Zhongguancun, Haidian District
+ Beijing, Beijing 100190
+ China
+
+ Email: yaojk@cnnic.cn
+
+
+ James Gould
+ VeriSign, Inc.
+ 12061 Bluemont Way
+ Reston, VA 20190
+ United States of America
+
+ Email: jgould@verisign.com
+ URI: http://www.verisign.com
+
+
+
+
+
+
+
+
+Zhou, et al. Standards Track [Page 22]
+