rfc-8544

Organization Extension for the Extensible Provisioning Protocol (EPP)

L. Zhou, N. Kong, J. Wei, J. Yao, J. Gould
date2019-04 streamIETF areaops wgregext statusPROPOSED STANDARD pages22 canonicalhttps://www.rfc-editor.org/rfc/rfc8544 doi10.17487/RFC8544
This document describes an extension to Extensible Provisioning Protocol (EPP) object mappings that is designed to support assigning an organization to any existing object (domain, host, contact) as well as any future objects.

Extracted elements (25)

design-rationale §1

The extension is designed to be generic — applicable to any existing EPP object (domain, host, contact) and any future objects — rather than being tied to a specific object type, enabling broad reuse across the EPP ecosystem.

interoperability-note §3.1

Organization role values used in the 'role' attribute of <orgext:id> are defined in Section 7.3 of RFC 8543 (EPP Organization Mapping); implementations must refer to that registry for valid role values.

normative-requirement §4.2.4 SHOULD

After a successful transfer of an object with an assigned organization, handling of the assigned organization is dependent on the organization roles and server policy; the transfer command itself adds no extension elements.

normative-requirement §4.2.5 SHOULD

An attempt to add an organization ID with a role that already exists does not change the object at all; the server SHOULD notify clients by sending a 2305 error response code. Likewise for remove/change when the role does not exist.

normative-requirement §3.1 MUST

Any given EPP object MUST have at most one associated organization ID for any given role value.

normative-requirement §6 RECOMMENDED

Elements and element content described in this document MUST inherit the internationalization conventions used in the XML instance that includes this extension. UTF-8 encoding is RECOMMENDED.

normative-requirement §4.2.5 MUST

For <orgext:add>, the <orgext:id> element MUST have a non-empty organization identifier value; the server SHOULD validate that the role does not already exist.

normative-requirement §4.2.5 SHOULD

For <orgext:chg>, the server SHOULD validate the existence of the <orgext:id> element role; the existing organization identifier value will be replaced for the defined role.

normative-requirement §4.2.5 SHOULD

For <orgext:rem>, the <orgext:id> element MAY have an empty organization identifier value; the server SHOULD validate the existence of the role and the identifier if provided.

normative-requirement §4.2.1 MUST

For the <create> command, the EPP <extension> element MUST contain a child <orgext:create> element if the client wants to associate organization data to the object. The <orgext:create> element must contain one or more <orgext:id> elements.

normative-requirement §4.2.5 MUST

For the <update> command, the <extension> element MUST contain a child <orgext:update> element, which MUST contain at least one of <orgext:add>, <orgext:rem>, or <orgext:chg>.

normative-requirement §2 MUST NOT

Implementations MUST NOT depend on the 'orgext' XML namespace prefix; they should use a proper namespace-aware XML parser and serializer.

normative-requirement §1 MUST

Organization object identifiers defined in RFC 8543 MUST be known to the server before the organization object can be associated with the EPP object.

normative-requirement §4.1.2 MUST

The <orgext:infData> element or its ancestor element MUST identify the extension namespace 'urn:ietf:params:xml:ns:epp:orgext-1.0'.

normative-requirement §4.1.2 SHOULD

When an <info> command has been processed successfully, the EPP <extension> element SHOULD contain a child <orgext:infData> element if the object has data associated with this extension, based on server policy.

protocol-element §4.2.1

The <orgext:create> element carries one or more <orgext:id> elements (each with a required 'role' attribute) used to associate organizations with an EPP object at creation time.

protocol-element §3.1

The <orgext:id> element provides the identifier of an organization, corresponding to the <org:id> element defined in RFC 8543. It carries a required 'role' attribute representing the relationship between the organization and the EPP object.

protocol-element §4.1.2

The <orgext:infData> element is the info response element containing zero or more <orgext:id> child elements, each with a 'role' attribute, returned when an object has organization associations.

protocol-element §4.2.5

The <orgext:update> element contains three optional child elements: <orgext:add> (adds nonexistent organization roles), <orgext:rem> (removes organization roles), and <orgext:chg> (changes existing organization role identifiers). At least one MUST be present.

registry §7.1

IANA registered two URIs under the IETF XML Registry (RFC 3688): the namespace URI 'urn:ietf:params:xml:ns:epp:orgext-1.0' and the schema URI 'urn:ietf:params:xml:schema:epp:orgext-1.0', with IESG as registrant contact.

registry

registry §7.2

The extension was registered in the 'Extensions for the Extensible Provisioning Protocol (EPP)' registry (RFC 7451) with name 'Organization Extension for the Extensible Provisioning Protocol (EPP)', status Active, applicable to any TLD.

registry

security-consideration §8

The organization extension does not introduce any security services or considerations beyond those described by the core EPP specifications (RFC 5730, RFC 5731, RFC 5732, RFC 5733) or by the protocol layers used by EPP.

security

wire-format §5

The createType complex type contains a sequence of one or more <orgext:id> elements of orgIdType, constituting the <orgext:create> command payload. No maximum cardinality is imposed (maxOccurs='unbounded').

wire-format §5

The orgIdType complex type encodes an organization identifier as an XML token (simpleContent) with a required 'role' attribute of type token. Used in <orgext:id> elements throughout create, update, and info response messages.

wire-format §5

The updateType complex type contains an optional sequence of <add>, <rem>, and <chg> elements (each of addRemChgType), all with minOccurs='0'; the addRemChgType itself holds one or more <orgext:id> elements.