Internet DRAFT - draft-newton-regext-rdap-domain-availability
draft-newton-regext-rdap-domain-availability
Network Working Group A. Newton
Internet-Draft ARIN
Intended status: Informational M. Sanz
Expires: June 19, 2017 DENIC eG
December 16, 2016
Using RDAP as a Domain Availability Service
draft-newton-regext-rdap-domain-availability-00
Abstract
This document describes a minimal profile of RDAP which can be used
to check the availability of domain names available for registration.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
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 http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on June 19, 2017.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Newton & Sanz Expires June 19, 2017 [Page 1]
Internet-Draft RDAP Domain Availability December 2016
1. Introduction
While RDAP [RFC7480] has all the necessary properties to serve the
information necessary to determine if a domain name is available for
registration, without proper signalling an RDAP server is likely to
return more information than is required to fulfill this requirement,
thus wasting bandwidth and server resources, and may return negative
answers when positive answers are more appropriate.
This document defines HTTP query parameters to be used by clients to
signal the intent of the query is for an availability check. Servers
may then respond with a much smaller and less costly payload than
they would have otherwise. The contents of the payload would be at
the discretion of the policies of the server operator within the
guidelines of RDAP responses [RFC7483].
2. Query Parameter
To signal that the client is only interested in domain availability
checking, the client MUST use the query parameter 'availabilityCheck'
in the RDAP query for a domain with value '1'. This query parameter
has no meaning for other RDAP queries, and therefore should be
ignored in those cases.
The following is an example RDAP query for a domain availability
check.
https://example.com/rdap/domain/example.com?availabilityCheck=1
Figure 1: Example RDAP Query
The following is an example response.
{
"rdapConformance" : [ "rdap_level_0", "domain_check_0" ],
"objectClassName" : "domain",
"ldhName" : "example.com",
"status" : [ "inactive", "redemption period" ]
}
This response, not including the HTTP headers, is 174 octets long.
Figure 2: Example RDAP Response
When this query parameter is given, servers MUST reply with HTTP
return codes as specified in Section 3.
Newton & Sanz Expires June 19, 2017 [Page 2]
Internet-Draft RDAP Domain Availability December 2016
3. Positive and Negative Answers
RDAP [RFC7480] provides guidance on using HTTP return codes more
contextual for the lookup of domain registration information than
domain availability information. A query for domain registration
information should result in a negative answer (e.g. 404 NOT FOUND)
if the name is not registered (or not in active use or in another
state where it may be considered to have a unregistration according
to policy). However, a query for domain availability information
upon the same domain name should yield a positive answer if the
domain is available for registration within the bounds of the
registry policy. In other words, the return codes may vary given the
appropriate context.
In the context of domain availability, RDAP servers should return
positive answers (in accordance with server policies for rate
limiting and access control) if the domain registry for which the
RDAP server is responding allows registration of the queried domain
even if the domain is currently registered at the time of the query.
For example, an RDAP server answering for foo.example would return a
positive answer (i.e. 200 OK) for fiz.foo.example if the domain
status was active or inactive, but it would return a negative answer
for buzz.bar.example because it is not the registry for bar.example.
The example in Figure 2 shows a positive answer for a domain that is
inactive (i.e. not registered). This example shows a positive answer
for a domain that is active, including variants and the expiration
date.
Newton & Sanz Expires June 19, 2017 [Page 3]
Internet-Draft RDAP Domain Availability December 2016
{
"rdapConformance" : [ "rdap_level_0", "domain_check_0" ],
"objectClassName" : "domain",
"handle" : "XXXX",
"ldhName" : "xn--fo-5ja.example",
"unicodeName" : "f√>=o.example",
"variants" :
[
{
"relation" : [ "registered", "conjoined" ],
"variantNames" :
[
{
"ldhName" : "xn--fo-cka.example",
"unicodeName" : "f√[micro]o.example"
},
{
"ldhName" : "xn--fo-fka.example",
"unicodeName" : "föo.example"
}
]
},
{
"relation" : [ "unregistered", "registration restricted" ],
"variantNames" :
[
{
"ldhName": "xn--fo-8ja.example",
"unicodeName" : "f√JPYo.example"
}
]
}
],
"status" : [ "active", "transfer prohibited" ],
"events" :
[
{
"eventAction" : "expiration",
"eventDate" : "2019-12-31T23:59:59Z"
}
]
}
This response, not including the HTTP headers, is 908 octets long in
UTF-8 encoding.
Figure 3: Example Positive Answer
Newton & Sanz Expires June 19, 2017 [Page 4]
Internet-Draft RDAP Domain Availability December 2016
4. Availability Information Query
All of the examples given in this document have been reduced from
examples in [RFC7483], demonstrating that domain availability
information is a subset of domain registration information in the
RDAP data model. Some clients may desire both domain registration
information and domain availability information. To signal that the
client is interested in both contexts, the client MUST use the query
parameter 'availabilityInformation' in the RDAP query for a domain
with value '1'. This query parameter has no meaning for other RDAP
queries, and therefore should be ignored in those cases.
Servers MUST respond with positive answers as specified in Section 3,
but SHOULD NOT redact other registration information (i.e. entities,
name servers, etc...) in accordance with their access policies.
5. RDAP Conformance
Servers MUST include "domain_check_0" in the rdapConformance array of
their response when modifying their behavior according to this
specification. That is, this value should only be placed in the
array when responding to a query with one of the query parameters in
Section 2 or Section 4.
6. Normative References
[RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the
Registration Data Access Protocol (RDAP)", RFC 7480,
DOI 10.17487/RFC7480, March 2015,
<http://www.rfc-editor.org/info/rfc7480>.
[RFC7483] Newton, A. and S. Hollenbeck, "JSON Responses for the
Registration Data Access Protocol (RDAP)", RFC 7483,
DOI 10.17487/RFC7483, March 2015,
<http://www.rfc-editor.org/info/rfc7483>.
Authors' Addresses
Andrew Lee Newton
American Registry for Internet Numbers
PO Box 232290
Centreville, VA 20120
US
Email: andy@arin.net
URI: http://www.arin.net
Newton & Sanz Expires June 19, 2017 [Page 5]
Internet-Draft RDAP Domain Availability December 2016
Marcos Sanz
DENIC eG
Kaiserstrasse 75 - 77
Frankfurt am Main 60329
Germany
Email: sanz@denic.de
URI: https://www.denic.de
Newton & Sanz Expires June 19, 2017 [Page 6]