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]