Re: [regext] Extension Prefixes, JSON Values, and URI Path Segments

"Gould, James" <jgould@verisign.com> Mon, 02 May 2022 13:42 UTC

Return-Path: <jgould@verisign.com>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4C0A0C15E3F6 for <regext@ietfa.amsl.com>; Mon, 2 May 2022 06:42:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a0GFFntgbckN for <regext@ietfa.amsl.com>; Mon, 2 May 2022 06:42:19 -0700 (PDT)
Received: from mail4.verisign.com (mail4.verisign.com [69.58.187.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6B315C15E3F4 for <regext@ietf.org>; Mon, 2 May 2022 06:42:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=29203; q=dns/txt; s=VRSN; t=1651498940; h=from:to:subject:date:message-id:mime-version; bh=zL03pf3toJj6kGRZvoqFNu3zX6WwPkV/3FAiCYkXUAg=; b=e2QWnPNNfysc59Cr62gpEcMD+UKeDUxG0CVG47PzTYFqr66M5VNdqxMD 3hQu+vKW1kxRhP6KZeFvD8HOz7uz5avW1QnvaWCPd/kfIsrxyDKZiKR4E ei3/DSGmsUivdmGaQj7ClwFOEz3/L9D1eynlzd5jdNcEa6ZeOmo7WlIwm A9UNRjCMEgoEO80qcHCuXDlOVnHPDMjFEF7tLaGPs92MTpJvLUH+zpu6N LQQJ+iTKjNjAcCn7fuZCaHXVnhwCuHAO62g0ehtr6iuZkb7KhVy/FqWk2 iKdmH+ACRWIUnWtpiKnLM39AvA3uJuH5WBT84DmhhZyz6+O+sfeJpWJnQ A==;
IronPort-Data: A9a23:C6qjcq43jX3BXEjckfgEwQxRtGvGchMFZxGqfqrLsTDasY5as4F+v mVOCj+Eb/jcZTSkctB3PIi2oEtXvcXTyIJnG1Q4rng9Eysa+MHIO4+Ufxz6V8+wwm8vb2o8t plDNYOQRCwQZiWBzvt4GuG59RGQ7UwML1bFILas1hpZHGeIcw98z0M68wIFqtQw24LhXlvX4 YqaT/D3YzdJ5RYlagr41Ire8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBe gr25OrRElXxpE5xV4z/wt4XRWVRKlLaFVDmZnN+BfD+0kAazsA4+v5T2PE0MS+7h9gV9jzYJ RokWZGYEG8U0qPwdOs1UjtyCzhfYa989Lb3A2r4i92R3mD/Si65qxluJBle0Yww0NxRWF5o2 MxAcXYTZReZn6S/zPSlUPJqwM8kKaEHPqtG4jc5kmqfVKt9B8yTK0nJzYYwMDMYhM9JAPLST 9QUczt0bRvGJRZIPz/7DbpnwLz21iKgLVW0rnq0q4Me8lrc0jdr0eXpDfiFQ/zWdJpayxPwS mXuuj6R7gshHMefzj6B/3Smi+TMyH+jRo8IFaa5+fgsi1qW7mAWAQcdE1q2vff/jVSxM/pFJ kMZ6jYGrKUu+gqsVNaVYvGjiHSeuEcDXddAS7R/8x+XjK/V+EOTAS4OVDgYLsI8r8lwTjsvv rOUo+7U6fVUmOX9YRqgGn289Fte5QB9wbc+WBI5
IronPort-HdrOrdr: A9a23:O1mzSK9aSsxtSz/j8xduk+AFI+orL9Y04lQ7vn2ZLiYlF/Bw9v re/sjzuiWVtN98Yh8dcLO7V5VoKEm0naKdirNhXotKMjOGhEKYaK9v6of4yyDtFmnU5odmuZ tIQuxbBMfrBVZ3yeT38GCDeeoI8Z2i/LqzjenTi01xSxpnApsM0y5iBh2FHlZNSA5KOJo8GP OnjfZ6mw==
X-IronPort-AV: E=Sophos; i="5.91,192,1647316800"; d="scan'208,217"; a="14368376"
Received: from BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) by BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.24; Mon, 2 May 2022 09:42:17 -0400
Received: from BRN1WNEX01.vcorp.ad.vrsn.com ([10.173.153.48]) by BRN1WNEX01.vcorp.ad.vrsn.com ([10.173.153.48]) with mapi id 15.01.2375.024; Mon, 2 May 2022 09:42:17 -0400
From: "Gould, James" <jgould@verisign.com>
To: "shollenbeck=40verisign.com@dmarc.ietf.org" <shollenbeck=40verisign.com@dmarc.ietf.org>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [regext] Extension Prefixes, JSON Values, and URI Path Segments
Thread-Index: AQHYXipwPHKa9dI9JEifKfbrCh46hw==
Date: Mon, 02 May 2022 13:42:17 +0000
Message-ID: <B0311030-AD6D-4743-A32D-CE4BA45CDF2C@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.59.22031300
x-originating-ip: [10.170.148.18]
Content-Type: multipart/alternative; boundary="_000_B0311030AD6D4743A32DCE4BA45CDF2Cverisigncom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/LgFFahqbRfT-9Lwj_IzJUmLw02E>
Subject: Re: [regext] Extension Prefixes, JSON Values, and URI Path Segments
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 May 2022 13:42:24 -0000

Scott,



With the potential impacts to draft-ietf-regext-rdap-redacted, I did a review of the referenced RFC language for the Extension Prefixes, JSON Values, and URI Path Segments.  I provide my interpretation embedded below for consideration.  To provide a concrete example of the proposed changes to draft-ietf-regext-rdap-redacted, I list them below:



  1.  For the Extension Prefix, I believe that we need to register the “redacted” Extension identifier in the RDAP Extensions Registry instead of the versioned value “redacted_X.X”.
  2.  For the RDAP Conformance, as defined in Section 4.1 “RDAP Conformance”, I believe that we can follow the pattern of “rdap_level_0”, but leverage the pointed version number until the draft exits WGLC.
     *   Change references of “redacted_0.1” to “redacted_level_0.1”; although I believe we will need to bump it up to “redacted_level_0.2” based on adding the Redaction by Replacement Value Method that will be included in draft-ietf-regext-rdap-redacted-04 .
  3.  The “redacted” JSON response member will match the “redacted” extension identifier that will be registered in the RDAP Extensions Registry.

     *   The language of RFC 9083 “MUST use a string prefixed with the appropriate identifier from the IANA RDAP Extensions registry specified in [RFC7480].”, I believe the RFC will be met since a registered prefix should be able to be combined with a NULL suffix, meaning the member can match the registered extension identifier.  The key is that there are no conflicts with the members returned in the response, which is handled by the registration of the “redacted” extension identifier.



So, the only required changes to draft-ietf-regext-rdap-redacted is the extension identifier registered in the RDAP Extension Registry (“redacted” instead of “redacted_X.X”), and the RDAP Conformance value being changed to “redacted_level_X.X”.  The RDAP response member can remain “redacted”, since it will match the registered extension identifier (e.g., registered prefix with NULL suffix).



--



JG







James Gould

Fellow Engineer

jgould@Verisign.com <applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgould@Verisign.com>



703-948-3271

12061 Bluemont Way

Reston, VA 20190



Verisign.com <http://verisigninc.com/>



On 4/28/22, 10:27 AM, "regext on behalf of Hollenbeck, Scott" <regext-bounces@ietf.org on behalf of shollenbeck=40verisign.com@dmarc.ietf.org> wrote:



    Since this topic is coming up in the reverse search discussion, but isn't

    unique to reverse search, I thought it best to start another topic.



    Section 6 of RFC 7480 introduces the concept of "an IANA registry for prefixes

    used in JSON [RFC7159] data serialization and URI path segments (see Section

    8)". "lunarNic" is given as an example in Section 8. I cannot, though, find

    any mention of a MUST when it comes to using these prefixes for data

    structures or URI path segments, though Section 8.1 says this:



    "The extension identifier is used as a prefix in JSON names and as a prefix of

    path segments in RDAP URLs."



    RFC 9083 is more definitive. From Section 4.1:



    "When custom JSON values are inserted into responses, conformance to those

    custom specifications MUST use a string prefixed with the appropriate

    identifier from the IANA RDAP Extensions registry specified in [RFC7480].  For

    example, if the fictional Registry of the Moon wants to signify that their

    JSON responses are conformant with their registered extensions, the string

    used might be "lunarNIC_level_0"."



JG – My interpretation is that the registered extension prefixes used in the URI path segments and JSON response members need to be used, but it doesn’t specify the suffix that must be used.  The suffix could be NULL, and therefore the URI path segment and the JSON response members can match the registered extension prefixes.  The reference to “lunarNIC_level_0” looks to be relevant for a rdapConformance value, since the rdapConformance member has the purpose of signaling conformance in the response, and not the names of the RDAP response members themselves.  I believe the goal is to ensure that there is no conflict in URI Path Segments and JSON response members, which is met based on ensuring to use registered extension prefixes, which and I believe most likely will have a null suffix for the path segments and JSON response members.



    Note the use of MUST here. Section 5 of RFC 9082 contains similar text:



    "Custom path segments can be created for objects not specified here using the

    process described in Section 6 of "HTTP Usage in the Registration Data Access

    Protocol (RDAP)" [RFC7480].



    Custom path segments can be created by prefixing the segment with a unique

    identifier followed by an underscore character (0x5F). For example, a custom

    entity path segment could be created by prefixing "entity" with "custom_",

    producing "custom_entity"."



JG – This is not normative and covers a corner case of define a custom object of one that already exists.  Defining a new custom object (e.g., “foo” for the Foo object or “bar” for the Bar object) that doesn’t already exist would not require the use of an underscore character, since there would be no conflict with other path segments.  The custom path segment would match the registered RDAP extension identifier.  A custom entity object would not be able to use the path segment “entity”, so instead it differentiates the entity path segment using it’s registered extension identifier prefix.



    After re-reading all of this, my take is that extensions MUST tag new data

    structures and path segments with the prefix that's registered with IANA. That

    means I'm going to have to change the data structures and path segments in

    draft-ietf-regext-rdap-openid (I'm probably going to change the prefixes to

    something shorter to make them a bit less clunky). Other extension

    authors/editors should review their documents and provide their own

    assessments.



    Scott



    _______________________________________________

    regext mailing list

    regext@ietf.org

    https://secure-web.cisco.com/10mX5xspvc-CplH__kACOPD_MQa73oefUXn9viMqhxjrTvYuTo_t-S7CGnbci1ilq715uayoGpxBTFESCwtUSSzWUMi78Nv4FQfkTsB1MOO6UUM97ePFhV7zZJEmk0lKjItjm799a9SMSdp5Q0Hyfp_sGJDmES9vAI2uRMDbROH-cUeV8EeTbe8nLywXjQOndYdYzCrOCALfOj0sozHZ73hC-GtqysPlWX6PS1P6nVkxuMsRCuAcDcLzDFU0kTTKX/https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fregext