Network Working Group S. Hollenbeck Internet-Draft VeriSign, Inc. Expires: March 26, 2006 September 22, 2005 Service Lookup System (SLS) Mapping for the Extensible Provisioning Protocol (EPP) draft-hollenbeck-epp-sls-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on March 26, 2006. Copyright Notice Copyright (C) The Internet Society (2005). Abstract This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of Service Lookup System (SLS) data stored in a shared central repository. Specified in XML, the mapping defines EPP command syntax and semantics as applied to SLS data elements. Hollenbeck Expires March 26, 2006 [Page 1] Internet-Draft EPP SLS Mapping September 2005 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Conventions Used In This Document . . . . . . . . . . . . 3 2. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Booleans . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Locales . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4. Service Provider Identifiers . . . . . . . . . . . . . . . 4 2.5. Service URIs . . . . . . . . . . . . . . . . . . . . . . . 5 2.6. Business Categories . . . . . . . . . . . . . . . . . . . 5 2.7. Registration Periods . . . . . . . . . . . . . . . . . . . 5 2.8. Contact and Client Identifiers . . . . . . . . . . . . . . 5 2.9. Authorization Information . . . . . . . . . . . . . . . . 5 2.10. Status Values . . . . . . . . . . . . . . . . . . . . . . 6 2.11. Dates and Times . . . . . . . . . . . . . . . . . . . . . 7 3. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 8 3.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . . 8 3.1.1. EPP Command . . . . . . . . . . . . . . . . . 8 3.1.2. EPP Command . . . . . . . . . . . . . . . . . . 11 3.1.3. EPP Command . . . . . . . . . . . . . . . . 16 3.2. EPP Transform Commands . . . . . . . . . . . . . . . . . . 19 3.2.1. EPP Command . . . . . . . . . . . . . . . . . 20 3.2.2. EPP Command . . . . . . . . . . . . . . . . . 23 3.2.3. EPP Command . . . . . . . . . . . . . . . . . 24 3.2.4. EPP Command . . . . . . . . . . . . . . . . 26 3.2.5. EPP Command . . . . . . . . . . . . . . . . . 29 3.3. Offline Review of Requested Actions . . . . . . . . . . . 33 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 36 5. Internationalization Considerations . . . . . . . . . . . . . 46 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 7. Security Considerations . . . . . . . . . . . . . . . . . . . 47 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 48 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.1. Normative References . . . . . . . . . . . . . . . . . . . 48 9.2. Informative References . . . . . . . . . . . . . . . . . . 49 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 50 Intellectual Property and Copyright Statements . . . . . . . . . . 51 Hollenbeck Expires March 26, 2006 [Page 2] Internet-Draft EPP SLS Mapping September 2005 1. Introduction A number of events and technology requirements explored over the last several years serve to remind us that the Domain Name System (DNS) [RFC1034] functions well as the Internet's system for assigning static textual identifiers to host resources, but functions poorly as a set of user-visible names. Most recently, internationalization issues -- the inherent ambiguity of natural language, problems working with Unicode in an environment that requires exact-match lookups, user desire for convenient, natural language names, the impact of trademark law, etc. -- have highlighted this distinction. It can also be argued that an entirely different system of identifiers intended for human use is needed in addition to a system that is designed to work well for protocol elements, such as Uniform Resource Identifiers (URIs). The Service Lookup System (SLS) is an "above DNS" identification system implemented using the Extensible Provisioning protocol (EPP) [I-D.hollenbeck-epp-rfc3730bis] and the Internet Registry Information Service (IRIS) [RFC3981]. EPP provides controlled access features to register and maintain SLS identifiers. IRIS provides public access features to search for and resolve SLS identifiers. This document describes an SLS data mapping for EPP version 1.0. This mapping is specified using the Extensible Markup Language (XML) 1.0 [W3C.REC-xml-20001006] and XML Schema notation ([W3C.REC- xmlschema-1-20010502], [W3C.REC-xmlschema-2-20010502]). The EPP core protocol specification provides a complete description of EPP command and response structures. A thorough understanding of the base protocol specification is necessary to understand the mapping described in this document. Familiarity with the IRIS SLS registry [I-D.daigle-iris-slsreg] is required to understand the IRIS SLS concepts described in this document. 1.1. Conventions Used In This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119]. In examples, "C:" represents lines sent by a protocol client, and "S:" represents lines returned by a protocol server. Indentation and white space in examples are only provided to illustrate element relationships and are not a REQUIRED feature of this specification. XML is case sensitive. Unless stated otherwise, XML specifications Hollenbeck Expires March 26, 2006 [Page 3] Internet-Draft EPP SLS Mapping September 2005 and examples provided in this document MUST be interpreted in the character case presented to develop a conforming implementation. 2. Object Attributes An EPP SLS object has attributes and associated values that can be viewed and modified by the sponsoring client or the server. This section describes each attribute type in detail. The formal syntax for the attribute values described here can be found in the "Formal Syntax" section of this document and in the appropriate normative references. 2.1. Booleans Boolean values MUST be represented in the XML Schema format described in Part 2 of the W3C XML Schema recommendation [W3C.REC-xmlschema-2- 20010502]. 2.2. Tags A tag is an unstructured, registered label associated with the services in an SLS object. A tag has a specified minimum length, no maximum length, and MUST be represented using the "token" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC- xmlschema-2-20010502]. The combination of tag, locale, and service provider identifier uniquely identifies an SLS object. 2.3. Locales A locale is identified using a combination of a language identifier, an OPTIONAL script code, an OPTIONAL territory code, and an OPTIONAL variant code. Language identifier syntax, script code syntax, and territory code syntax is specified in RFC XXXX [I-D.ietf-ltru- registry]. Variant codes MUST NOT overlap with script or territory codes; they MUST have either one letter or have more than 4 letters. The combination of locale, tag, and service provider identifier uniquely identifies an SLS object. 2.4. Service Provider Identifiers Service providers are identified using text strings that are registered with IANA as described in Section 2.8 of RFC 3730bis [I-D.hollenbeck-epp-rfc3730bis]. A service provider identifier has a specified minimum length, a specified maximum length, and MUST be represented using a restricted form of the "token" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC- xmlschema-2-20010502]. Hollenbeck Expires March 26, 2006 [Page 4] Internet-Draft EPP SLS Mapping September 2005 2.5. Service URIs A service URI is a URI of any type that identifies a specific service associated with the tag/locale combination. URIs are represented using the "anyURI" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC-xmlschema-2-20010502]. Internationalized Resource Identifiers (IRIs) are acceptable. URI syntax is specified in Standard 66, RFC 3986 [RFC3986]. IRI syntax is specified in RFC 3987 [RFC3987]. 2.6. Business Categories Business categories are text fields used to provide classification information about the entity described by the tag. Semantic values are a matter of implementation policy. A business category has a specified minimum length, no maximum length, and MUST be represented using the "token" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC-xmlschema-2-20010502]. 2.7. Registration Periods Registration periods define the subscription period of an SLS object. Periods are measured in either months or years depending on implementation policy. A registration period has a specified inclusive minimum, a specified inclusive maximum, and MUST be represented using the "unsignedShort" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC-xmlschema-2-20010502]. 2.8. Contact and Client Identifiers All EPP contacts are identified by a server-unique identifier. Contact identifiers are character strings with a specified minimum length, a specified maximum length, and a specified format. An XML attribute identifies the contact type. All EPP clients are identified by a server-unique identifier. Client identifiers are character strings with a specified minimum length, a specified maximum length, and a specified format. Client identifiers use the "clIDType" client identifier syntax described in RFC 3730bis [I-D.hollenbeck-epp-rfc3730bis]. 2.9. Authorization Information Authorization information is used to help prevent unintended disclosure of information to unauthorized clients and to confirm certian transform commands. Password-based authorization information is represented using the "normalizedString" data type described in Part 2 of the W3C XML Schema recommendation [W3C.REC-xmlschema-2- Hollenbeck Expires March 26, 2006 [Page 5] Internet-Draft EPP SLS Mapping September 2005 20010502]. Other forms of authorization information can be defined by protocol extension. 2.10. Status Values An SLS object MUST always have at least one associated status value. Status values can be set only by the client that sponsors an SLS object and by the server on which the object resides. A client can change the status of an SLS object using the EPP command. Each status value MAY be accompanied by a string of human-readable text that describes the rationale for the status applied to the object. 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. The status of an object MAY change as a result of either a client-initiated transform command or an action performed by a server operator. Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". Status values that do not begin with either "client" or "server" are server-managed. Status Value Descriptions: - clientDeleteProhibited, serverDeleteProhibited Requests to delete the object MUST be rejected. - clientHold, serverHold IRIS lookup information MUST NOT be published for the object. - clientRenewProhibited, serverRenewProhibited Requests to renew the object MUST be rejected. - clientTransferProhibited, serverTransferProhibited Requests to transfer the object MUST be rejected. - clientUpdateProhibited, serverUpdateProhibited Requests to update the object (other than to remove this status) MUST be rejected. Hollenbeck Expires March 26, 2006 [Page 6] Internet-Draft EPP SLS Mapping September 2005 - ok This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. - pendingCreate, pendingDelete, pendingRenew, pendingTransfer, pendingUpdate A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. A transform command that is processed, but whose requested action is pending, is noted with response code 1001. When the requested action has been completed, the pendingCreate, pendingDelete, pendingRenew, pendingTransfer, or pendingUpdate status value MUST be removed. All clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed. "ok" status MUST NOT be combined with any other status. "pendingDelete" status MUST NOT be combined with either "clientDeleteProhibited" or "serverDeleteProhibited" status. "pendingRenew" status MUST NOT be combined with either "clientRenewProhibited" or "serverRenewProhibited" status. "pendingTransfer" status MUST NOT be combined with either "clientTransferProhibited" or "serverTransferProhibited" status. "pendingUpdate" status MUST NOT be combined with either "clientUpdateProhibited" or "serverUpdateProhibited" status. The pendingCreate, pendingDelete, pendingRenew, pendingTransfer, and pendingUpdate status values MUST NOT be combined with each other. Other status combinations not expressly prohibited MAY be used. 2.11. Dates and Times Date and time attribute values MUST be represented in Universal Coordinated Time (UTC) using the Gregorian calendar. The extended date-time form using upper case "T" and "Z" characters defined in RFC 3339 [RFC3339] MUST be used to represent date-time values as XML Hollenbeck Expires March 26, 2006 [Page 7] Internet-Draft EPP SLS Mapping September 2005 Schema does not support truncated date-time forms or lower case "T" and "Z" characters. 3. EPP Command Mapping A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification [I-D.hollenbeck-epp- rfc3730bis]. The command mappings described here are specifically for use in provisioning and managing SLS data elements via EPP. 3.1. EPP Query Commands EPP provides three commands to retrieve object information: to determine if an object is known to the server, to retrieve detailed information associated with an object, and to retrieve object transfer status information. 3.1.1. EPP Command The EPP command is used to determine if an object can be provisioned within a repository. It provides a hint that allows a client to anticipate the success or failure of provisioning an object using the command as object provisioning requirements are ultimately a matter of server policy. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object to be queried. The element contains the following child elements: - An element that contains the tag of the SLS object to be queried. - An element that identifies the locale of the SLS object to be queried. The element contains the following child elements: - An element that contains the language code of the SLS object to be queried. Hollenbeck Expires March 26, 2006 [Page 8] Internet-Draft EPP SLS Mapping September 2005 - An OPTIONAL element that contains the script code of the SLS object to be queried. - An OPTIONAL element that contains the territory code of the SLS object to be queried. - An OPTIONAL element that contains the variant code of the SLS object to be queried. Example command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: C: ABC-12345 C: C: When a command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains an element that contains the following child elements: - An element that identifies the SLS object that was queried. This element MUST contain an "avail" attribute whose value indicates object availability (can it be provisioned or not) at the moment the command was completed. A value of "1" or "true" means that the object can be provisioned. A value of "0" or "false" means that the object can not be provisioned. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 9] Internet-Draft EPP SLS Mapping September 2005 - An element that contains the tag of the SLS object that was queried. - An element that identifies the locale of the SLS object that was queried. The element contains the following child elements: - An element that contains the language code of the SLS object that was queried. - An OPTIONAL element that contains the script code of the SLS object that was queried. - An OPTIONAL element that contains the territory code of the SLS object that was queried. - An OPTIONAL element that contains the variant code of the SLS object that was queried. - An element that contains the IANA-registered identifier of the service provider. Hollenbeck Expires March 26, 2006 [Page 10] Internet-Draft EPP SLS Mapping September 2005 Example response: S: S: S: S: S: Command completed successfully S: S: S: S: S: S: Example Tag S: S: en S: US S: S: EXAMPLE S: S: S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: An EPP error response MUST be returned if a command can not be processed for any reason. 3.1.2. EPP Command The EPP command is used to retrieve information associated with an SLS object. The response to this command MAY vary depending on the identity of the querying client, use of authorization information, and server policy towards unauthorized clients. If the querying client is the sponsoring client, all available information MUST be returned. If the querying client is not the sponsoring client, but the client provides valid authorization information, all available information MUST be returned. If the querying client is Hollenbeck Expires March 26, 2006 [Page 11] Internet-Draft EPP SLS Mapping September 2005 not the sponsoring client, and the client does not provide valid authorization information, server policy determines which OPTIONAL elements are returned. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object to be queried. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An OPTIONAL element that contains authorization information associated with the SLS object. If this element is not provided or if the authorization information is invalid, server policy determines if the command is rejected or if response information will be returned to the client. Example command with authorization information: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: 2fooBAR C: C: C: C: ABC-12345 C: C: Hollenbeck Expires March 26, 2006 [Page 12] Internet-Draft EPP SLS Mapping September 2005 Example command without authorization information: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: C: ABC-12345 C: C: When an command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. Elements that are not OPTIONAL MUST be returned; OPTIONAL elements are returned based on client authorization and server policy. The element contains the following child elements: - An element that identifies the SLS object that was queried. The element used in this context is identical to the element used by the response described in Section 3.1.1. - An OPTIONAL element that contains one or more elements. Each element contains the URI of a service associated with the SLS object. - An OPTIONAL element that contains the business category text associated with the SLS object. Hollenbeck Expires March 26, 2006 [Page 13] Internet-Draft EPP SLS Mapping September 2005 - Zero or more OPTIONAL elements that contain the current status descriptors associated with the SLS object. - If supported by the server, one OPTIONAL element and one or more OPTIONAL elements that contain identifiers for the human or organizational social information objects associated with the SLS object. - An element that contains the identifier of the sponsoring client. - An OPTIONAL element that contains the identifier of the client that created the SLS object. - An OPTIONAL element that contains the date and time of SLS object creation. - An OPTIONAL element that contains the identifier of the client that last updated the SLS object. This element MUST NOT be present if the SLS object has never been modified. - An OPTIONAL element that contains the date and time of the most recent SLS object modification. This element MUST NOT be present if the SLS object has never been modified. - An OPTIONAL element that contains the date and time identifying the end of the SLS object's registration period. - An OPTIONAL elements that contains the date and time of the most recent successful SLS object transfer. This element MUST NOT be provided if the SLS object has never been transferred. - An OPTIONAL element that contains authorization information associated with the SLS object. This element MUST only be returned if the querying client is the current sponsoring client, or if the client supplied valid authorization information with the command. Example response for an authorized client: S: S: S: S: Hollenbeck Expires March 26, 2006 [Page 14] Internet-Draft EPP SLS Mapping September 2005 S: Command completed successfully S: S: S: S: S: Example Tag S: S: en S: US S: S: EXAMPLE S: S: S: http://www.example.com S: mailto:admin@example.com S: S: Example Producer S: S: jd1234 S: sh8013 S: sh8013 S: ClientX S: ClientY S: 1999-04-03T22:00:00.0Z S: ClientX S: 1999-12-03T09:00:00.0Z S: 2005-04-03T22:00:00.0Z S: 2000-04-08T09:00:00.0Z S: S: 2fooBAR S: S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: A server with a different information return policy MAY provide less information in a response. Hollenbeck Expires March 26, 2006 [Page 15] Internet-Draft EPP SLS Mapping September 2005 Example response for an unauthorized client: S: S: S: S: S: Command completed successfully S: S: S: S: S: Example Tag S: S: en S: US S: S: EXAMPLE S: S: ClientX S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: An EPP error response MUST be returned if an command can not be processed for any reason. 3.1.3. EPP Command The EPP command provides a query operation that allows a client to determine real-time status of pending and completed transfer requests. In addition to the standard EPP command elements, the command MUST contain an "op" attribute with value "query", and an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 16] Internet-Draft EPP SLS Mapping September 2005 - An element that identifies the SLS object to be queried. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An OPTIONAL element that contains authorization information associated with the SLS object. If this element is not provided or if the authorization information is invalid, server policy determines if the command is rejected or if response information will be returned to the client. Example query command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: 2fooBAR C: C: C: C: ABC-12345 C: C: When a query command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 17] Internet-Draft EPP SLS Mapping September 2005 - An element that identifies the SLS object that was queried. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An element that contains the state of the most recent transfer request. - An element that contains the identifier of the client that requested the object transfer. - An element that contains the date and time that the transfer was requested. - An element that contains the identifier of the client that SHOULD act upon the transfer request. - An element that contains the date and time of a required or completed response. For a PENDING request, the value identifies the date and time by which a response is required before an automated response action will be taken by the server. For all other status types, the value identifies the date and time when the request was completed. - An OPTIONAL element that contains the end of the SLS object's validity period if the command caused or causes a change in the validity period. Hollenbeck Expires March 26, 2006 [Page 18] Internet-Draft EPP SLS Mapping September 2005 Example query response: S: S: S: S: S: Command completed successfully S: S: S: S: S: Example Tag S: S: en S: US S: S: S: pending S: ClientX S: 2000-06-06T22:00:00.0Z S: ClientY S: 2000-06-11T22:00:00.0Z S: 2002-09-08T22:00:00.0Z S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: An EPP error response MUST be returned if a query command can not be processed for any reason. 3.2. EPP Transform Commands EPP provides five commands to transform objects: to create an instance of an object, to delete an instance of an object, to extend the validity period of an object, to manage object sponsorship changes, and to change information associated with an object. Hollenbeck Expires March 26, 2006 [Page 19] Internet-Draft EPP SLS Mapping September 2005 Transform commands are typically processed and completed in real time. Server operators MAY receive and process transform commands, but defer completing the requested action if human or third-party review is required before the requested action can be completed. In such situations the server MUST return a 1001 response code to the client to note that the command has been received and processed, but the requested action is pending. The server MUST also manage the status of the object that is the subject of the command to reflect the initiation and completion of the requested action. Once the action has been completed, all clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed. 3.2.1. EPP Command The EPP command provides a transform operation that allows a client to create an SLS object. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object to be created. The element used in this context is identical to the element used by the response described in Section 3.1.1. - An OPTIONAL element that contains one or more elements. Each element contains the URI of a service to be associated with the SLS object. - An OPTIONAL element that contains the business category text to be associated with the SLS object. - An OPTIONAL element that contains the identifier for the human or organizational social information (contact) object to be associated with the SLS object as the object registrant. This object identifier MUST be known to the server before the contact object can be associated with the SLS object. The EPP mapping for contact objects is described in RFC 3733bis [I-D.hollenbeck-epp-rfc3733bis]. - Zero or more OPTIONAL elements that contain the identifiers for other contact objects to be associated with the SLS object. Contact object identifiers MUST be known to the server before the contact object can be associated with the SLS object. Hollenbeck Expires March 26, 2006 [Page 20] Internet-Draft EPP SLS Mapping September 2005 - An element that contains authorization information to be associated with the SLS object. This mapping includes a password-based authentication mechanism, but the schema allows new mechanisms to be defined in new schemas. Example command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: http://www.example.com C: mailto:admin@example.com C: C: Example Producer C: 2 C: jd1234 C: sh8013 C: sh8013 C: C: 2fooBAR C: C: C: C: ABC-12345 C: C: When a command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 21] Internet-Draft EPP SLS Mapping September 2005 - An element that identifies the SLS object that was created. The element used in this context is identical to the element used by the response described in Section 3.1.1. - An element that contains the date and time of SLS object creation. - An OPTIONAL element that contains the date and time identifying the end of the SLS object's registration period. Example response: S: S: S: S: S: Command completed successfully S: S: S: S: S: Example Tag S: S: en S: US S: S: S: 1999-04-03T22:00:00.0Z S: 2001-04-03T22:00:00.0Z S: S: S: S: ABC-12345 S: 54321-XYZ S: S: S: An EPP error response MUST be returned if a command can not be processed for any reason. Hollenbeck Expires March 26, 2006 [Page 22] Internet-Draft EPP SLS Mapping September 2005 3.2.2. EPP Command The EPP command provides a transform operation that allows a client to delete an SLS object. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object to be deleted. The element used in this context is identical to the element used by the command described in Section 3.1.1. Example command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: C: ABC-12345 C: C: When a command has been processed successfully, a server MUST respond with an EPP response with no element. Hollenbeck Expires March 26, 2006 [Page 23] Internet-Draft EPP SLS Mapping September 2005 Example response: S: S: S: S: S: Command completed successfully S: S: S: ABC-12345 S: 54321-XYZ S: S: S: An EPP error response MUST be returned if a command can not be processed for any reason. 3.2.3. EPP Command The EPP command provides a transform operation that allows a client to extend the validity period of an SLS object. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object to be renewed. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An element that contains the date on which the current validity period ends. This value ensures that repeated commands do not result in multiple unanticipated successful renewals. - An OPTIONAL element that contains the number of units to be added to the registration period of the SLS object. The number of units available MAY be subject to limits imposed by the server. Hollenbeck Expires March 26, 2006 [Page 24] Internet-Draft EPP SLS Mapping September 2005 Example command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: 2000-04-03 C: 5 C: C: C: ABC-12345 C: C: When a command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains the following child elements: - An element that identifies the SLS object that was renewed. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An OPTIONAL element that contains the date and time identifying the end of the SLS object's registration period. Hollenbeck Expires March 26, 2006 [Page 25] Internet-Draft EPP SLS Mapping September 2005 Example response: S: S: S: S: S: Command completed successfully S: S: S: S: S: Example Tag S: S: en S: US S: S: S: 2005-04-03T22:00:00.0Z S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: An EPP error response MUST be returned if a command can not be processed for any reason. 3.2.4. EPP Command The EPP command provides a transform operation that allows a client to manage requests to transfer the sponsorship of an SLS object. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 26] Internet-Draft EPP SLS Mapping September 2005 - An element that identifies the SLS object for which a transfer request is to be created, approved, rejected, or cancelled. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An OPTIONAL element that contains the number of units to be added to the registration period of the SLS object at completion of the transfer process. This element can only be used when a transfer is requested, and it MUST be ignored if used otherwise. The number of units available MAY be subject to limits imposed by the server. - An element that contains authorization information associated with the SLS object. Every EPP command MUST contain an "op" attribute that identifies the transfer operation to be performed. Valid values, definitions, and authorizations for all attribute values are defined in RFC 3730bis [I-D.hollenbeck-epp-rfc3730bis]. Hollenbeck Expires March 26, 2006 [Page 27] Internet-Draft EPP SLS Mapping September 2005 Example request command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: 1 C: C: 2fooBAR C: C: C: C: ABC-12345 C: C: When a command has been processed successfully, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains the same child elements defined for a transfer query response as described in Section 3.1.3. Hollenbeck Expires March 26, 2006 [Page 28] Internet-Draft EPP SLS Mapping September 2005 Example response: S: S: S: S: S: Command completed successfully; action pending S: S: S: S: S: Example Tag S: S: en S: US S: S: S: pending S: ClientX S: 2000-06-08T22:00:00.0Z S: ClientY S: 2000-06-13T22:00:00.0Z S: 2002-09-08T22:00:00.0Z S: S: S: S: ABC-12345 S: 54322-XYZ S: S: S: An EPP error response MUST be returned if a command can not be processed for any reason. 3.2.5. EPP Command The EPP command provides a transform operation that allows a client to modify the attributes of an SLS object. In addition to the standard EPP command elements, the command MUST contain an element that identifies the object namespace and the location of the object schema. The element contains Hollenbeck Expires March 26, 2006 [Page 29] Internet-Draft EPP SLS Mapping September 2005 the following child elements: - An element that identifies the SLS object to be updated. The element used in this context is identical to the element used by the command described in Section 3.1.1. - An OPTIONAL element that contains attribute values to be added to the object. - An OPTIONAL element that contains attribute values to be removed from the object. - An OPTIONAL element that contains object attribute values to be changed. At least one , , or element MUST be provided if the command is not being extended. All of these elements MAY be omitted if an extension is present. The and elements contain the following child elements: - Zero or more elements that contain the identifiers for contact objects to be associated with or removed from the SLS object. Contact object identifiers MUST be known to the server before the contact object can be associated with the SLS object. - Zero or more elements that contain status values to be applied to or removed from the object. When specifying a value to be removed, only the attribute value is significant; element text is not required to match a value for removal. - An OPTIONAL element. The element contains one or more elements that contain URIs for services to be associated with or removed from the SLS object. An element contains the following child elements: - An OPTIONAL element that contains business category text to be associated with the SLS object. - An OPTIONAL element that contains the identifier for the human or organizational social information (contact) object to be associated with the SLS object as the object registrant. This object identifier MUST be known to the server before the contact object can be associated with the SLS Hollenbeck Expires March 26, 2006 [Page 30] Internet-Draft EPP SLS Mapping September 2005 object. An empty element can be used to remove registrant information. - An OPTIONAL element that contains authorization information to be associated with the SLS object. This mapping includes a password-based authentication mechanism, but the schema allows new mechanisms to be defined in new schemas. An element can be used within the element to remove authorization information. Hollenbeck Expires March 26, 2006 [Page 31] Internet-Draft EPP SLS Mapping September 2005 Example command: C: C: C: C: C: C: C: Example Tag C: C: en C: US C: C: C: C: mak21 C: Payment overdue. C: C: dns:s.example?type=CERT C: C: C: C: sh8013 C: C: C: C: C: sh8013 C: C: 2BARfoo C: C: C: C: C: ABC-12345 C: C: When an command has been processed successfully, a server MUST respond with an EPP response with no element. Hollenbeck Expires March 26, 2006 [Page 32] Internet-Draft EPP SLS Mapping September 2005 Example response: S: S: S: S: S: Command completed successfully S: S: S: ABC-12345 S: 54321-XYZ S: S: S: An EPP error response MUST be returned if an command can not be processed for any reason. 3.3. Offline Review of Requested Actions Commands are processed by a server in the order they are received from a client. Though an immediate response confirming receipt and processing of the command is produced by the server, a server operator MAY perform an offline review of requested transform commands before completing the requested action. In such situations the response from the server MUST clearly note that the transform command has been received and processed, but the requested action is pending. The status of the corresponding object MUST clearly reflect processing of the pending action. The server MUST notify the client when offline processing of the action has been completed. Examples describing a command that requires offline review are included here. Note the result code and message returned in response to the command. Hollenbeck Expires March 26, 2006 [Page 33] Internet-Draft EPP SLS Mapping September 2005 S: S: S: S: S: Command completed successfully; action pending S: S: S: S: S: Example Tag S: S: en S: US S: S: S: 1999-04-03T22:00:00.0Z S: 2001-04-03T22:00:00.0Z S: S: S: S: ABC-12345 S: 54321-XYZ S: S: S: The status of the SLS object after returning this response MUST include "pendingCreate". The server operator reviews the request offline, and informs the client of the outcome of the review by queuing a service message for retrieval via the command. The service message MUST contain text in the , , element that describes the notification. In addition, the EPP element MUST contain a child element that identifies the object namespace and the location of the object schema. The element contains the following child elements: Hollenbeck Expires March 26, 2006 [Page 34] Internet-Draft EPP SLS Mapping September 2005 - An element that identifies the SLS object being processed. The element used in this context is identical to the element used by the command described in Section 3.1.1, except that the element contains a REQUIRED "paResult" attribute. A positive boolean value indicates that the request has been approved and completed. A negative boolean value indicates that the request has been denied and the requested action has not been taken. - An element that contains the client transaction identifier and server transaction identifier returned with the original response to process the command. The client transaction identifier is OPTIONAL and will only be returned if the client provided an identifier with the original command. - An element that contains the date and time describing when review of the requested action was completed. Hollenbeck Expires March 26, 2006 [Page 35] Internet-Draft EPP SLS Mapping September 2005 Example "review completed" service message: S: S: S: S: S: Command completed successfully; ack to dequeue S: S: S: 1999-04-04T22:01:00.0Z S: Pending action completed successfully. S: S: S: S: S: Example Tag S: S: en S: US S: S: S: S: ABC-12345 S: 54321-XYZ S: S: 1999-04-04T22:00:00.0Z S: S: S: S: BCD-23456 S: 65432-WXY S: S: S: 4. Formal Syntax An EPP object mapping is specified in XML Schema notation. The formal syntax presented here is a complete schema representation of the object mapping suitable for automated validation of EPP XML instances. The BEGIN and END tags are not part of the schema; they Hollenbeck Expires March 26, 2006 [Page 36] Internet-Draft EPP SLS Mapping September 2005 are used to note the beginning and ending of the schema for URI registration purposes. BEGIN Extensible Provisioning Protocol v1.0 Service Lookup System (SLS) provisioning schema. Hollenbeck Expires March 26, 2006 [Page 37] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 38] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 40] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 41] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 42] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 43] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 44] Internet-Draft EPP SLS Mapping September 2005 Hollenbeck Expires March 26, 2006 [Page 45] Internet-Draft EPP SLS Mapping September 2005 END 5. Internationalization Considerations EPP is represented in XML, which provides native support for encoding information using the Unicode character set and its more compact representations including UTF-8 [RFC3629]. Conformant XML processors recognize both UTF-8 and UTF-16 [RFC2781]. Though XML includes provisions to identify and use other character encodings through use of an "encoding" attribute in an declaration, use of UTF-8 is RECOMMENDED in environments where parser encoding support incompatibility exists. Hollenbeck Expires March 26, 2006 [Page 46] Internet-Draft EPP SLS Mapping September 2005 All date-time values presented via EPP MUST be expressed in Universal Coordinated Time using the Gregorian calendar. XML Schema allows use of time zone identifiers to indicate offsets from the zero meridian, but this option MUST NOT be used with EPP. The extended date-time form using upper case "T" and "Z" characters defined in RFC 3339 [RFC3339] MUST be used to represent date-time values as XML Schema does not support truncated date-time forms or lower case "T" and "Z" characters. 6. IANA Considerations This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in RFC 3688 [RFC3688]. Two URI assignments are requested. Registration request for the extension namespace: URI: urn:ietf:params:xml:ns:eppSLS-1.0 Registrant Contact: IESG XML: None. Namespace URIs do not represent an XML specification. Registration request for the extension XML schema: URI: urn:ietf:params:xml:schema:eppSLS-1.0 Registrant Contact: IESG XML: See the "Formal Syntax" section of this document. 7. Security Considerations Authorization information as described in Section 3.2.1 is REQUIRED to create an SLS object. This information is used in some query and transfer operations as an additional means of determining client authorization to perform the command. Failure to protect authorization information from inadvertent disclosure can result in unauthorized transfer operations and unauthorized information release. Both client and server MUST ensure that authorization information is stored and exchanged with high-grade encryption mechanisms to provide privacy services. The object mapping described in this document does not provide any other security services or introduce any additional considerations beyond those described by RFC 3730bis [I-D.hollenbeck-epp-rfc3730bis] Hollenbeck Expires March 26, 2006 [Page 47] Internet-Draft EPP SLS Mapping September 2005 and protocol layers used by EPP. 8. Acknowledgements The author would like to thank the following people who have provided significant contributions to the development of this document: Mark Kosters, Andrew Newton. 9. References 9.1. Normative References [I-D.daigle-iris-slsreg] Daigle, L. and A. Newton, "IRIS Service Lookup System", draft-daigle-iris-slsreg-00 (work in progress), May 2005. [I-D.hollenbeck-epp-rfc3730bis] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", draft-hollenbeck-epp-rfc3730bis-00 (work in progress), September 2005. [I-D.hollenbeck-epp-rfc3733bis] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Contact Mapping", draft-hollenbeck-epp-rfc3733bis-00 (work in progress), September 2005. [I-D.ietf-ltru-registry] Phillips, A. and M. Davis, "Tags for Identifying Languages", draft-ietf-ltru-registry-12 (work in progress), August 2005. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, July 2002. [RFC3981] Newton, A. and M. Sanz, "IRIS: The Internet Registry Information Service (IRIS) Core Protocol", RFC 3981, January 2005. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. Hollenbeck Expires March 26, 2006 [Page 48] Internet-Draft EPP SLS Mapping September 2005 [RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource Identifiers (IRIs)", RFC 3987, January 2005. [W3C.REC-xml-20001006] Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler, "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C FirstEdition REC-xml-20001006, October 2000. [W3C.REC-xmlschema-1-20010502] Maloney, M., Beech, D., Mendelsohn, N., and H. Thompson, "XML Schema Part 1: Structures", W3C REC REC-xmlschema-1- 20010502, May 2001. [W3C.REC-xmlschema-2-20010502] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes", W3C REC REC-xmlschema-2-20010502, May 2001. 9.2. Informative References [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987. [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 10646", RFC 2781, February 2000. [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003. [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004. Hollenbeck Expires March 26, 2006 [Page 49] Internet-Draft EPP SLS Mapping September 2005 Author's Address Scott Hollenbeck VeriSign, Inc. 21345 Ridgetop Circle Dulles, VA 20166-6503 US Email: shollenbeck@verisign.com Hollenbeck Expires March 26, 2006 [Page 50] Internet-Draft EPP SLS Mapping September 2005 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Hollenbeck Expires March 26, 2006 [Page 51]