rfc9038.original | rfc9038.txt | |||
---|---|---|---|---|
Network Working Group J. Gould | Internet Engineering Task Force (IETF) J. Gould | |||
Internet-Draft VeriSign, Inc. | Request for Comments: 9038 VeriSign, Inc. | |||
Intended status: Standards Track M. Casanova | Category: Standards Track M. Casanova | |||
Expires: 23 August 2021 SWITCH | ISSN: 2070-1721 SWITCH | |||
19 February 2021 | May 2021 | |||
Extensible Provisioning Protocol (EPP) Unhandled Namespaces | Extensible Provisioning Protocol (EPP) Unhandled Namespaces | |||
draft-ietf-regext-unhandled-namespaces-08 | ||||
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 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, | |||
and an "unhandled namespace" is one that is associated with a service | and an "unhandled namespace" is one that is associated with a service | |||
not supported by the client. This document defines an operational | not supported by the client. This document defines an operational | |||
practice that enables the server to return information associated | practice that enables the server to return information associated | |||
with unhandled namespace URIs that is compliant with the negotiated | with unhandled namespace URIs and that maintains compliance with the | |||
services defined in RFC 5730. | negotiated services defined in RFC 5730. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 23 August 2021. | 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/rfc9038. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | 1.1. Conventions Used in This Document | |||
2. Unhandled Namespaces . . . . . . . . . . . . . . . . . . . . 4 | 2. Unhandled Namespaces | |||
3. Use of EPP <extValue> for Unhandled Namespace Data . . . . . 4 | 3. Use of EPP <extValue> for Unhandled Namespace Data | |||
3.1. Unhandled Object-Level Extension . . . . . . . . . . . . 5 | 3.1. Unhandled Object-Level Extension | |||
3.2. Unhandled Command-Response Extension . . . . . . . . . . 7 | 3.2. Unhandled Command-Response Extension | |||
4. Signaling Client and Server Support . . . . . . . . . . . . . 10 | 4. Signaling Client and Server Support | |||
5. Usage with General EPP Responses . . . . . . . . . . . . . . 11 | 5. Usage with General EPP Responses | |||
6. Usage with Poll Message EPP Responses . . . . . . . . . . . . 13 | 6. Usage with Poll-Message EPP Responses | |||
7. Implementation Considerations . . . . . . . . . . . . . . . . 16 | 7. Implementation Considerations | |||
7.1. Client Implementation Considerations . . . . . . . . . . 16 | 7.1. Client Implementation Considerations | |||
7.2. Server Implementation Considerations . . . . . . . . . . 16 | 7.2. Server Implementation Considerations | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 8. IANA Considerations | |||
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 17 | 8.1. XML Namespace | |||
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 17 | 8.2. EPP Extension Registry | |||
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | 9. Security Considerations | |||
9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 18 | 10. References | |||
9.2. SWITCH Automated DNSSEC Provisioning Process . . . . . . 18 | 10.1. Normative References | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 10.2. Informative References | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | Acknowledgements | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 19 | ||||
12.2. Informative References . . . . . . . . . . . . . . . . . 20 | ||||
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20 | ||||
A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20 | ||||
A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 21 | ||||
A.3. Change from 02 to REGEXT 00 . . . . . . . . . . . . . . . 21 | ||||
A.4. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 21 | ||||
A.5. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 21 | ||||
A.6. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21 | ||||
A.7. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 21 | ||||
A.8. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 22 | ||||
A.9. Change from REGEXT 05 to REGEXT 06 . . . . . . . . . . . 22 | ||||
A.10. Change from REGEXT 06 to REGEXT 07 . . . . . . . . . . . 22 | ||||
A.11. Change from REGEXT 07 to REGEXT 08 . . . . . . . . . . . 22 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | ||||
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 | |||
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 | unhandled namespace is a significant issue for the processing of the | |||
[RFC5730] poll messages, since poll messages are inserted by the | poll messages described in [RFC5730], since poll messages are | |||
server prior to knowing the supported client services, and the client | inserted by the server prior to knowing the supported client | |||
needs to be capable of processing all poll messages. Returning an | services, and the client needs to be capable of processing all poll | |||
unhandled namespace poll message is not compliant with the negotiated | messages. Returning an unhandled namespace poll message is not | |||
services defined in [RFC5730] and returning an error makes the | compliant with the negotiated services defined in [RFC5730], and | |||
unhandled namespace poll message a poison message by halting the | returning an error makes the unhandled namespace poll message a | |||
processing of the poll queue. An unhandled namespace is an issue | poison message by halting the processing of the poll queue. An | |||
also for general EPP responses when the server has information that | unhandled namespace is also an issue for general EPP responses when | |||
it cannot return to the client due to the client's supported | the server has information that it cannot return to the client due to | |||
services. The server should be able to return unhandled namespace | the client's supported services. The server should be able to return | |||
information that the client can process later. This document defines | unhandled namespace information that the client can process later. | |||
an operational practice that enables the server to return information | This document defines an operational practice that enables the server | |||
associated with unhandled namespace URIs that is compliant with the | to return information associated with unhandled namespace URIs and | |||
negotiated services defined in [RFC5730]. | that maintains compliance with the negotiated services defined in | |||
[RFC5730]. | ||||
1.1. Conventions Used in This Document | 1.1. 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", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
XML is case sensitive. Unless stated otherwise, XML specifications | XML [W3C.REC-xml11-20060816] is case sensitive. Unless stated | |||
and examples provided in this document MUST be interpreted in the | otherwise, XML specifications and examples provided in this document | |||
character case presented in order to develop a conforming | MUST be interpreted in the character case presented in order to | |||
implementation. | develop a conforming implementation. | |||
In examples, "S:" represents lines returned by a protocol server. | In examples, "S:" represents lines returned by a protocol server. | |||
Indentation and white space in examples are provided only to | Indentation and white space in examples are provided only to | |||
illustrate element relationships and are not a required feature of | illustrate element relationships and are not required features of | |||
this protocol. | this protocol. | |||
The examples reference XML namespace prefixes that are used for the | The examples reference XML namespace prefixes that are used for the | |||
associated XML namespaces. Implementations MUST NOT depend on the | associated XML namespaces. Implementations MUST NOT depend on the | |||
example XML namespaces and instead employ a proper namespace-aware | example XML namespaces and instead employ a proper namespace-aware | |||
XML parser and serializer to interpret and output the XML documents. | XML parser and serializer to interpret and output the XML documents. | |||
The example namespace prefixes used and their associated XML | The example namespace prefixes used and their associated XML | |||
namespaces include: | namespaces include: | |||
"changePoll": urn:ietf:params:xml:ns:changePoll-1.0 | changePoll: urn:ietf:params:xml:ns:changePoll-1.0 | |||
"domain": urn:ietf:params:xml:ns:domain-1.0 | ||||
"secDNS": urn:ietf:params:xml:ns:secDNS-1.1 | domain: urn:ietf:params:xml:ns:domain-1.0 | |||
secDNS: urn:ietf:params:xml:ns:secDNS-1.1 | ||||
In the template example XML, placeholder content is represented by | In the template example XML, placeholder content is represented by | |||
the following variables: | the following variables: | |||
"[NAMESPACE-XML]": XML content associated with a login service | [NAMESPACE-XML]: XML content associated with a login service | |||
namespace URI. An example is the <domain:infData> element | namespace URI. An example is the <domain:infData> element | |||
content in [RFC5731]. | content in [RFC5731]. | |||
"[NAMESPACE-URI]": XML namespace URI associated with the [NAMESPACE- | ||||
[NAMESPACE-URI]: XML namespace URI associated with the [NAMESPACE- | ||||
XML] XML content. An example is "urn:ietf:params:xml:ns:domain- | XML] XML content. An example is "urn:ietf:params:xml:ns:domain- | |||
1.0" in [RFC5731]. | 1.0" in [RFC5731]. | |||
2. Unhandled Namespaces | 2. Unhandled Namespaces | |||
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 consist 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 EPP <login> command [RFC5730]. 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 EPP <greeting> [RFC5730], 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 but the namespace of the information is | needs to return to the client, but the namespace of the information | |||
not supported by the client based on the negotiated EPP <login> | is not supported by the client based on the negotiated EPP <login> | |||
command services. | 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 <extValue> element [RFC5730]. 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 will | |||
will not be processed by the XML processor. The <extValue> element | not be processed by the XML processor. The <extValue> element | |||
contains the following child elements: | contains the following child elements: | |||
<value>: Contains a child-element with the unhandled namespace XML. | <value>: Contains a child element with the unhandled namespace XML. | |||
The unhandled namespace MUST be declared in the child element or | The unhandled namespace MUST be declared in the child element or | |||
any containing element including the root element. XML | any containing element, including the root element. XML | |||
processing of the <value> element is disabled by the XML schema | processing of the <value> element is disabled by the XML schema | |||
in [RFC5730], so the information can safely be returned in the | in [RFC5730], so the information can safely be returned in the | |||
<value> element. | <value> element. | |||
<reason>: A formatted human-readable message that indicates the | ||||
<reason>: A formatted, human-readable message that indicates the | ||||
reason the unhandled namespace data was not returned in the | reason the unhandled namespace data was not returned in the | |||
appropriate location of the response. The formatted reason | appropriate location of the response. The formatted reason | |||
SHOULD follow the Augmented Backus-Naur Form (ABNF) grammar | SHOULD follow the Augmented Backus-Naur Form (ABNF) grammar | |||
[RFC5234] format: NAMESPACE-URI "not in login services", where | [RFC5234] format: NAMESPACE-URI " not in login services", where | |||
NAMESPACE-URI is the unhandled XML namespace like | NAMESPACE-URI is the unhandled XML namespace like | |||
"urn:ietf:params:xml:ns:domain-1.0" for [RFC5731]. | "urn:ietf:params:xml:ns:domain-1.0" in [RFC5731]. | |||
This document applies to the handling of unsupported namespaces for | This document applies to the handling of unsupported namespaces for | |||
[RFC3735] object-level extensions and command-response extensions. | object-level extensions and command-response extensions [RFC3735]. | |||
This document does not apply to the handling of unsupported | This document does not apply to the handling of unsupported | |||
namespaces for [RFC3735] protocol-level extensions or authentication | namespaces for protocol-level extensions or authentication- | |||
information extensions. Refer to the following sections on how to | information extensions [RFC3735]. Refer to the following sections on | |||
handle an unsupported object-level extension namespace or an | how to handle an unsupported object-level extension namespace or an | |||
unsupported command-response extension namespace. | unsupported command-response extension namespace. | |||
3.1. Unhandled Object-Level Extension | 3.1. Unhandled Object-Level Extension | |||
An object-level extension in [RFC5730] is a child element of the | An object-level extension in [RFC5730] is a child element of the | |||
<resData> element. If the client does not handle the namespace of | <resData> element. If the client does not handle the namespace of | |||
the object-level extension, then the <resData> element is removed and | the object-level extension, then the <resData> element is removed and | |||
its object-level extension child element is moved into a [RFC5730] | its object-level extension child element is moved into an <extValue> | |||
<extValue> <value> element, with the namespace URI included in the | <value> element [RFC5730], with the namespace URI included in the | |||
corresponding <extValue> <reason> element. The response becomes a | corresponding <extValue> <reason> element. The response becomes a | |||
general EPP response without the <resData> element. | general EPP response without the <resData> element. | |||
Template response for a supported object-level extension. The | Below is a template response for a supported object-level extension. | |||
[NAMESPACE-XML] variable represents the object-level extension XML. | The [NAMESPACE-XML] variable represents the object-level extension | |||
XML. | ||||
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: <resData> | S: <resData> | |||
S: [NAMESPACE-XML] | S: [NAMESPACE-XML] | |||
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> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
Template for an unhandled namespace response for an unsupported | Below is a template for an unhandled namespace response for an | |||
object-level extension. The [NAMESPACE-XML] variable represents the | unsupported object-level extension. The [NAMESPACE-XML] variable | |||
object-level extension XML and the [NAMESPACE-URI] variable | represents the object-level extension XML, and the [NAMESPACE-URI] | |||
represents the object-level extension XML namespace URI. | variable represents the object-level extension XML namespace URI. | |||
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: [NAMESPACE-XML] | S: [NAMESPACE-XML] | |||
S: </value> | S: </value> | |||
skipping to change at page 6, line 49 ¶ | skipping to change at line 262 ¶ | |||
S: </result> | S: </result> | |||
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> | |||
The EPP response is converted from an object response to a general | The EPP response is converted from an object response to a general | |||
EPP response by the server when the client does not support the | EPP response by the server when the client does not support the | |||
object-level extension namespace URI. Below is an example of | object-level extension namespace URI. | |||
converting the <transfer> query response example in Section 3.1.3 of | ||||
[RFC5731] to an unhandled namespace response. | ||||
[RFC5731] example <transfer> query response converted into an | Below is an example of a <transfer> query response (see Section 3.1.3 | |||
unhandled namespace response: | of [RFC5731]) converted into an 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: <domain:trnData | S: <domain:trnData | |||
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
skipping to change at page 7, line 43 ¶ | skipping to change at line 302 ¶ | |||
S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
S: </trID> | S: </trID> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
3.2. Unhandled Command-Response Extension | 3.2. Unhandled Command-Response Extension | |||
A command-response extension in [RFC5730] is a child element of the | A command-response extension in [RFC5730] is a child element of the | |||
<extension> element. If the client does not handle the namespace of | <extension> element. If the client does not handle the namespace of | |||
the command-response extension, the command-response child element is | the command-response extension, the command-response child element is | |||
moved into an [RFC5730] <extValue> <value> element, with the | moved into an <extValue> <value> element [RFC5730], with the | |||
namespace URI included in the corresponding <extValue> <reason> | namespace URI included in the corresponding <extValue> <reason> | |||
element. If after moving the command-response child element there | element. Afterwards, if there are no additional command-response | |||
are no additional command-response child elements, the <extension> | child elements, the <extension> element MUST be removed. | |||
element MUST be removed. | ||||
Template response for a supported command-response extension. The | Below is a template response for a supported command-response | |||
[NAMESPACE-XML] variable represents the command-response extension | extension. The [NAMESPACE-XML] variable represents the command- | |||
XML. | response extension XML. | |||
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- | Below is a template of an unhandled namespace response for an | |||
response extension. The [NAMESPACE-XML] variable represents the | unsupported command-response extension. The [NAMESPACE-XML] variable | |||
command-response extension XML and the [NAMESPACE-URI] variable | represents the command-response extension XML, and the [NAMESPACE- | |||
represents the command-response extension XML namespace URI. | URI] variable represents the command-response extension XML namespace | |||
URI. | ||||
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: [NAMESPACE-XML] | S: [NAMESPACE-XML] | |||
S: </value> | S: </value> | |||
skipping to change at page 8, line 49 ¶ | skipping to change at line 356 ¶ | |||
S: </result> | S: </result> | |||
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> | |||
The EPP response is converted to an unhandled namespace response by | The EPP response is converted to an unhandled namespace response by | |||
moving the unhandled command-response extension from under the | moving the unhandled command-response extension from under the | |||
<extension> to an <extValue> element. Below is example of converting | <extension> to an <extValue> element. | |||
the DS Data Interface <info> response example in Section 5.1.2 of | ||||
[RFC5910] to an unhandled namespace response. | ||||
[RFC5910] DS Data Interface <info> response converted into an | Below is example of the Delegation Signer (DS) Data Interface <info> | |||
unhandled namespace response: | response (see Section 5.1.2 of [RFC5910]) converted to an 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: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |||
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 | |||
skipping to change at page 10, line 25 ¶ | skipping to change at line 428 ¶ | |||
4. Signaling Client and Server Support | 4. Signaling Client and Server Support | |||
This document does not define new EPP protocol elements but rather | This document does not define new EPP protocol elements but rather | |||
specifies an operational practice using the existing EPP protocol, | specifies an operational practice using the existing EPP protocol, | |||
where the client and the server can signal support for the | where the client and the server can signal support for the | |||
operational practice using a namespace URI in the login and greeting | operational practice using a namespace URI in the login and greeting | |||
extension services. The namespace URI | extension services. The namespace URI | |||
"urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0" is used to | "urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0" is used to | |||
signal support for the operational practice. The client includes the | signal support for the operational practice. The client includes the | |||
namespace URI in an <svcExtension> <extURI> element of the [RFC5730] | namespace URI in an <svcExtension> <extURI> element of the <login> | |||
<login> Command. The server includes the namespace URI in an | command [RFC5730]. The server includes the namespace URI in an | |||
<svcExtension> <extURI> element of the [RFC5730] Greeting. | <svcExtension> <extURI> element of the greeting [RFC5730]. | |||
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 the | extension services can expect the following supported behavior by the | |||
server: | server: | |||
1. Support unhandled namespace object-level extensions and command- | * 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 | ||||
extensions in general EPP responses, per Section 5. | * support the option of unhandled namespace command-response | |||
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 | * support monitoring the EPP poll messages and general EPP responses | |||
responses for unhandled namespaces. | 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 EPP response that is not a poll message. The use of the | |||
namespace approach for poll message EPP responses is defined in | unhandled namespace approach for poll-message EPP responses is | |||
Section 6. The server MAY exclude the unhandled namespace | defined in Section 6. The server MAY exclude the unhandled namespace | |||
information in the general EPP response or MAY include it using the | information in the general EPP response or MAY include it using the | |||
unhandled namespace approach. | unhandled namespace approach. | |||
The unhandled namespace approach for general EPP responses SHOULD | The unhandled namespace approach for general EPP responses SHOULD | |||
only be applicable to command-response extensions, defined in | only be applicable to command-response extensions, defined in | |||
Section 3.2, since the server SHOULD NOT accept an object-level EPP | Section 3.2, since the server SHOULD NOT accept an object-level EPP | |||
command if the client did not include the object-level namespace URI | command if the client did not include the object-level namespace URI | |||
in the login services. An object-level EPP response extension is | in the login services. An object-level EPP response extension is | |||
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 the <extValue> element | from the EPP response or MAY include it under the <extValue> element, | |||
per Section 3.2. Below is example of converting the domain name | per Section 3.2. | |||
<info> response example in Section 4.1.2 of [RFC3915] to an unhandled | ||||
namespace response. | ||||
[RFC5731] domain name <info> response with the unhandled [RFC3915] | Below is an example of a domain name <info> response [RFC5731] | |||
<rgp:infData> element included under an <extValue> element: | converted to an unhandled <rgp:infData> element (see Section 4.1.1 of | |||
[RFC3915]) 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: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 | S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 | |||
S: epp-1.0.xsd"> | S: epp-1.0.xsd"> | |||
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 13, line 5 ¶ | skipping to change at line 538 ¶ | |||
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> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
6. Usage with Poll Message EPP Responses | 6. Usage with Poll-Message EPP Responses | |||
The unhandled namespace approach, defined in Section 3, MUST be used | The unhandled namespace approach, defined in Section 3, MUST be used | |||
if there is unhandled namespace information included in an EPP <poll> | if there is unhandled namespace information included in a <poll> | |||
message response. The server inserts poll messages into the client's | response. The server inserts poll messages into the client's poll | |||
poll queue independent of knowing the supported client login | queue independent of knowing the supported client login services; | |||
services, therefore there may be unhandled object-level and command- | therefore, there may be unhandled object-level extensions and | |||
response extensions included in a client's poll queue. In [RFC5730], | command-response extensions included in a client's poll queue. In | |||
the <poll> command is used by the client to retrieve and acknowledge | [RFC5730], the <poll> command is used by the client to retrieve and | |||
poll messages that have been inserted by the server. The <poll> | acknowledge poll messages that have been inserted by the server. The | |||
message response is an EPP response that includes the <msgQ> element | <poll> response is an EPP response that includes the <msgQ> element | |||
that provides poll queue meta-data about the message. The unhandled | that provides poll queue metadata about the message. The unhandled | |||
namespace approach, defined in Section 3, is used for an unhandled | namespace approach, defined in Section 3, is used for an unhandled | |||
object-level extension and for each of the unhandled command-response | object-level extension and for each of the unhandled command-response | |||
extensions attached to the <poll> message response. The resulting | extensions attached to the <poll> response. The resulting <poll> | |||
EPP <poll> message response MAY have either or both the object-level | response MAY have either or both the object-level extension or | |||
extension or command-response extensions moved to <extValue> | command-response extensions moved to <extValue> elements, as defined | |||
elements, as defined in Section 3. | in Section 3. | |||
The Change Poll Message, as defined in Section 3.1.2 of [RFC8590], | The change poll message, as defined in Section 3.1.2 of [RFC8590], | |||
which is an extension of any EPP object, is an example of applying | which is an extension of any EPP object, is an example of applying | |||
the unhandled namespace approach for EPP <poll> message responses. | the unhandled namespace approach for <poll> responses. Below are | |||
Below are examples of converting the domain name <info> response | examples of converting the domain name <info> response example in | |||
example in Section 3.1.2 of [RFC8590] to an unhandled namespace | Section 3.1.2 of [RFC8590] to an unhandled namespace response. The | |||
response. The object that will be used in the examples is a | object that will be used in the examples is a domain name object | |||
[RFC5731] domain name object. | [RFC5731]. | |||
[RFC5731] domain name <info> <poll> message response with the | Below is a domain name <info> <poll> response [RFC5731] with the | |||
unhandled [RFC8590] <changePoll:changeData> element included under an | unhandled <changePoll:changeData> element [RFC8590] included under an | |||
<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 lang="en-US"> | S: <msg lang="en-US"> | |||
S: Command completed successfully; ack to dequeue</msg> | S: Command completed successfully; ack to dequeue</msg> | |||
S: <extValue> | S: <extValue> | |||
S: <value> | S: <value> | |||
S: <changePoll:changeData | S: <changePoll:changeData | |||
skipping to change at page 14, line 39 ¶ | skipping to change at line 621 ¶ | |||
S: <domain:exDate>2014-04-03T22:00:00.0Z</domain:exDate> | S: <domain:exDate>2014-04-03T22:00:00.0Z</domain:exDate> | |||
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> | |||
S: </response> | S: </response> | |||
S:</epp> | S:</epp> | |||
Unhandled [RFC5731] domain name <info> <poll> message response and | Below is an unhandled domain name <info> <poll> response [RFC5731] | |||
the unhandled [RFC8590] <changePoll:changeData> element included | and the unhandled <changePoll:changeData> element [RFC8590] included | |||
under an <extValue> element: | 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="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: <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"> | |||
skipping to change at page 16, line 23 ¶ | skipping to change at line 700 ¶ | |||
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 implementing the following: | information, the client should consider implementing the following: | |||
1. Ensure that the client presents the complete set of what it | 1. Ensure that the client presents the complete set of what it | |||
supports when presenting its login services. If there are gaps | supports when presenting its login services. If there are gaps | |||
between the services supported by the client and the login | between the services supported by the client and the login | |||
services included in the login command, the client may receive | services included in the login command, the client may receive | |||
unhandled namespace information that the client could have | unhandled namespace information that the client could have | |||
supported. | 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> responses. The client should evaluate the gaps between | |||
between the greeting services and the login services provided in | the greeting services and the login services provided in the | |||
the login command to identify extensions that need to be | 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, record the unsupported namespace | |||
namespace included in the <reason> element, and recording the | included in the <reason> element, and record the unhandled | |||
unhandled namespace information included in the <value> element | namespace information included in the <value> element for later | |||
for later processing. The unhandled namespace should be | processing. The unhandled namespace should be implemented by the | |||
implemented by the client to ensure that information is processed | client to ensure that information is processed fully in future | |||
fully in future EPP responses. | 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 implementing 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 | |||
8.1. XML Namespace | 8.1. XML Namespace | |||
This document uses URNs to describe XML namespaces conforming to a | This document uses URNs to describe XML namespaces conforming to a | |||
registry mechanism described in [RFC3688]. The following URI | registry mechanism described in [RFC3688]. The following URI | |||
assignment is requested of IANA: | assignment has been made by IANA. | |||
Registration request for the unhandled namespaces namespace: | ||||
URI: urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0 | URI: urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0 | |||
Registrant Contact: IESG | Registrant Contact: IESG | |||
XML: None. Namespace URIs do not represent an XML specification. | XML: None. Namespace URIs do not represent an XML specification. | |||
8.2. EPP Extension Registry | 8.2. EPP Extension Registry | |||
The EPP operational practice described in this document should be | The EPP operational practice described in this document has been | |||
registered by the IANA in the EPP Extension Registry described in | registered by IANA in the "Extensions for the Extensible Provisioning | |||
[RFC7451]. The details of the registration are as follows: | Protocol (EPP)" registry described in [RFC7451]. The details of the | |||
registration are as follows: | ||||
Name of Extension: "Extensible Provisioning Protocol (EPP) Unhandled | ||||
Namespaces" | ||||
Document status: Standards Track | ||||
Reference: (insert reference to RFC version of this document) | ||||
Registrant Name and Email Address: IETF, <iesg@ietf.org> | ||||
TLDs: Any | ||||
IPR Disclosure: None | ||||
Status: Active | ||||
Notes: None | ||||
9. Implementation Status | ||||
Note to RFC Editor: Please remove this section and the reference to | ||||
RFC 7942 [RFC7942] before publication. | ||||
This section records the status of known implementations of the | ||||
protocol defined by this specification at the time of posting of this | ||||
Internet-Draft, and is based on a proposal described in RFC 7942 | ||||
[RFC7942]. The description of implementations in this section is | ||||
intended to assist the IETF in its decision processes in progressing | ||||
drafts to RFCs. Please note that the listing of any individual | ||||
implementation here does not imply endorsement by the IETF. | ||||
Furthermore, no effort has been spent to verify the information | ||||
presented here that was supplied by IETF contributors. This is not | ||||
intended as, and must not be construed to be, a catalog of available | ||||
implementations or their features. Readers are advised to note that | ||||
other implementations may exist. | ||||
According to RFC 7942 [RFC7942], "this will allow reviewers and | ||||
working groups to assign due consideration to documents that have the | ||||
benefit of running code, which may serve as evidence of valuable | ||||
experimentation and feedback that have made the implemented protocols | ||||
more mature. It is up to the individual working groups to use this | ||||
information as they see fit". | ||||
9.1. Verisign EPP SDK | ||||
Organization: Verisign Inc. | ||||
Name: Verisign EPP SDK | ||||
Description: The Verisign EPP SDK includes an implementation of the | ||||
unhandled namespaces for the processing of the poll queue messages. | ||||
Level of maturity: Development | ||||
Coverage: All aspects of the protocol are implemented. | ||||
Licensing: GNU Lesser General Public License | ||||
Contact: jgould@verisign.com | ||||
URL: https://www.verisign.com/en_US/channel-resources/domain- | ||||
registry-products/epp-sdks | ||||
9.2. SWITCH Automated DNSSEC Provisioning Process | ||||
Organization: SWITCH | ||||
Name: Registry of .CH and .LI | ||||
Description: SWITCH uses poll messages to inform the registrar about | ||||
DNSSEC changes at the registry triggered by CDS records. These poll | ||||
messages are enriched with the 'urn:ietf:params:xml:ns:changePoll- | ||||
1.0' and the 'urn:ietf:params:xml:ns:secDNS-1.1' extension that are | ||||
rendered in the poll msg response according to this draft. | ||||
Level of maturity: Operational | ||||
Coverage: All aspects of the protocol are implemented. | ||||
Licensing: Proprietary | ||||
Contact: martin.casanova@switch.ch | ||||
URL: https://www.nic.ch/cds | Name of Extension: "Extensible Provisioning Protocol (EPP) Unhandled | |||
Namespaces" | ||||
Document Status: Standards Track | ||||
Reference: RFC 9038 | ||||
Registrant: IETF, <iesg@ietf.org> | ||||
TLDs: Any | ||||
IPR Disclosure: None | ||||
Status: Active | ||||
Notes: None | ||||
10. Security Considerations | 9. Security Considerations | |||
This document does not provide any security services beyond those | This document does not provide any security services beyond those | |||
described by EPP [RFC5730] and protocol layers used by EPP. The | described by EPP [RFC5730] and protocol layers used by EPP. The | |||
security considerations described in these other specifications apply | security considerations described in these other specifications apply | |||
to this specification as well. Since the unhandled namespace context | to this specification as well. Since the unhandled namespace content | |||
is XML that is not processed in the first pass by the XML parser, the | is XML that is not processed in the first pass by the XML parser, the | |||
client SHOULD validate the XML when the content is processed to | client SHOULD validate the XML when the content is processed to | |||
protect against the inclusion of malicious content. | protect against the inclusion of malicious content. | |||
11. Acknowledgements | 10. References | |||
The authors wish to thank the following persons for their feedback | ||||
and suggestions: Thomas Corte, Scott Hollenbeck, Patrick Mevzek, and | ||||
Marcel Parodi. | ||||
12. References | ||||
12.1. Normative References | 10.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 | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
skipping to change at page 20, line 10 ¶ | skipping to change at line 795 ¶ | |||
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | |||
STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, | STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, | |||
<https://www.rfc-editor.org/info/rfc5730>. | <https://www.rfc-editor.org/info/rfc5730>. | |||
[RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) | [RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) | |||
Domain Name Mapping", STD 69, RFC 5731, | Domain Name Mapping", STD 69, RFC 5731, | |||
DOI 10.17487/RFC5731, August 2009, | DOI 10.17487/RFC5731, August 2009, | |||
<https://www.rfc-editor.org/info/rfc5731>. | <https://www.rfc-editor.org/info/rfc5731>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
Code: The Implementation Status Section", BCP 205, | ||||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
<https://www.rfc-editor.org/info/rfc7942>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
12.2. Informative References | [W3C.REC-xml11-20060816] | |||
Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., | ||||
Yergeau, F., and J. Cowan, "Extensible Markup Language | ||||
(XML) 1.1 (Second Edition)", World Wide Web Consortium | ||||
Recommendation REC-xml11-20060816, 16 August 2006, | ||||
<https://www.w3.org/TR/2006/REC-xml11-20060816>. | ||||
10.2. Informative References | ||||
[RFC3735] Hollenbeck, S., "Guidelines for Extending the Extensible | [RFC3735] Hollenbeck, S., "Guidelines for Extending the Extensible | |||
Provisioning Protocol (EPP)", RFC 3735, | Provisioning Protocol (EPP)", RFC 3735, | |||
DOI 10.17487/RFC3735, March 2004, | DOI 10.17487/RFC3735, March 2004, | |||
<https://www.rfc-editor.org/info/rfc3735>. | <https://www.rfc-editor.org/info/rfc3735>. | |||
[RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for | [RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for | |||
the Extensible Provisioning Protocol (EPP)", RFC 3915, | the Extensible Provisioning Protocol (EPP)", RFC 3915, | |||
DOI 10.17487/RFC3915, September 2004, | DOI 10.17487/RFC3915, September 2004, | |||
<https://www.rfc-editor.org/info/rfc3915>. | <https://www.rfc-editor.org/info/rfc3915>. | |||
skipping to change at page 20, line 46 ¶ | skipping to change at line 833 ¶ | |||
[RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | |||
Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | |||
February 2015, <https://www.rfc-editor.org/info/rfc7451>. | February 2015, <https://www.rfc-editor.org/info/rfc7451>. | |||
[RFC8590] Gould, J. and K. Feher, "Change Poll Extension for the | [RFC8590] Gould, J. and K. Feher, "Change Poll Extension for the | |||
Extensible Provisioning Protocol (EPP)", RFC 8590, | Extensible Provisioning Protocol (EPP)", RFC 8590, | |||
DOI 10.17487/RFC8590, May 2019, | DOI 10.17487/RFC8590, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8590>. | <https://www.rfc-editor.org/info/rfc8590>. | |||
Appendix A. Change History | Acknowledgements | |||
A.1. Change from 00 to 01 | ||||
1. Removed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
reference from examples. | ||||
2. removed <extension></extension> block from example. | ||||
3. added SWITCH Automated DNSSEC Provisioning Process at | ||||
Implementation Status | ||||
A.2. Change from 01 to 02 | ||||
1. Ping update | ||||
A.3. Change from 02 to REGEXT 00 | ||||
1. Changed to regext working group draft by changing draft-gould- | ||||
casanova-regext-unhandled-namespaces to draft-ietf-regext- | ||||
unhandled-namespaces. | ||||
A.4. Change from REGEXT 00 to REGEXT 01 | ||||
1. Added the "Signaling Client and Server Support" section to | ||||
describe the mechanism to signal support for the BCP by the | ||||
client and the server. | ||||
2. Added the IANA Considerations section with the registration of | ||||
the unhandled namespaces XML namespace and the registration of | ||||
the EPP Best Current Practice (BCP) in the EPP Extension | ||||
Registry. | ||||
A.5. Change from REGEXT 01 to REGEXT 02 | ||||
1. Filled in the acknowledgements section. | ||||
2. Changed the reference from RFC 5730 to RFC 5731 for the transfer | ||||
example in section 3.1 "Unhandled Object-Level" Extension. | ||||
3. Updated the XML namespace to | ||||
urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0, which | ||||
removed bcp from the namespace and bumped the version from 0.1 | ||||
and 1.0. Inclusion of bcp in the XML namespace was discussed at | ||||
the REGEXT interim meeting. | ||||
A.6. Change from REGEXT 02 to REGEXT 03 | ||||
1. Converted from xml2rfc v2 to v3. | ||||
2. Updated Acknowledgements to match the approach taken by the RFC | ||||
Editor with draft-ietf-regext-login-security. | ||||
3. Changed reference of ietf-regext-change-poll to RFC 8590. | ||||
A.7. Change from REGEXT 03 to REGEXT 04 | ||||
1. Changed from Best Current Practice (BCP) to Standards Track based | ||||
on mailing list discussion. | ||||
2. Revised the dates in the examples to be more up-to-date. | ||||
A.8. Change from REGEXT 04 to REGEXT 05 | ||||
1. Based on feedback from Thomas Corte, added a description of the | ||||
<extValue> element in RFC 5730 and it being extended to support | ||||
returning unhandled namespace information. | ||||
2. Based on feedback from Thomas Corte, added a Implementation | ||||
Considerations section to cover client and server implementation | ||||
recommendations such as monitoring unhandled namespaces in the | ||||
server to report to the clients out-of-band and monitoring for | ||||
responses containing unhanded namespace information in the client | ||||
to proactively add support for the unhandled namespaces. | ||||
3. Moved RFC 3735 and RFC 7451 to informative references to address | ||||
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. | ||||
A.10. Change from REGEXT 06 to REGEXT 07 | ||||
Updates based on the Barry Leiba (AD) feedback: | ||||
1. Simplified the abstract based on the proposal provided by the AD. | ||||
2. In section 1.1, updated to use the new BCP 14 boilerplate and add | ||||
a normative reference to RFC 8174. | ||||
3. In section 1.1, changed "REQUIRED feature of this protocol" to | ||||
"required feature of this protocol". | ||||
4. In section 3, added "by the XML schema" in "disabled by the XML | ||||
schema in [RFC5730]" to clarify the statement. | ||||
5. In section 8.2, changed the Registrant Name from "IESG" to | ||||
"IETF". | ||||
6. In section 10, changed "The document do not provide" to "This | ||||
document does not provide". | ||||
7. In section 10, added the sentence "Since the unhandled namespace | ||||
context is XML that is not processed in the first pass by the XML | ||||
parser, the client SHOULD consider validating the XML when the | ||||
content is processed to protect against the inclusion of | ||||
malicious content.". | ||||
A.11. Change from REGEXT 07 to REGEXT 08 | ||||
1. Nit updates made based on the feedback provided by Peter Yee. | ||||
2. Update to the definition of the <value> element based on feedback | ||||
from Sabrina Tanamal. | ||||
3. Added a sentence in the Introduction section to cover the poison | ||||
poll message motivation based on feedback from Qin Wu. | ||||
4. Changed "does not define new protocol" to "does not define new | The authors wish to thank the following people for their feedback and | |||
EPP protocol elements" based on feedback from Erik Kline. | suggestions: Thomas Corte, Scott Hollenbeck, Patrick Mevzek, and | |||
5. Changed to use "apply" instead of "support" language in Section 3 | Marcel Parodi. | |||
based on feedback from Benjamin Kaduk. | ||||
6. Updated the examples that reference RFC examples to reference the | ||||
RFC section of the example and have the starting XML match based | ||||
on feedback from Benjamin Kaduk. | ||||
7. Changed "SHOULD consider validating" to "SHOULD validate" in the | ||||
Security Considerations section based on feedback from Benjamin | ||||
Kaduk. | ||||
8. Moved RFC 3915, RFC 5910, and RFC 8590 as informational | ||||
references based on feedback from Benjamin Kaduk. | ||||
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.verisign.com | |||
Martin Casanova | Martin Casanova | |||
SWITCH | SWITCH | |||
P.O. Box | P.O. Box | |||
CH-8021 Zurich | CH-8021 Zurich | |||
Switzerland | Switzerland | |||
Email: martin.casanova@switch.ch | Email: martin.casanova@switch.ch | |||
URI: http://www.switch.ch | URI: http://www.switch.ch | |||
End of changes. 76 change blocks. | ||||
421 lines changed or deleted | 220 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/ |