draft-ietf-regext-unhandled-namespaces-05.txt | draft-ietf-regext-unhandled-namespaces-06.txt | |||
---|---|---|---|---|
Network Working Group J. Gould | Network Working Group J. Gould | |||
Internet-Draft VeriSign, Inc. | Internet-Draft VeriSign, Inc. | |||
Intended status: Standards Track M. Casanova | Intended status: Standards Track M. Casanova | |||
Expires: 19 May 2021 SWITCH | Expires: 10 June 2021 SWITCH | |||
15 November 2020 | 7 December 2020 | |||
Extensible Provisioning Protocol (EPP) Unhandled Namespaces | Extensible Provisioning Protocol (EPP) Unhandled Namespaces | |||
draft-ietf-regext-unhandled-namespaces-05 | draft-ietf-regext-unhandled-namespaces-06 | |||
Abstract | Abstract | |||
The Extensible Provisioning Protocol (EPP), as defined in RFC 5730, | The Extensible Provisioning Protocol (EPP), as defined in RFC 5730, | |||
includes a method for the client and server tof determine the objects | includes a method for the client and server to determine the objects | |||
to be managed during a session and the object extensions to be used | to be managed during a session and the object extensions to be used | |||
during a session. The services are identified using namespace URIs. | during a session. The services are identified using namespace URIs. | |||
How should the server handle service data that needs to be returned | How should the server handle service data that needs to be returned | |||
in the response when the client does not support the required service | in the response when the client does not support the required service | |||
namespace URI, which is referred to as an unhandled namespace? An | namespace URI, which is referred to as an unhandled namespace? An | |||
unhandled namespace is a significant issue for the processing of RFC | unhandled namespace is a significant issue for the processing of RFC | |||
5730 poll messages, since poll messages are inserted by the server | 5730 poll messages, since poll messages are inserted by the server | |||
prior to knowing the supported client services, and the client needs | prior to knowing the supported client services, and the client needs | |||
to be capable of processing all poll messages. This document defines | to be capable of processing all poll messages. This document defines | |||
an operational practice that enables the server to return information | an operational practice that enables the server to return information | |||
skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
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 19 May 2021. | This Internet-Draft will expire on 10 June 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
3.1. Unhandled Object-Level Extension . . . . . . . . . . . . 5 | 3.1. Unhandled Object-Level Extension . . . . . . . . . . . . 5 | |||
3.2. Unhandled Command-Response Extension . . . . . . . . . . 7 | 3.2. Unhandled Command-Response Extension . . . . . . . . . . 7 | |||
4. Signaling Client and Server Support . . . . . . . . . . . . . 10 | 4. Signaling Client and Server Support . . . . . . . . . . . . . 10 | |||
5. Usage with General EPP Responses . . . . . . . . . . . . . . 10 | 5. Usage with General EPP Responses . . . . . . . . . . . . . . 10 | |||
6. Usage with Poll Message EPP Responses . . . . . . . . . . . . 12 | 6. Usage with Poll Message EPP Responses . . . . . . . . . . . . 12 | |||
7. Implementation Considerations . . . . . . . . . . . . . . . . 15 | 7. Implementation Considerations . . . . . . . . . . . . . . . . 15 | |||
7.1. Client Implementation Considerations . . . . . . . . . . 15 | 7.1. Client Implementation Considerations . . . . . . . . . . 15 | |||
7.2. Server Implementation Considerations . . . . . . . . . . 16 | 7.2. Server Implementation Considerations . . . . . . . . . . 16 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16 | 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 17 | 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 16 | |||
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | |||
9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 18 | 9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 17 | |||
9.2. SWITCH Automated DNSSEC Provisioning Process . . . . . . 18 | 9.2. SWITCH Automated DNSSEC Provisioning Process . . . . . . 18 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 19 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 20 | 12.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20 | Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20 | |||
A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20 | A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20 | |||
A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20 | A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20 | |||
A.3. Change from 02 to REGEXT 00 . . . . . . . . . . . . . . . 20 | A.3. Change from 02 to REGEXT 00 . . . . . . . . . . . . . . . 20 | |||
A.4. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 20 | A.4. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 20 | |||
A.5. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 20 | A.5. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 20 | |||
A.6. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21 | A.6. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21 | |||
A.7. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 21 | A.7. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 21 | |||
A.8. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 21 | A.8. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 21 | |||
A.9. Change from REGEXT 05 to REGEXT 06 . . . . . . . . . . . 21 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
1. Introduction | 1. Introduction | |||
The Extensible Provisioning Protocol (EPP), as defined in [RFC5730], | The Extensible Provisioning Protocol (EPP), as defined in [RFC5730], | |||
includes a method for the client and server to determine the objects | includes a method for the client and server to determine the objects | |||
to be managed during a session and the object extensions to be used | to be managed during a session and the object extensions to be used | |||
during a session. The services are identified using namespace URIs. | during a session. The services are identified using namespace URIs. | |||
How should the server handle service data that needs to be returned | How should the server handle service data that needs to be returned | |||
in the response when the client does not support the required service | in the response when the client does not support the required service | |||
skipping to change at page 4, line 26 ¶ | skipping to change at page 4, line 26 ¶ | |||
An Unhandled Namespace is an XML namespace that is associated with a | An Unhandled Namespace is an XML namespace that is associated with a | |||
response extension that is not included in the client-specified EPP | response extension that is not included in the client-specified EPP | |||
login services of [RFC5730]. The EPP login services consists of the | login services of [RFC5730]. The EPP login services consists of the | |||
set of XML namespace URIs included in the <objURI> or <extURI> | set of XML namespace URIs included in the <objURI> or <extURI> | |||
elements of the [RFC5730] EPP <login> command. The services | elements of the [RFC5730] EPP <login> command. The services | |||
supported by the server are included in the <objURI> and <extURI> | supported by the server are included in the <objURI> and <extURI> | |||
elements of the [RFC5730] EPP <greeting>, which should be a superset | elements of the [RFC5730] EPP <greeting>, which should be a superset | |||
of the login services included in the EPP <login> command. A server | of the login services included in the EPP <login> command. A server | |||
may have information associated with a specific namespace that it | may have information associated with a specific namespace that it | |||
needs to return in the response to a client. The unhandled | needs to return in the response to a client. The unhandled | |||
namespaces problem exists when the server has information, that it | namespaces problem exists when the server has information that it | |||
needs to return to the client, that is not supported by the client | needs to return to the client but the namespace of the information is | |||
based on the negotiated EPP <login> command services. | not supported by the client based on the negotiated EPP <login> | |||
command services. | ||||
3. Use of EPP <extValue> for Unhandled Namespace Data | 3. Use of EPP <extValue> for Unhandled Namespace Data | |||
In [RFC5730], the <extValue> element is used to provide additional | In [RFC5730], the <extValue> element is used to provide additional | |||
error diagnostic information, including the <value> element that | error diagnostic information, including the <value> element that | |||
identifies the client-provided element that caused a server error | identifies the client-provided element that caused a server error | |||
condition, and the <reason> element containing the human-readable | condition and the <reason> element containing the human-readable | |||
message that describes the reason for the error. This operational | message that describes the reason for the error. This operational | |||
practice extends the use of the <extValue> element for the purpose of | practice extends the use of the <extValue> element for the purpose of | |||
returning unhandled namespace information in a successful response. | returning unhandled namespace information in a successful response. | |||
When a server has data to return to the client, that the client does | When a server has data to return to the client that the client does | |||
not support based on the login services, the server MAY return a | not support based on the login services, the server MAY return a | |||
successful response, with the data for each unsupported namespace | successful response, with the data for each unsupported namespace | |||
moved into an [RFC5730] <extValue> element. The unhandled namespace | moved into an [RFC5730] <extValue> element. The unhandled namespace | |||
will not cause an error response, but the unhandled namespace data | will not cause an error response, but the unhandled namespace data | |||
will instead be moved to an <extValue> element, along with a reason | will instead be moved to an <extValue> element, along with a reason | |||
why the unhandled namespace data could not be included in the | why the unhandled namespace data could not be included in the | |||
appropriate location of the response. The <extValue> element XML | appropriate location of the response. The <extValue> element XML | |||
will not be processed by the XML processor. The <extValue> element | will not be processed by the XML processor. The <extValue> element | |||
contains the following child elements: | contains the following child elements: | |||
skipping to change at page 8, line 15 ¶ | skipping to change at page 8, line 15 ¶ | |||
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>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
S: </result> | S: </result> | |||
S: <extension> | S: <extension> | |||
S: [NAMESPACE-XML] | S: [NAMESPACE-XML] | |||
S: </extension> | S: </extension> | |||
S: <trID> | S: <trID> | |||
S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
S: </trID> | S: </trID> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
Template unhandled namespace response for an unsupported command- | Template unhandled namespace response for an unsupported command- | |||
response extension. The [NAMESPACE-XML] variable represents the | response extension. The [NAMESPACE-XML] variable represents the | |||
command-response extension XML and the [NAMESPACE-URI] variable | command-response extension XML and the [NAMESPACE-URI] variable | |||
represents the command-response extension XML namespace URI. | represents the command-response extension XML namespace URI. | |||
skipping to change at page 9, line 15 ¶ | skipping to change at page 9, line 15 ¶ | |||
[RFC5910] DS Data Interface <info> response converted into an | [RFC5910] DS Data Interface <info> response converted into an | |||
unhandled namespace response. | unhandled namespace response. | |||
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>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
S: <extValue> | S: <extValue> | |||
S: <value> | S: <value> | |||
S: <secDNS:infData | S: <secDNS:infData | |||
S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> | S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> | |||
S: <secDNS:dsData> | S: <secDNS:dsData> | |||
S: <secDNS:keyTag>12345</secDNS:keyTag> | S: <secDNS:keyTag>12345</secDNS:keyTag> | |||
S: <secDNS:alg>3</secDNS:alg> | S: <secDNS:alg>3</secDNS:alg> | |||
S: <secDNS:digestType>1</secDNS:digestType> | S: <secDNS:digestType>1</secDNS:digestType> | |||
S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | |||
S: </secDNS:dsData> | S: </secDNS:dsData> | |||
S: </secDNS:infData> | S: </secDNS:infData> | |||
S: </value> | S: </value> | |||
S: <reason> | S: <reason> | |||
S: urn:ietf:params:xml:ns:secDNS-1.1 not in login services | S: urn:ietf:params:xml:ns:secDNS-1.1 not in login services | |||
S: </reason> | S: </reason> | |||
S: </extValue> | S: </extValue> | |||
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> | |||
S: <domain:contact type="tech">sh8013</domain:contact> | S: <domain:contact type="tech">sh8013</domain:contact> | |||
S: <domain:ns> | S: <domain:ns> | |||
S: <domain:hostObj>ns1.example.com</domain:hostObj> | S: <domain:hostObj>ns1.example.com</domain:hostObj> | |||
S: <domain:hostObj>ns2.example.com</domain:hostObj> | S: <domain:hostObj>ns2.example.com</domain:hostObj> | |||
S: </domain:ns> | S: </domain:ns> | |||
S: <domain:host>ns1.example.com</domain:host> | S: <domain:host>ns1.example.com</domain:host> | |||
S: <domain:host>ns2.example.com</domain:host> | S: <domain:host>ns2.example.com</domain:host> | |||
S: <domain:clID>ClientX</domain:clID> | S: <domain:clID>ClientX</domain:clID> | |||
S: <domain:crID>ClientY</domain:crID> | S: <domain:crID>ClientY</domain:crID> | |||
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate> | S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate> | |||
S: <domain:upID>ClientX</domain:upID> | S: <domain:upID>ClientX</domain:upID> | |||
S: <domain:upDate>2020-12-03T09:00:00.0Z</domain:upDate> | S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate> | |||
S: <domain:exDate>2021-04-03T22:00:00.0Z</domain:exDate> | S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate> | |||
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate> | S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate> | |||
S: <domain:authInfo> | S: <domain:authInfo> | |||
S: <domain:pw>2fooBAR</domain:pw> | S: <domain:pw>2fooBAR</domain:pw> | |||
S: </domain:authInfo> | S: </domain:authInfo> | |||
S: </domain:infData> | S: </domain:infData> | |||
S: </resData> | S: </resData> | |||
S: <trID> | S: <trID> | |||
S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
S: </trID> | S: </trID> | |||
skipping to change at page 10, line 28 ¶ | skipping to change at page 10, line 28 ¶ | |||
practice using the existing EPP protocol, where the client and the | practice using the existing EPP protocol, where the client and the | |||
server can signal support for the operational practice using a | server can signal support for the operational practice using a | |||
namespace URI in the login and greeting extension services. The | namespace URI in the login and greeting extension services. The | |||
namespace URI "urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0" | namespace URI "urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0" | |||
is used to signal support for the operational practice. The client | is used to signal support for the operational practice. The client | |||
includes the namespace URI in an <svcExtension> <extURI> element of | includes the namespace URI in an <svcExtension> <extURI> element of | |||
the [RFC5730] <login> Command. The server includes the namespace URI | the [RFC5730] <login> Command. The server includes the namespace URI | |||
in an <svcExtension> <extURI> element of the [RFC5730] Greeting. | in an <svcExtension> <extURI> element of the [RFC5730] Greeting. | |||
A client that receives the namespace URI in the server's Greeting | A client that receives the namespace URI in the server's Greeting | |||
extension services, can expect the following supported behavior by | extension services can expect the following supported behavior by the | |||
the server: | server: | |||
1. Support unhandled namespace object-level extensions and command- | 1. Support unhandled namespace object-level extensions and command- | |||
response extensions in EPP poll messages, per Section 6. | response extensions in EPP poll messages, per Section 6. | |||
2. Support the option of unhandled namespace command-response | 2. Support the option of unhandled namespace command-response | |||
extensions in general EPP responses, per Section 5. | extensions in general EPP responses, per Section 5. | |||
A server that receives the namespace URI in the client's <login> | A server that receives the namespace URI in the client's <login> | |||
Command extension services, can expect the following supported | Command extension services can expect the following supported | |||
behavior by the client: | behavior by the client: | |||
1. Support monitoring the EPP poll messages and general EPP | 1. Support monitoring the EPP poll messages and general EPP | |||
responses for unhandled namespaces. | responses for unhandled namespaces. | |||
5. Usage with General EPP Responses | 5. Usage with General EPP Responses | |||
The unhandled namespace approach defined in Section 3 MAY be used for | The unhandled namespace approach defined in Section 3 MAY be used for | |||
a general EPP response to an EPP command. A general EPP response | a general EPP response to an EPP command. A general EPP response | |||
includes any non-poll message EPP response. The use of the unhandled | includes any non-poll message EPP response. The use of the unhandled | |||
skipping to change at page 11, line 20 ¶ | skipping to change at page 11, line 20 ¶ | |||
returned when the server successfully executes an object-level EPP | returned when the server successfully executes an object-level EPP | |||
command extension. The server MAY return an unhandled object-level | command extension. The server MAY return an unhandled object-level | |||
extension to the client as defined in Section 3.1. | extension to the client as defined in Section 3.1. | |||
Returning domain name Redemption Grace Period (RGP) data, based on | Returning domain name Redemption Grace Period (RGP) data, based on | |||
[RFC3915], provides an example of applying the unhandled namespace | [RFC3915], provides an example of applying the unhandled namespace | |||
approach for a general EPP response. If the client does not include | approach for a general EPP response. If the client does not include | |||
the "urn:ietf:params:xml:ns:rgp-1.0" namespace URI in the login | the "urn:ietf:params:xml:ns:rgp-1.0" namespace URI in the login | |||
services, and the domain <info> response of a domain name does have | services, and the domain <info> response of a domain name does have | |||
RGP information, the server MAY exclude the <rgp:infData> element | RGP information, the server MAY exclude the <rgp:infData> element | |||
from the EPP response or MAY include it under in the <extValue> | from the EPP response or MAY include it under the <extValue> element | |||
element per Section 3.2. | per Section 3.2. | |||
[RFC5731] domain name <info> response with the unhandled [RFC3915] | [RFC5731] domain name <info> response with the unhandled [RFC3915] | |||
<rgp:infData> element included under an <extValue> element: | <rgp:infData> element included under an <extValue> element: | |||
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>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
S: <extValue> | S: <extValue> | |||
skipping to change at page 11, line 44 ¶ | skipping to change at page 11, line 44 ¶ | |||
S: <rgp:rgpStatus s="redemptionPeriod"/> | S: <rgp:rgpStatus s="redemptionPeriod"/> | |||
S: </rgp:infData> | S: </rgp:infData> | |||
S: </value> | S: </value> | |||
S: <reason> | S: <reason> | |||
S: urn:ietf:params:xml:ns:rgp-1.0 not in login services | S: urn:ietf:params:xml:ns:rgp-1.0 not in login services | |||
S: </reason> | S: </reason> | |||
S: </extValue> | S: </extValue> | |||
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="pendingDelete"/> | S: <domain:status s="pendingDelete"/> | |||
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> | |||
S: <domain:contact type="tech">sh8013</domain:contact> | S: <domain:contact type="tech">sh8013</domain:contact> | |||
S: <domain:ns> | S: <domain:ns> | |||
S: <domain:hostObj>ns1.example.com</domain:hostObj> | S: <domain:hostObj>ns1.example.com</domain:hostObj> | |||
S: <domain:hostObj>ns1.example.net</domain:hostObj> | S: <domain:hostObj>ns1.example.net</domain:hostObj> | |||
S: </domain:ns> | S: </domain:ns> | |||
skipping to change at page 13, line 17 ¶ | skipping to change at page 13, line 17 ¶ | |||
<extValue> element: | <extValue> element: | |||
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="1301"> | S: <result code="1301"> | |||
S: <msg>Command completed successfully; ack to dequeue</msg> | S: <msg>Command completed successfully; ack to dequeue</msg> | |||
S: <extValue> | S: <extValue> | |||
S: <value> | S: <value> | |||
S: <changePoll:changeData | S: <changePoll:changeData | |||
S: xmlns:changePoll="urn:ietf:params:xml:ns:changePoll-1.0" | S: xmlns:changePoll= | |||
S: "urn:ietf:params:xml:ns:changePoll-1.0" | ||||
S: state="after"> | S: state="after"> | |||
S: <changePoll:operation>update</changePoll:operation> | S: <changePoll:operation>update</changePoll:operation> | |||
S: <changePoll:date> | S: <changePoll:date> | |||
S: 2020-11-22T05:00:00.000Z</changePoll:date> | S: 2020-11-22T05:00:00.000Z</changePoll:date> | |||
S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> | S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> | |||
S: <changePoll:who>URS Admin</changePoll:who> | S: <changePoll:who>URS Admin</changePoll:who> | |||
S: <changePoll:caseId type="urs">urs123 | S: <changePoll:caseId type="urs">urs123 | |||
S: </changePoll:caseId> | S: </changePoll:caseId> | |||
S: <changePoll:reason>URS Lock</changePoll:reason> | S: <changePoll:reason>URS Lock</changePoll:reason> | |||
S: </changePoll:changeData> | S: </changePoll:changeData> | |||
S: </value> | S: </value> | |||
S: <reason> | S: <reason> | |||
S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services | S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services | |||
S: </reason> | S: </reason> | |||
S: </extValue> | S: </extValue> | |||
S: </result> | S: </result> | |||
S: <msgQ | S: <msgQ count="15" id="1"> | |||
S: count="15" | ||||
S: id="1" | ||||
S: > | ||||
S: <qDate>2020-11-22T05:00:00.000Z</qDate> | S: <qDate>2020-11-22T05:00:00.000Z</qDate> | |||
S: <msg>Registry initiated update of domain.</msg> | S: <msg>Registry initiated update of domain.</msg> | |||
S: </msgQ> | S: </msgQ> | |||
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>change-poll.tld</domain:name> | S: <domain:name>change-poll.tld</domain:name> | |||
S: <domain:roid>EXAMPLE1-REP</domain:roid> | S: <domain:roid>EXAMPLE1-REP</domain:roid> | |||
S: <domain:status s="serverUpdateProhibited"/> | S: <domain:status s="serverUpdateProhibited"/> | |||
S: <domain:status s="serverDeleteProhibited"/> | S: <domain:status s="serverDeleteProhibited"/> | |||
skipping to change at page 15, line 19 ¶ | skipping to change at page 15, line 17 ¶ | |||
S: <changePoll:date> | S: <changePoll:date> | |||
S: 2020-11-22T05:00:00.000Z</changePoll:date> | S: 2020-11-22T05:00:00.000Z</changePoll:date> | |||
S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> | S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> | |||
S: <changePoll:who>URS Admin</changePoll:who> | S: <changePoll:who>URS Admin</changePoll:who> | |||
S: <changePoll:caseId type="urs">urs123 | S: <changePoll:caseId type="urs">urs123 | |||
S: </changePoll:caseId> | S: </changePoll:caseId> | |||
S: <changePoll:reason>URS Lock</changePoll:reason> | S: <changePoll:reason>URS Lock</changePoll:reason> | |||
S: </changePoll:changeData> | S: </changePoll:changeData> | |||
S: </value> | S: </value> | |||
S: <reason> | S: <reason> | |||
S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services | S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services | |||
S: </reason> | S: </reason> | |||
S: </extValue> | S: </extValue> | |||
S: </result> | S: </result> | |||
S: <msgQ | S: <msgQ count="15" id="1"> | |||
S: count="15" | ||||
S: id="1" | ||||
S: > | ||||
S: <qDate>2020-11-22T05:00:00.000Z</qDate> | S: <qDate>2020-11-22T05:00:00.000Z</qDate> | |||
S: <msg>Registry initiated update of domain.</msg> | S: <msg>Registry initiated update of domain.</msg> | |||
S: </msgQ> | S: </msgQ> | |||
S: <trID> | S: <trID> | |||
S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
S: </trID> | S: </trID> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
7. Implementation Considerations | 7. Implementation Considerations | |||
There are implementation considerations for the client and the server | There are implementation considerations for the client and the server | |||
to help address the risk of the client ignoring unhandled namespace | to help address the risk of the client ignoring unhandled namespace | |||
information included in an EPP response that is needed to meet | information included in an EPP response that is needed to meet | |||
technical, policy, or legal requirements. | technical, policy, or legal requirements. | |||
7.1. Client Implementation Considerations | 7.1. Client Implementation Considerations | |||
To reduce the likelihood of a client receiving unhandled namespace | To reduce the likelihood of a client receiving unhandled namespace | |||
information, the client should consider the following: | information, the client should consider implementing the following: | |||
1. Ensure that the client presents the complete set of what it | ||||
supports when presenting its login services. If there are gaps | ||||
between the services supported by the client and the login | ||||
services included in the login command, the client may receive | ||||
unhandled namespace information that the client could have | ||||
supported. | ||||
1. Ensure that the login services is accurate with what is supported | ||||
by the client. If there are gaps between the services supported | ||||
by the client and the login services included in the login | ||||
command, the client may receive unhandled namespace information | ||||
that the client could have supported. | ||||
2. Support all of the services included in the server greeting | 2. Support all of the services included in the server greeting | |||
services that may be included in an EPP response, including the | services that may be included in an EPP response, including the | |||
poll queue responses. The client should evaluate the gaps | poll queue responses. The client should evaluate the gaps | |||
between the greeting services and the login services provided in | between the greeting services and the login services provided in | |||
the login command to identify extensions that need to be | the login command to identify extensions that need to be | |||
supported. | supported. | |||
3. Proactively monitor for unhandled namespace information in the | 3. Proactively monitor for unhandled namespace information in the | |||
EPP responses, by looking for the inclusion of the <extValue> | EPP responses, by looking for the inclusion of the <extValue> | |||
element in successful responses, recording the unsupported | element in successful responses, recording the unsupported | |||
namespace included in the <reason> element, and recording the | namespace included in the <reason> element, and recording the | |||
unhandled namespace information included in the <value> element | unhandled namespace information included in the <value> element | |||
for later processing. The unhandled namespace can be implemented | for later processing. The unhandled namespace should be | |||
by the client to ensure that information is processed fully in | implemented by the client to ensure that information is processed | |||
future EPP responses. | fully in future EPP responses. | |||
7.2. Server Implementation Considerations | 7.2. Server Implementation Considerations | |||
To assist the clients in recognizing unhandled namespaces, the server | To assist the clients in recognizing unhandled namespaces, the server | |||
should consider the following: | should consider implementing the following: | |||
1. Monitor for returning unhandled namespace information to clients | 1. Monitor for returning unhandled namespace information to clients | |||
and report it to the clients out-of-band to EPP so the clients | and report it to the clients out-of-band to EPP so the clients | |||
can add support for the unhandled namespaces. | can add support for the unhandled namespaces. | |||
2. Look for the unhandled namespace support in the login services | 2. Look for the unhandled namespace support in the login services | |||
when returning optional unhandled namespace information in | when returning optional unhandled namespace information in | |||
General EPP Responses. | General EPP Responses. | |||
8. IANA Considerations | 8. IANA Considerations | |||
skipping to change at page 21, line 40 ¶ | skipping to change at page 21, line 38 ¶ | |||
returning unhandled namespace information. | returning unhandled namespace information. | |||
2. Based on feedback from Thomas Corte, added a Implementation | 2. Based on feedback from Thomas Corte, added a Implementation | |||
Considerations section to cover client and server implementation | Considerations section to cover client and server implementation | |||
recommendations such as monitoring unhandled namespaces in the | recommendations such as monitoring unhandled namespaces in the | |||
server to report to the clients out-of-band and monitoring for | server to report to the clients out-of-band and monitoring for | |||
responses containing unhanded namespace information in the client | responses containing unhanded namespace information in the client | |||
to proactively add support for the unhandled namespaces. | to proactively add support for the unhandled namespaces. | |||
3. Moved RFC 3735 and RFC 7451 to informative references to address | 3. Moved RFC 3735 and RFC 7451 to informative references to address | |||
down reference errors in idnits. | down reference errors in idnits. | |||
A.9. Change from REGEXT 05 to REGEXT 06 | ||||
1. Nit updates made based on the feedback provided by the Document | ||||
Shepherd, David Smith. | ||||
Authors' Addresses | Authors' Addresses | |||
James Gould | James Gould | |||
VeriSign, Inc. | VeriSign, Inc. | |||
12061 Bluemont Way | 12061 Bluemont Way | |||
Reston, VA 20190 | Reston, VA 20190 | |||
United States of America | United States of America | |||
Email: jgould@verisign.com | Email: jgould@verisign.com | |||
URI: http://www.verisigninc.com | URI: http://www.verisigninc.com | |||
End of changes. 29 change blocks. | ||||
52 lines changed or deleted | 56 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |