idnits 2.17.1 draft-ietf-weirds-rdap-query-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (September 19, 2012) is 4236 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC2119' is defined on line 312, but no explicit reference was found in the text == Outdated reference: A later version (-14) exists of draft-ietf-weirds-json-response-00 == Outdated reference: A later version (-15) exists of draft-ietf-weirds-using-http-00 -- Possible downref: Normative reference to a draft: ref. 'I-D.draft-ietf-weirds-using-http' ** Downref: Normative reference to an Unknown state RFC: RFC 952 ** Downref: Normative reference to an Informational RFC: RFC 1166 ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Downref: Normative reference to an Informational RFC: RFC 4290 -- Obsolete informational reference (is this intentional?): RFC 4627 (Obsoleted by RFC 7158, RFC 7159) Summary: 4 errors (**), 0 flaws (~~), 5 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Newton 3 Internet-Draft ARIN 4 Intended status: Standards Track S. Hollenbeck 5 Expires: March 23, 2013 Verisign Labs 6 September 19, 2012 8 Unified Registration Data Access Protocol Query Format 9 draft-ietf-weirds-rdap-query-00 11 Abstract 13 This document describes uniform patterns to construct HTTP URLs that 14 may be used to retrieve registration information from registries 15 (including both Regional Internet Registries (RIRs) and Domain Name 16 Registries (DNRs)) using "RESTful" web access patterns. 18 Status of this Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on March 23, 2013. 35 Copyright Notice 37 Copyright (c) 2012 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 53 2. Path Segment Specification . . . . . . . . . . . . . . . . . . 4 54 2.1. IP Network Path Segment Specification . . . . . . . . . . . 4 55 2.2. Autonomous System Path Segment Specification . . . . . . . 5 56 2.3. Domain Path Segment Specification . . . . . . . . . . . . . 5 57 2.4. Name Server Path Segment Specification . . . . . . . . . . 5 58 2.5. Entity Path Segment Specification . . . . . . . . . . . . . 6 59 3. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . 6 60 4. Internationalization Considerations . . . . . . . . . . . . . . 6 61 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 62 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 63 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 64 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 65 8.1. Normative References . . . . . . . . . . . . . . . . . . . 7 66 8.2. Informative References . . . . . . . . . . . . . . . . . . 9 67 Appendix A. Path Segment Specification for Search Queries . . . . 9 68 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . . 9 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 71 1. Introduction 73 This document describes a specification for querying registration 74 data using a RESTful web service and uniform query patterns. The 75 service is implemented using the Hypertext Transfer Protocol (HTTP) 76 [RFC2616]. 78 The protocol described in this specification is intended to address 79 deficiencies with the WHOIS protocol [RFC3912] that have been 80 identified over time, including: 82 o Lack of standardized command structures, 83 o lack of standardized output and error structures, 84 o lack of support for internationalization and localization, and 85 o lack of support for user identification, authentication, and 86 access control. 88 The patterns described in this document purposefully do not encompass 89 all of the methods employed in the WHOIS and RESTful web services of 90 all of the RIRs and DNRs. The intent of the patterns described here 91 are to enable lookups of networks by IP address, autonomous system 92 numbers by number, reverse DNS meta-data by domain, domains by name, 93 name servers by name, registrars by name, and entities (such as 94 contacts) by identifier. It is envisioned that each registry will 95 continue to maintain NICNAME/WHOIS and/or RESTful web services 96 specific to their needs and those of their constituencies, and the 97 information retrieved through the patterns described here may 98 reference such services. 100 WHOIS services, in general, are read-only services. Therefore URL 101 [RFC3986] patterns presented here are only applicable to the HTTP 102 [RFC2616] GET and HEAD methods. 104 This document does not describe the results or entities returned from 105 issuing the described URLs with an HTTP GET. It is envisioned that 106 other documents will describe these entities in various serialization 107 formats, such as JavaScript Object Notation (JSON, [RFC4627]). 109 Additionally, resource management, provisioning and update functions 110 are out of scope for this document. Registries have various and 111 divergent methods covering these functions, and it is unlikely a 112 uniform approach for these functions will ever be possible. 114 While HTTP contains mechanisms for servers to authenticate clients 115 and for clients to authenticate servers (from which authorization 116 schemes may be built), both authentication of clients and servers and 117 authorization for access to data are out-of-scope of this document. 118 In general, these matters require "policy" and are not the domain of 119 technical standards bodies. 121 2. Path Segment Specification 123 The uniform patterns start with a base URL [RFC3986] specified by 124 each registry or any other service provider offering this service. 125 The base URL will be appended with resource type specific path 126 segments. The base URL may contain its own path segments (e.g. 127 http://example.com/... or http://example.com/restful-WHOIS/... ). 129 The resource type path segments are: 130 o 'ip': IP networks and associated data referenced using either an 131 IPv4 or IPv6 address. 132 o 'autnum': Autonomous system registrations and associated data 133 referenced using an AS Plain autonomous system number. 134 o 'domain': Reverse DNS (RIR) or domain name (DNR) information and 135 associated data referenced using a fully-qualified domain name. 136 o 'nameserver': Used to identify a name server information query. 137 o 'entity': Used to identify an entity information query. 139 2.1. IP Network Path Segment Specification 141 Syntax: ip/ or ip// 143 Queries for information about IP networks are of the form /ip/XXX/... 144 or /ip/XXX/YY/... where the path segment following 'ip' is either an 145 IPv4 [RFC1166] or IPv6 [RFC5952] address (i.e. XXX) or an IPv4 or 146 IPv6 CIDR [RFC4632] notation address block (i.e. XXX/YY). 147 Semantically, the simpler form using the address can be thought of as 148 a CIDR block with a length of 32 for IPv4 and a length of 128 for 149 IPv6. A given specific address or CIDR may fall within multiple IP 150 networks in a hierarchy of networks, therefore this query targets the 151 "most-specific" or lowest IP network which completely encompasses it 152 in a hierarchy of IP networks. 154 This is an example URL for the most specific network containing 155 192.0.2.0: 157 /ip/192.0.2.0 159 This is an example of a URL the most specific network containing 160 192.0.2.0/24: 162 /ip/192.0.2.0/24 164 2.2. Autonomous System Path Segment Specification 166 Syntax: autnum/ 168 Queries for information regarding autonomous system number 169 registrations are of the form /autnum/XXX/... where XXX is an 170 autonomous system number [RFC5396]. In some registries, registration 171 of autonomous system numbers is done on an individual number basis, 172 while other registries may register blocks of autonomous system 173 numbers. The semantics of this query is such that if a number falls 174 within a range of registered blocks, the target of the query is the 175 block registration, and that individual number registrations are 176 considered a block of numbers with a size of 1. 178 For example, to find information on autonomous system number 65551, 179 the following path would be used: 181 /autnum/65551 183 2.3. Domain Path Segment Specification 185 Syntax: domain/ 187 Queries for domain information are of the form /domain/XXXX/..., 188 where XXXX is a fully-qualified domain name [RFC4343] in either the 189 in-addr.arpa or ip6.arpa zones (for RIRs) or a fully-qualified domain 190 name in a zone administered by the server operator (for DNRs). 191 Internationalized domain names represented in A-label format 192 [RFC5890] are also valid domain names. 194 The following path would be used to find information describing the 195 zone serving the network 192.0.2/24: 197 /domain/2.0.192.in-addr.arpa 199 The following path would be used to find information for the 200 example.com domain name: 202 /domain/example.com 204 2.4. Name Server Path Segment Specification 206 Syntax: nameserver/ 208 The parameter represents a fully qualified name as 209 specified in RFC 952 [RFC0952] and RFC 1123 [RFC1123]. 210 Internationalized names represented in A-label format [RFC5890] are 211 also valid name server names. 213 The following path would be used to find information for the 214 ns1.example.com name server: 216 /nameserver/ns1.example.com 218 2.5. Entity Path Segment Specification 220 Syntax: entity/ 222 The parameter represents an entity (such as a contact, 223 registrant, or registrar) identifier. For example, for some DNRs 224 contact identifiers are specified in RFC 5730 [RFC5730] and RFC 5733 225 [RFC5733]. 227 The following path would be used to find information for the entity 228 associated with handle CID-4005: 230 /entity/CID-4005 232 3. Extensibility 234 This document describes path segment specifications for a limited 235 number of objects commonly registered in both RIRs and DNRs. It does 236 not attempt to describe path segments for all of the objects 237 registered in all registries. Custom path segments can be created 238 for objects not specified here using the process described in Section 239 TBD of "Using HTTP for RESTful Whois Services by Internet Registries" 240 [I-D.draft-ietf-weirds-using-http]. 242 Custom path segments can be created by prefixing the segment with a 243 unique identifier followed by an underscore character (0x5F). For 244 example, a custom entity path segment could be created by prefixing 245 "entity" with "custom_", producing "custom_entity". Servers SHOULD 246 ignore unrecognized path segments. 248 4. Internationalization Considerations 250 There is value in supporting the ability to submit either a U-label 251 (Unicode form of an IDN label) or an A-label (ASCII form of an IDN 252 label) as a query argument to an RDAP service. Clients with 253 graphical user interfaces may prefer a U-label since this is more 254 visually recognizable and familiar than A-label strings, but clients 255 of programmatic interfaces may wish to submit and display A-labels or 256 may not be able to input U-labels with their keyboard configuration. 257 In the interest of protocol simplicity, A-labels (the "wire format" 258 of IDNs) are the only labels supported by this specification. 260 Internationalized domain and name server names can contain character 261 variants and variant labels as described in RFC 4290 [RFC4290]. 262 Clients that support queries for internationalized domain and name 263 server names MUST accept service provider responses that describe 264 variants as specified in "JSON Responses for the Registy Data Access 265 Protocol" [I-D.draft-ietf-weirds-json-response]. 267 5. IANA Considerations 269 This document does not specify any IANA actions. 271 6. Security Considerations 273 Need text here. 275 7. Acknowledgements 277 This document is derived from original work on RIR query formats 278 developed by Byron J. Ellacott of APNIC, Arturo L. Servin of LACNIC, 279 Kaveh Ranjbar of the RIPE NCC, and Andrew L. Newton of ARIN. 280 Additionally, this document incorporates DNR query formats originally 281 described by Francisco Arias and Steve Sheng of ICANN and Scott 282 Hollenbeck of Verisign. 284 The authors would like to acknowledge the following individuals for 285 their contributions to this document: TBD. 287 8. References 289 8.1. Normative References 291 [I-D.draft-ietf-weirds-json-response] 292 Newton, A. and S. Hollenbeck, "JSON Responses for the 293 Registy Data Access Protocol", 294 draft-ietf-weirds-json-response-00 (work in progress), 295 September 2012. 297 [I-D.draft-ietf-weirds-using-http] 298 Newton, A., Ellacott, B., and N. Kong, "Using HTTP for 299 RESTful Whois Services by Internet Registries", 300 draft-ietf-weirds-using-http-00 (work in progress), 301 September 2012. 303 [RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet 304 host table specification", RFC 952, October 1985. 306 [RFC1123] Braden, R., "Requirements for Internet Hosts - Application 307 and Support", STD 3, RFC 1123, October 1989. 309 [RFC1166] Kirkpatrick, S., Stahl, M., and M. Recker, "Internet 310 numbers", RFC 1166, July 1990. 312 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 313 Requirement Levels", BCP 14, RFC 2119, March 1997. 315 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 316 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 317 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 319 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 320 Resource Identifier (URI): Generic Syntax", STD 66, 321 RFC 3986, January 2005. 323 [RFC4290] Klensin, J., "Suggested Practices for Registration of 324 Internationalized Domain Names (IDN)", RFC 4290, 325 December 2005. 327 [RFC4343] Eastlake, D., "Domain Name System (DNS) Case Insensitivity 328 Clarification", RFC 4343, January 2006. 330 [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing 331 (CIDR): The Internet Address Assignment and Aggregation 332 Plan", BCP 122, RFC 4632, August 2006. 334 [RFC5396] Huston, G. and G. Michaelson, "Textual Representation of 335 Autonomous System (AS) Numbers", RFC 5396, December 2008. 337 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 338 STD 69, RFC 5730, August 2009. 340 [RFC5733] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) 341 Contact Mapping", STD 69, RFC 5733, August 2009. 343 [RFC5890] Klensin, J., "Internationalized Domain Names for 344 Applications (IDNA): Definitions and Document Framework", 345 RFC 5890, August 2010. 347 [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 348 Address Text Representation", RFC 5952, August 2010. 350 8.2. Informative References 352 [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, 353 September 2004. 355 [RFC4627] Crockford, D., "The application/json Media Type for 356 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 358 URIs 360 [1] 362 [2] 364 [3] 366 [4] 368 Appendix A. Path Segment Specification for Search Queries 370 All of the path segments described in this document identify patterns 371 for exact-match lookups of data elements. We have explicitly omitted 372 specifications for search queries in the interest of first focusing 373 on more basic protocol operations. Once we understand how exact- 374 match queries will work we will attempt to define specifications for 375 search queries. 377 It is important to note that there are already multiple 378 implementations of RESTful RDAP-like prototypes that provide search 379 capabilities. For example: 381 The American Registry for Internet Numbers (ARIN) has published an 382 API [1] (see Section 4.4.2) that describes using plural forms of 383 path segment identifiers (e.g. "domains") and Matrix URIs [2] to 384 indicate that a client is requesting a list of values when 385 searching for RIR registration data. A prototype service [3] that 386 implements this API is up and running. 388 Verisign has deployed a prototype service [4] that implements 389 searches for DNR registration data using HTML query strings (e.g. 390 "?_PRE") to identify search parameters. For example, 391 "http://dnrd.verisignlabs.com/dnrd-ap/domain/verisign?_PRE" 392 performs a search for domain names with a "verisign" prefix. 394 The specifications that are eventually added to this document will 395 likely combine features from these and other examples of running 396 code. 398 Appendix B. Change Log 400 Initial -00: Adopted as working group document. 402 Authors' Addresses 404 Andrew Lee Newton 405 American Registry for Internet Numbers 406 3635 Concorde Parkway 407 Chantilly, VA 20151 408 US 410 Email: andy@arin.net 411 URI: http://www.arin.net 413 Scott Hollenbeck 414 Verisign Labs 415 12061 Bluemont Way 416 Reston, VA 20190 417 US 419 Email: shollenbeck@verisign.com 420 URI: http://www.verisignlabs.com/