draft-ietf-regext-org-ext-01.txt   draft-ietf-regext-org-ext-02.txt 
Internet Engineering Task Force L. Zhou Internet Engineering Task Force L. Zhou
Internet-Draft N. Kong Internet-Draft N. Kong
Intended status: Standards Track J. Wei Intended status: Standards Track J. Wei
Expires: June 8, 2018 X. Lee Expires: September 1, 2018 X. Lee
CNNIC CNNIC
J. Gould J. Gould
VeriSign, Inc. VeriSign, Inc.
December 5, 2017 February 28, 2018
Organization Extension for the Extensible Provisioning Protocol (EPP) Organization Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-org-ext-01 draft-ietf-regext-org-ext-02
Abstract Abstract
This mapping, an extension to EPP object mappings like the EPP domain This mapping, an extension to EPP object mappings like the EPP domain
name mapping [RFC5731], to support assigning an organization to any name mapping [RFC5731], to support assigning an organization to any
existing object (domain, host, contact) as well as any future existing object (domain, host, contact) as well as any future
objects. Specified in Extensible Markup Language (XML), this objects.
extended mapping is applied to provide additional features required
for the provisioning of organizations.
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
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 June 8, 2018. This Internet-Draft will expire on September 1, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 33 skipping to change at page 2, line 31
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions Used in This Document . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 4 3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Organization Identifier . . . . . . . . . . . . . . . . . 4 3.1. Organization Identifier . . . . . . . . . . . . . . . . . 4
4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 4 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 4
4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 4 4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 4
4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4 4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4
4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 4 4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 4
4.1.3. EPP <transfer> Command . . . . . . . . . . . . . . . 7 4.1.3. EPP <transfer> Command . . . . . . . . . . . . . . . 7
4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 7 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 8
4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 7 4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 8
4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 8 4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 10
4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 8 4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 10
4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 9 4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11
4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 9 4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 11 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15
6. Internationalization Considerations . . . . . . . . . . . . . 13 6. Internationalization Considerations . . . . . . . . . . . . . 18
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 14 7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 18
7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 14 7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 18
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 14 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 19
8.1. CNNIC Impelementation . . . . . . . . . . . . . . . . . . 15 8.1. CNNIC Implementation . . . . . . . . . . . . . . . . . . 19
8.2. Reseller Extension . . . . . . . . . . . . . . . . . . . 15 8.2. Reseller Extension . . . . . . . . . . . . . . . . . . . 20
9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20
10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 16 10. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 20
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
11.1. Normative References . . . . . . . . . . . . . . . . . . 16 11.1. Normative References . . . . . . . . . . . . . . . . . . 20
11.2. Informative References . . . . . . . . . . . . . . . . . 17 11.2. Informative References . . . . . . . . . . . . . . . . . 21
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 21
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
In the business model of domain registration, we usually have 3 roles In the business model of domain registration, we usually have 3 roles
of entities, a registrant, a registrar and a registry. There may of entities, a registrant, a registrar and a registry. There may
have some other roles of entities involved in the domain registration have some other roles of entities involved in the domain registration
process which are not formally defined, such as resellers, DNS process which are not formally defined, such as resellers, DNS
service operators, privacy proxy, etc. service operators, privacy proxy, etc.
A domain reseller is an individual or a company that acts as a agent A domain reseller is an individual or a company that acts as a agent
for accredited registrars. A third-party DNS service operator is for accredited registrars. A third-party DNS service operator is
responsible for a zone where the operator is neither the registrant responsible for a zone where the operator is neither the registrant
nor the registrar of records for the delegation. And a privacy proxy nor the registrar of records for the delegation. And a privacy proxy
is an entity that provides with individuals or organizations domain is an entity that provides with individuals or organizations domain
registration without exposing their private information. These kind registration without exposing their private information. These kind
of entities are defined as "organizations" with different role types of entities are defined as "organizations" with different role types
in this document. in this document.
In order to facilitate provisioning and management of organization In order to facilitate provisioning and management of organization
information in a shared central repository, this document proposes a information in a shared central repository, this document proposes an
organization extension mapping for any EPP object like domain names organization extension mapping for any EPP object like domain names
in [RFC5731], hosts in [RFC5732] and contacts in [RFC5733]. The in [RFC5731], hosts in [RFC5732] and contacts in [RFC5733]. The
examples provided in this document are used for the domain object for examples provided in this document are used for the domain object for
illustration purpose. The host and contact object could be extended illustration purpose. The host and contact object could be extended
in the same way with the domain object. in the same way with the domain object.
A organization mapping object defined in [ID.draft-ietf-regext-org] An organization mapping object defined in [ID.draft-ietf-regext-org]
SHOULD be created first. The organization information specified in SHOULD be created first. The organization information specified in
this document MUST reference the existing organization identifier. this document MUST reference the existing organization identifier.
This document is specified using the XML 1.0 as described in This document is specified using the XML 1.0 as described in
[W3C.REC-xml-20040204] and XML Schema notation as described in [W3C.REC-xml-20040204] and XML Schema notation as described in
[W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028]. [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028].
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
skipping to change at page 4, line 50 skipping to change at page 4, line 46
This extension does not add any elements to the EPP <check> command This extension does not add any elements to the EPP <check> command
or <check> response described in the EPP domain name mapping or <check> response described in the EPP domain name mapping
[RFC5731], host mapping [RFC5732] and contact mapping [RFC5733]. [RFC5731], host mapping [RFC5732] and contact mapping [RFC5733].
4.1.2. EPP <info> Command 4.1.2. EPP <info> Command
This extension does not add any element to the EPP <info> command This extension does not add any element to the EPP <info> command
described in the EPP domain mapping [RFC5731], host mapping [RFC5732] described in the EPP domain mapping [RFC5731], host mapping [RFC5732]
and contact mapping [RFC5733]. However, additional elements are and contact mapping [RFC5733]. However, additional elements are
defined for the <info> response. defined for the <info> response in the EPP domain mapping [RFC5731],
host mapping [RFC5732] and contact mapping [RFC5733].
Example <info> command: Example <info> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <info> C: <info>
C: <domain:info C: <domain:info
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
skipping to change at page 5, line 26 skipping to change at page 5, line 26
C: </info> C: </info>
C: <clTRID>ngcl-mIFICBNP</clTRID> C: <clTRID>ngcl-mIFICBNP</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
When an <info> command has been processed successfully, the EPP When an <info> command has been processed successfully, the EPP
<resData> element MUST contain child elements as described in the EPP <resData> element MUST contain child elements as described in the EPP
object extensions. In addition, the EPP <extension> element SHOULD object extensions. In addition, the EPP <extension> element SHOULD
contain a child <orgext:infData> element that identifies the contain a child <orgext:infData> element that identifies the
extension namespace if the object has data associated with this extension namespace if the object has data associated with this
extension and based on its service policy. The <orgext:infData> extension and based on its server policy. The <orgext:infData>
element contains the following child elements: element contains the following child elements:
o A <orgext:id> element that contains the identifier of the o One or more <orgext:id> elements are allowed that contains the
organization. An attribute "role" associated with <orgext:id> is identifier of the organization. An attribute "role" associated
used to represent the relationship an organization would have. with <orgext:id> is used to represent the relationship an
See Section 7.3 in [ID.draft-ietf-regext-org] for a list of organization would have. See Section 7.3 in
values. [ID.draft-ietf-regext-org] for a list of values.
Example <info> response for an authorized client: Example <info> response for an authorized client with multiple
organizations:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg lang="en-US">Command completed successfully</msg> S: <msg lang="en-US">Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:infData S: <domain:infData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:roid>EXAMPLE1-REP</domain:roid> S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="ok"/> S: <domain:status s="ok"/>
S: <domain:registrant>jd1234</domain:registrant> S: <domain:registrant>jd1234</domain:registrant>
S: <domain:contact type="admin">sh8013</domain:contact> S: <domain:contact type="admin">sh8013</domain:contact>
skipping to change at page 6, line 47 skipping to change at page 6, line 47
S: <orgext:id role="privacyproxy">myproxy</orgext:id> S: <orgext:id role="privacyproxy">myproxy</orgext:id>
S: </orgext:infData> S: </orgext:infData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ngcl-IvJjzMZc</clTRID> S: <clTRID>ngcl-IvJjzMZc</clTRID>
S: <svTRID>test142AWQONJZ</svTRID> S: <svTRID>test142AWQONJZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
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: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 An EPP error response MUST be returned if an <info> command cannot be
processed for any reason. processed for any reason.
4.1.3. EPP <transfer> Command 4.1.3. EPP <transfer> Command
This extension does not add any elements to the EPP <transfer> This extension does not add any elements to the EPP <transfer>
command or <transfer> response described in the EPP domain name command or <transfer> response described in the EPP domain name
mapping [RFC5731], host mapping [RFC5732] and contact mapping mapping [RFC5731], host mapping [RFC5732] and contact mapping
[RFC5733]. [RFC5733].
skipping to change at page 7, line 41 skipping to change at page 8, line 34
the client wants to associate data defined in this extension to the the client wants to associate data defined in this extension to the
object. The <orgext:create> element contains the following child object. The <orgext:create> element contains the following child
elements: elements:
o A <orgext:id> element that contains the identifier of the o A <orgext:id> element that contains the identifier of the
organization. An attribute "role" associated with <orgext:id> is organization. An attribute "role" associated with <orgext:id> is
used to represent the relationship an organization would have. used to represent the relationship an organization would have.
See Section 7.3 in [ID.draft-ietf-regext-org] for a list of See Section 7.3 in [ID.draft-ietf-regext-org] for a list of
values. values.
Example <create> Command: Example <create> Command with only one organization:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <create> C: <create>
C: <domain:create C: <domain:create
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:period unit="y">3</domain:period> C: <domain:period unit="y">3</domain:period>
C: <domain:ns> C: <domain:ns>
skipping to change at page 8, line 35 skipping to change at page 9, line 35
C: <extension> C: <extension>
C: <orgext:create C: <orgext:create
C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0">
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">myreseller</orgext:id>
C: </orgext:create> C: </orgext:create>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
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 roid="ddddd-dddd">fooBAR</domain:pw>
C: </domain:authInfo>
C: </domain:create>
C: </create>
C: <extension>
C: <orgext:create
C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0">
C: <orgext:id role="reseller">myreseller</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</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 When a <create> command has been processed successfully, the EPP
response is as described in the EPP object extension. response is as described in the EPP object extension.
An EPP error response MUST be returned if a <create> command cannot An EPP error response MUST be returned if a <create> command cannot
be processed for any reason. be processed for any reason.
4.2.2. EPP <delete> Command 4.2.2. EPP <delete> Command
This extension does not add any elements to the EPP <delete> command This extension does not add any elements to the EPP <delete> command
or <delete> response described in the EPP domain mapping [RFC5731], or <delete> response described in the EPP domain mapping [RFC5731],
skipping to change at page 10, line 26 skipping to change at page 12, line 26
C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0">
C: <orgext:add> C: <orgext:add>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">myreseller</orgext:id>
C: </orgext:add> C: </orgext:add>
C: </orgext:update> C: </orgext:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> 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:orgext-1.0">
C: <orgext:add>
C: <orgext:id role="reseller">myreseller</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id>
C: </orgext:add>
C: </orgext:update>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <update> command, domain with no 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: <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:orgext-1.0">
C: <orgext:add>
C: <orgext:id role="reseller">myreseller</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id>
C: </orgext:add>
C: </orgext:update>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <update> command, removing a reseller: Example <update> command, removing a reseller:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <update> C: <update>
C: <domain:update C: <domain:update
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: </domain:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <orgext:update C: <orgext:update
C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0">
C: <orgext:rem> C: <orgext:rem>
C: <orgext:id role="reseller">myreseller</orgext:id> 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:orgext-1.0">
C: <orgext:rem>
C: <orgext:id role="reseller"/>
C: <orgext:id role="privacyproxy"/>
C: </orgext:rem> C: </orgext:rem>
C: </orgext:update> C: </orgext:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
Example <update> command, updating reseller identifier: Example <update> command, updating reseller identifier:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
skipping to change at page 11, line 26 skipping to change at page 14, line 50
C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0">
C: <orgext:chg> C: <orgext:chg>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">myreseller</orgext:id>
C: </orgext:chg> C: </orgext:chg>
C: </orgext:update> C: </orgext:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> 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:orgext-1.0">
C: <orgext:chg>
C: <orgext:id role="reseller">myreseller</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id>
C: </orgext:chg>
C: </orgext:update>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When an extended <update> command has been processed successfully, When an extended <update> command has been processed successfully,
the EPP response is as described in the EPP object extension. the EPP response is as described in the EPP object extension.
5. Formal Syntax 5. Formal Syntax
An EPP object mapping is specified in XML Schema notation. The An EPP object mapping is specified in XML Schema notation. The
formal syntax presented here is a complete schema representation of formal syntax presented here is a complete schema representation of
the object mapping suitable for automated validation of EPP XML the object mapping suitable for automated validation of EPP XML
instances. The BEGIN and END tags are not part of the schema; they 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 are used to note the beginning and ending of the schema for URI
registration purposes. registration purposes.
BEGIN BEGIN
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:orgext-1.0" <schema
xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0" targetNamespace="urn:ietf:params:xml:ns:orgext-1.0"
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" xmlns:orgext="urn:ietf:params:xml:ns:orgext-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
elementFormDefault="qualified"> >
<!--
Import common element types.
-->
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
schemaLocation="eppcom-1.0.xsd"/>
<import namespace="urn:ietf:params:xml:ns:epp-1.0"
schemaLocation="epp-1.0.xsd"/>
<annotation> <annotation>
<documentation> <documentation>
Extensible Provisioning Protocol v1.0 Extensible Provisioning Protocol v1.0
Organization Extension Schema v1.0 Organization Extension Schema v1.0
</documentation> </documentation>
</annotation> </annotation>
<!-- Child elements found in EPP commands. --> <!-- Child elements found in EPP commands. -->
<element name="create" type="orgext:createType"/> <element
<element name="update" type="orgext:updateType"/> name="create"
type="orgext:createType"/>
<element
name="update"
type="orgext:updateType"/>
<!-- Child elements of the <orgext:create> command <!--
All elements must be present at time of creation 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"> <complexType name="createType">
<sequence> <sequence>
<!-- agent identifier or the organization, <!-- agent identifier or the organization,
e.g. registrar, reseller, privacy proxy, etc. --> e.g. registrar, reseller, privacy proxy, etc. -->
<element name="id" type="eppcom:clIDType"/> <element
name="id"
type="orgext:orgIdType"
maxOccurs="unbounded"/>
</sequence> </sequence>
<attribute name="role"
type="token" use="required"/>
</complexType> </complexType>
<!-- <!--
Child elements of <orgext:update> command Child elements of <orgext:update> command
--> -->
<complexType name="updateType"> <complexType name="updateType">
<sequence> <sequence>
<element name="add" <element
type="orgext:addRemChgType" minOccurs="0"/> name="add"
<element name="rem" type="orgext:addRemChgType"
type="orgext:addRemChgType" minOccurs="0"/> minOccurs="0"/>
<element name="chg" <element
type="orgext:addRemChgType" minOccurs="0"/> name="rem"
type="orgext:addRemChgType"
minOccurs="0"/>
<element
name="chg"
type="orgext:addRemChgType"
minOccurs="0"/>
</sequence> </sequence>
</complexType> </complexType>
<complexType name="addRemChgType"> <complexType name="addRemChgType">
<sequence> <sequence>
<!-- agent identifier the organization, <!-- agent identifier the organization,
e.g. registrar, reseller, privacy proxy, etc. --> e.g. registrar, reseller, privacy proxy, etc. -->
<element
<element name="id" type="eppcom:clIDType" minOccurs="0"/> name="id"
type="orgext:orgIdType"
minOccurs="0"
maxOccurs="unbounded"/>
</sequence> </sequence>
<attribute name="role"
type="token" use="required"/>
</complexType> </complexType>
<!-- Child response element --> <!-- Child response element -->
<element
<element name="infData" type="orgext:infDataType"/> name="infData"
type="orgext:infDataType"/>
<!-- <orgext:infData> response elements -->
<!-- <orgext:infData> response elements -->
<complexType name="infDataType"> <complexType name="infDataType">
<sequence> <sequence>
<!-- agent identifier the organization, <!-- agent identifier the organization,
e.g. registrar, reseller, privacy proxy, etc. --> e.g. registrar, reseller, privacy proxy, etc. -->
<element name="id" <element
type="eppcom:clIDType" minOccurs="0"/> name="id"
type="orgext:orgIdType"
minOccurs="0"
maxOccurs="unbounded"/>
</sequence> </sequence>
<attribute name="role"
type="token" use="required"/>
</complexType> </complexType>
<!-- End of schema. --> <!-- End of schema. -->
</schema> </schema>
END END
6. Internationalization Considerations 6. Internationalization Considerations
EPP is represented in XML, which provides native support for encoding EPP is represented in XML, which provides native support for encoding
information using the Unicode character set and its more compact information using the Unicode character set and its more compact
representations including UTF-8. Conformant XML processors recognize representations including UTF-8. Conformant XML processors recognize
both UTF-8 and UTF-16. Though XML includes provisions to identify both UTF-8 and UTF-16. Though XML includes provisions to identify
and use other character encodings through use of an "encoding" and use other character encodings through use of an "encoding"
skipping to change at page 14, line 48 skipping to change at page 19, line 16
Status: active Status: active
Notes: none Notes: none
8. Implementation Status 8. Implementation Status
Note to RFC Editor: Please remove this section and the reference to Note to RFC Editor: Please remove this section and the reference to
[RFC6982] before publication. This section records the status of [RFC6982] before publication. This section records the status of
known implementations of the protocol defined by this specification known implementations of the protocol defined by this specification
at the time of posting of this Internet-Draft, and is based on a at the time of posting of this Internet-Draft, and is based on a
proposal described in [RFC6982]. The description of mplementations proposal described in [RFC6982]. The description of implementations
in this section is intended to assist the IETF in its decision in this section is intended to assist the IETF in its decision
processes in progressing drafts to RFCs. Please note that the processes in progressing drafts to RFCs. Please note that the
listing of any individual implementation here does not imply listing of any individual implementation here does not imply
endorsement by the IETF. Furthermore, no effort has been spent to endorsement by the IETF. Furthermore, no effort has been spent to
verify the information presented here that was supplied by IETF verify the information presented here that was supplied by IETF
contributors. This is not intended as, and must not be construed to contributors. This is not intended as, and must not be construed to
be, a catalog of available implementations or their features. be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist. Readers are advised to note that other implementations may exist.
According to [RFC6982], "this will allow reviewers and working groups According to [RFC6982], "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature. and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as It is up to the individual working groups to use this information as
they see fit". they see fit".
CNNIC is in the process of development research to update CNNIC is in the process of development research to update
organization extension from reseller extension. Verisign is also organization extension from reseller extension. Verisign is also
planning to implement this extension. planning to implement this extension.
8.1. CNNIC Impelementation 8.1. CNNIC Implementation
Organization: CNNIC Organization: CNNIC
Name: Organization Extension for EPP Name: Organization Extension for EPP
Description: CNNIC is trying to update organizaiton extension from Description: CNNIC is trying to update organization extension from
previous reseller extension according to this document. previous reseller extension according to this document.
Level of maturity: Research. Level of maturity: Research.
Coverage: Organization extension for EPP. Coverage: Organization extension for EPP.
Contact: zhouguiqing@cnnic.cn Contact: zhouguiqing@cnnic.cn
8.2. Reseller Extension 8.2. Reseller Extension
This document was updated from draft-ietf-regext-reseller-ext. This document was updated from draft-ietf-regext-reseller-ext.
CNNIC, Verisign and Patrick Mevzek have already implemented this CNNIC, Verisign and Net::DRI (Patrick Mevzek) have already
extension. implemented this extension.
9. Security Considerations 9. Security Considerations
The object mapping extension described in this document does not The object mapping extension described in this document does not
provide any other security services or introduce any additional provide any other security services or introduce any additional
considerations beyond those described by [RFC5730], [RFC5731], considerations beyond those described by [RFC5730], [RFC5731],
[RFC5732] and [RFC5733] or those caused by the protocol layers used [RFC5732] and [RFC5733] or those caused by the protocol layers used
by EPP. by EPP.
10. Acknowledgement 10. Acknowledgment
The authors would like to thank Rik Ribbers, Marc Groeneweg, Patrick The authors would like to thank Rik Ribbers, Marc Groeneweg, Patrick
Mevzek, Antoin Verschuren and Scott Hollenbeck for their careful Mevzek, Antoin Verschuren and Scott Hollenbeck for their careful
review and valuable comments. review and valuable comments.
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at page 17, line 28 skipping to change at page 21, line 41
[W3C.REC-xmlschema-2-20041028] [W3C.REC-xmlschema-2-20041028]
Biron, P. and A. Malhotra, ""XML Schema Part 2: Datatypes Biron, P. and A. Malhotra, ""XML Schema Part 2: Datatypes
Second Edition", World Wide Web Consortium Recommendation Second Edition", World Wide Web Consortium Recommendation
REC-xmlschema-2-20041028", October 2004, REC-xmlschema-2-20041028", October 2004,
<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
11.2. Informative References 11.2. Informative References
[ID.draft-ietf-regext-org] [ID.draft-ietf-regext-org]
Zhou, L., Kong, N., Zhou, G., Lee, X., Gould, J., and S. Zhou, L., Kong, N., Zhou, G., Lee, X., and J. Gould,
Hollenbeck, "Extensible Provisioning Protocol (EPP) "Extensible Provisioning Protocol (EPP) Reseller Mapping",
Reseller Mapping", Apr 2017, Feb 2018,
<http://tools.ietf.org/html/draft-ietf-regext-org>. <http://tools.ietf.org/html/draft-ietf-regext-org>.
Appendix A. Change Log Appendix A. Change Log
Initial -00: Individual document submitted. Initial -00: Individual document submitted.
-01: -01:
* Updated abstract and introduction. * Updated abstract and introduction.
skipping to change at page 18, line 22 skipping to change at page 22, line 34
in <info> response. in <info> response.
-03: -03:
* Changed author information. * Changed author information.
* Updated section 3.1. * Updated section 3.1.
* Removed reseller name element in <info> response. * Removed reseller name element in <info> response.
* Added acknowledgement. * Added acknowledgment.
* Revised the typo "resellerr" to "resellerext". * Revised the typo "resellerr" to "resellerext".
WG document-00: WG document submitted WG document-00: WG document submitted
WG document-01: Keep document alive for further discussion. The WG document-01: Keep document alive for further discussion. The
requirement of reseller information is clear for both registrar requirement of reseller information is clear for both registrar
and registry. What we should reach a consensus is whether the and registry. What we should reach a consensus is whether the
extension should support only a name or ID and name. extension should support only a name or ID and name.
Organization WG document-00: Change to a generic organization object Organization WG document-00: Change to a generic organization object
extension. extension.
Organization WG document-01: Added "Imeplementation Status" section. Organization WG document-01: Added "Implementation Status" section.
Organization WG document-02: Accepted some of the feedbacks on the
mailing list. Modified the examples in the document.
Authors' Addresses Authors' Addresses
Linlin Zhou Linlin Zhou
CNNIC CNNIC
4 South 4th Street, Zhongguancun, Haidian District 4 South 4th Street, Zhongguancun, Haidian District
Beijing, Beijing 100190 Beijing, Beijing 100190
China China
Phone: +86 10 5881 2677 Phone: +86 10 5881 2677
 End of changes. 42 change blocks. 
101 lines changed or deleted 293 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/