rfc-4933

Extensible Provisioning Protocol (EPP) Contact Mapping

S. Hollenbeck
date2007-05 streamIETF wgnon working group statusDRAFT STANDARD pages43 canonicalhttps://www.rfc-editor.org/rfc/rfc4933 doi10.17487/RFC4933
This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of individual or organizational social information identifiers (known as "contacts") stored in a shared central repository. Specified in Extensible Markup Language (XML), the mapping defines EPP command syntax and semantics as applied to contacts. This document obsoletes RFC 3733. [STANDARDS-TRACK]

obsoleted by

obsoletes

Extracted elements (28)

design-rationale §3.2.3

No mapping is defined for the EPP <renew> command because renewal semantics do not apply to contact objects. Contacts have no expiration concept, unlike domain names.

interoperability-note §Appendix A

This document obsoletes RFC 3733. Key changes include removal of a restriction on transform commands during pending states, clarification of the acID element semantics for non-pending transfers, and allowance for out-of-band notification of offline review results in addition to poll messages.

normative-requirement §2.2 MUST NOT

A client MUST NOT alter status values set by the server. A server MAY alter or override status values set by a client subject to local server policies.

normative-requirement §2.2 MUST

A contact object MUST always have at least one associated status value. Status values can be set only by the sponsoring client and the server.

registry

normative-requirement §3.2.2 SHOULD NOT

A contact object SHOULD NOT be deleted if it is associated with other known objects. A server SHOULD notify clients of object relationships when a <delete> command fails due to existing associations.

normative-requirement §2.9 MUST

A server MUST reject any transaction that requests disclosure practices that do not conform to the announced data collection policy, returning a 2308 error response code.

privacy

normative-requirement §3.2.5 MUST

At least one <contact:add>, <contact:rem>, or <contact:chg> element MUST be provided in an <update> command if the command is not being extended. All may be omitted if an update extension is present.

normative-requirement §2.7 MUST

Date and time attribute values MUST be represented in UTC using the Gregorian calendar. The extended form using upper case 'T' and 'Z' characters as defined in the W3C XML Schema specification MUST be used; time zone offset identifiers MUST NOT be used with EPP.

normative-requirement §3.2.4 MUST

Every EPP <transfer> command MUST contain an 'op' attribute identifying the transfer operation (request, approve, reject, cancel, or query) as defined in RFC 4930.

normative-requirement §3.1.2 MUST NOT

The <contact:authInfo> element in an <info> response MUST NOT be provided if the querying client is not the current sponsoring client.

security

normative-requirement §3.1.2 MUST NOT

The <contact:upID> and <contact:upDate> elements MUST NOT be present in an <info> response if the contact has never been modified. The <contact:trDate> element MUST NOT be provided if the contact has never been transferred.

normative-requirement §2.2 MUST NOT

The pendingCreate, pendingDelete, pendingTransfer, and pendingUpdate status values MUST NOT be combined with each other. Additionally, pendingDelete MUST NOT be combined with clientDeleteProhibited or serverDeleteProhibited, and analogous restrictions apply for pendingTransfer and pendingUpdate.

normative-requirement §5 REQUIRED

UTF-8 encoding is REQUIRED for all EPP XML documents. The XML Schema extended date-time form with upper case 'T' and 'Z' MUST be used; truncated forms and lower case characters are not supported.

normative-requirement §2.2 MUST

When a pending action has been completed, the pendingCreate, pendingDelete, pendingTransfer, or pendingUpdate status MUST be removed and all clients involved MUST be notified via a service message.

normative-requirement §3.3 MUST

When a transform command is pending offline review, the server MUST return response code 1001, MUST manage object status to reflect the pending action, and MUST notify all involved clients when offline processing is completed.

privacy-consideration §2.9

The <contact:disclose> element enables clients to express per-element disclosure preferences (allow or restrict) for name, org, addr, voice, fax, and email fields. A flag value of '0'/'false' restricts disclosure; '1'/'true' permits it as an exception to the server's announced data collection policy.

privacy

protocol-element §2.2

Contact status values include clientDeleteProhibited, clientTransferProhibited, clientUpdateProhibited (client-settable), serverDeleteProhibited, serverTransferProhibited, serverUpdateProhibited (server-settable), linked, ok, pendingCreate, pendingDelete, pendingTransfer, and pendingUpdate (server-managed).

protocol-element §2.9

The <contact:disclose> element allows a client to specify disclosure preferences for contact data elements. It MUST contain a 'flag' boolean attribute and at least one child element from: name (int/loc), org (int/loc), addr (int/loc), voice, fax, or email.

privacy

protocol-element §3.1.1

The EPP <check> command for contacts uses a <contact:check> element containing one or more <contact:id> elements. The response <contact:chkData> contains <contact:cd> elements each with an 'avail' boolean attribute and an optional <contact:reason> element.

protocol-element §3.2.1

The EPP <create> command for contacts requires a <contact:create> element with id, one or two postalInfo elements, optional voice/fax, email, authInfo, and optional disclose. The response <contact:creData> returns the id and crDate.

protocol-element §3.1.2

The EPP <info> response for contacts returns a <contact:infData> element containing id, roid, one or more status elements, up to two postalInfo elements (int/loc types), optional voice/fax, email, clID, crID, crDate, optional upID/upDate/trDate, conditional authInfo (only for sponsoring client), and optional disclose.

protocol-element §3.3

The offline review notification uses a <contact:panData> element containing id (with required 'paResult' boolean attribute indicating approval/denial), paTRID (original transaction identifiers), and paDate (review completion timestamp).

protocol-element §3.1.3

The <transfer> query response returns a <contact:trnData> element with id, trStatus, reID (requesting client), reDate, acID (acting client), and acDate (deadline or completion date).

registry §6

This document registers two URIs with IANA via the IETF XML Registry (RFC 3688): the contact namespace URI 'urn:ietf:params:xml:ns:contact-1.0' and the contact XML schema URI 'urn:ietf:params:xml:schema:contact-1.0'.

registry

security-consideration §7

Authorization information is REQUIRED to create a contact object and is used in query and transfer operations to verify client authorization. Both client and server MUST ensure authorization information is stored and exchanged with high-grade encryption to provide privacy services, as inadvertent disclosure can result in unauthorized transfers and information release.

security, crypto

wire-format §4

Country codes are represented as a 'ccType' restricted to exactly 2 characters per ISO 3166. Postal codes use 'pcType' with a maximum length of 16 characters. Street, city, and name fields use 'postalLineType' with min length 1 and max length 255.

wire-format §2.5

Telephone numbers MUST begin with a plus sign ('+', 0x002B), followed by a country code per ITU E.164, a dot ('.', 0x002E), and digits. Maximum length is 17 characters. An optional 'x' attribute carries extension information.

wire-format §3.2.1

The postalInfo element uses a 'type' attribute with enumerated values 'int' (internationalized, content restricted to 7-bit ASCII subset of UTF-8) or 'loc' (localized, content may be unrestricted UTF-8). Up to two postalInfo elements may appear per contact.