<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-acme-authority-token-jwtclaimcon-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ACME JWTClaimConstraints Auth Token">JWTClaimConstraints profile of ACME Authority Token</title>

    <author initials="C." surname="Wendt" fullname="Chris Wendt">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>chris@appliedbits.com</email>
      </address>
    </author>
    <author initials="D." surname="Hancock" fullname="David Hancock">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>davidhancock.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="September" day="11"/>

    <area>sec</area>
    
    <keyword>acme, STIR</keyword>

    <abstract>


<?line 45?>

<t>This document defines an authority token profile for the validation of JWTClaimConstraints and EnhancedJWTClaimConstraints certificate extensions within the Automated Certificate Management Environment (ACME) protocol. This profile is based on the Authority Token framework and establishes the specific ACME identifier type, challenge mechanism, and token format necessary to authorize a client to request a certificate containing these constraints.</t>



    </abstract>



  </front>

  <middle>


<?line 49?>

<section anchor="introduction"><name>Introduction</name>

<t>The validation of certificate extensions that constrain the use of a certificate's credentials, such as the JWTClaimConstraints extension defined in <xref target="RFC8226"/> and the EnhancedJWTClaimConstraints extension defined in <xref target="RFC9118"/>, is critical for defining the scope of an issued certificate. This document specifies an authority token profile for validating these constraints, modeled after the authority token framework established in <xref target="RFC9447"/> and the TNAuthList validation defined in <xref target="RFC9448"/>.</t>

<t>This profile facilitates proper delegation and authorization for entities requesting certificates under ACME. It defines the use of the JWTClaimConstraints Authority Token in the ACME challenge to prove an authoritative or trusted use of the contents of the JWTClaimConstraints and EnhancedJWTClaimConstraints extensions based on the issuer of the token.</t>

<t>This document is intended for use by Secure Telephone Identity (STI) Certification Authorities. In this ecosystem, certificates contain telephone-number-related (TNAuthList) extensions and JWTClaimConstraints extensions defined in <xref target="RFC8226"/> and <xref target="RFC9118"/>, and certificate issuance is governed by a set of STI-specific Token Authorities. The TNAuthList Authority Token profile (<xref target="RFC9448"/>) is the parallel specification for telephone number authorization in this ecosystem and is already widely deployed. This document follows the same pattern to address authorization of the JWTClaimConstraints and EnhancedJWTClaimConstraints extensions. ACME implementers unfamiliar with the STIR ecosystem can treat the validation of the JWTClaimConstraints token value as a domain-specific authorization step analogous to TNAuthList validation: the ACME wire protocol mechanics are identical, and the Token Authority is responsible for the domain-specific semantic validation described in <xref target="RFC8226"/> and <xref target="RFC9118"/>.</t>

<t>The normative requirements of this document apply to implementers of ACME clients and ACME servers: the new-order identifier type (<xref target="identifier-encoding"/>), the challenge and Authority Token exchange, the Authority Token structure, and the server-side validation rules in <xref target="validating-token"/>. To an ACME client or server, the JWTClaimConstraints value carried in the identifier and in the token's "tkvalue" is an opaque octet string that is transported, compared octet-by-octet, and never parsed. The internal structure of that value, and the rules governing what a Token Authority may place in it, are a STIR ecosystem concern governed by <xref target="RFC8226"/> and <xref target="RFC9118"/>; that material appears in this document (for example, in <xref target="jcc-scope"/> and <xref target="appendix-examples"/>) as informative background for implementers of Token Authorities, and is not needed to implement the ACME client or ACME server role.</t>

<t>This document also discusses the ability for an authority to authorize the creation of CA types of certificates for delegation as defined in <xref target="RFC9060"/>.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="identifier-encoding"><name>ACME new-order Identifiers for JWTClaimConstraints</name>

<t>In <xref target="RFC8555"/>, Section 7 defines the procedure that an ACME client uses to order a new certificate from a Certification Authority (CA). This draft defines a new type of identifier object called JWTClaimConstraints. A JWTClaimConstraints identifier contains the Token Claim Constraints information to be populated in the JWTClaimConstraints or EnhancedJWTClaimConstraints of the new certificate.</t>

<t>For the JWTClaimConstraints identifier, the new-order request includes a type set to the string "JWTClaimConstraints". The value of the JWTClaimConstraints identifier MUST be set to the details of the JWTClaimConstraints or EnhancedJWTClaimConstraints extension requested.</t>

<t>The format of the string that represents the JWTClaimConstraints MUST be constructed using base64url encoding, as per <xref target="RFC8555"/> base64url encoding described in Section 5 of <xref target="RFC4648"/> according to the profile specified in JSON Web Signature in Section 2 of <xref target="RFC7515"/>. The base64url encoding MUST NOT include any padding characters and the JWTClaimConstraints ASN.1 object MUST be encoded using DER encoding rules. DER (the canonical subset of BER) and unpadded base64url together uniquely determine the octet sequence for a given JWTClaimConstraints or EnhancedJWTClaimConstraints ASN.1 value. The same canonical encoding is used as the "tkvalue" string in the "atc" claim of the corresponding Authority Token, so that the value carried in the new-order identifier and the value carried in the token are octet-by-octet identical and can be compared as described in <xref target="validating-token"/>, step 5.</t>

<t>An example of an ACME order object "identifiers" field containing a JWTClaimConstraints certificate:</t>

<figure><artwork><![CDATA[
 "identifiers": [{"type":"JWTClaimConstraints",
   "value":"F83n2a...avn27DN3"}]
]]></artwork></figure>

<t>where the "value" object string represents the arbitrary length base64url encoded string.</t>

<t>A full new-order request would look as follows,</t>

<figure><artwork><![CDATA[
POST /acme/new-order HTTP/1.1
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "5XJ1L3lEkMG7tR6pA00clA",
    "url": "https://example.com/acme/new-order"
  }),
  "payload": base64url({
    "identifiers": [{"type":"JWTClaimConstraints",
      "value":"F83n...n27DN3"}],
    "notBefore": "2025-01-01T00:00:00Z",
    "notAfter": "2025-01-08T00:00:00Z"
  }),
  "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
}
]]></artwork></figure>

<t>On receiving a valid new-order request, the ACME server creates an authorization object, <xref target="RFC8555"/> Section 7.1.4, containing the challenge that the ACME client must satisfy to demonstrate authority for the identifiers specified by the new order (in this case, the JWTClaimConstraints identifier). The CA adds the authorization object URL to the "authorizations" field of the order object, and returns the order object to the ACME client in the body of a 201 (Created) response.</t>

<figure><artwork><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json
Replay-Nonce: MYAuvOpaoIiywTezizk5vw
Location: https://example.com/acme/order/1234

{
  "status": "pending",
  "expires": "2025-01-08T00:00:00Z",

  "notBefore": "2025-01-01T00:00:00Z",
  "notAfter": "2025-01-08T00:00:00Z",
  "identifiers": [
    {"type": "JWTClaimConstraints",
     "value": "F83n2a...avn27DN3"}
  ],

  "authorizations": [
   "https://example.com/acme/authz/1234"
  ],
  "finalize": "https://example.com/acme/order/1234/finalize"
}
]]></artwork></figure>

</section>
<section anchor="jwtclaimconstraints-authorization"><name>JWTClaimConstraints Authorization</name>

<t>On receiving the new-order response, the ACME client queries the referenced authorization object to obtain the challenges for the identifier contained in the new-order request.</t>

<figure><artwork><![CDATA[
POST /acme/authz/1234 HTTP/1.1
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "uQpSjlRb4vQVCjVYAyyUWg",
    "url": "https://example.com/acme/authz/1234"
  }),
  "payload": "",
  "signature": "nuSDISbWG8mMgE7H...QyVUL68yzf3Zawps"
}
]]></artwork></figure>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Link: <https://example.com/acme/some-directory>;rel="index"

{
  "status": "pending",
  "expires": "2025-01-08T00:00:00Z",

  "identifier": {
    "type": "JWTClaimConstraints",
    "value": "F83n2a...avn27DN3"
  },

  "challenges": [
    {
      "type": "tkauth-01",
      "tkauth-type": "atc",
      "token-authority": "https://authority.example.org",
      "url": "https://example.com/acme/chall/prV_B7yEyA4",
      "status": "pending",
      "token": "IlirfxKKXAsHtmzK29Pj8A"
    }
  ]
}
]]></artwork></figure>

<t>When processing a certificate order containing an identifier of type "JWTClaimConstraints", a CA uses the Authority Token challenge type of "tkauth-01" with a "tkauth-type" of "atc", defined in <xref target="RFC9447"/>, to verify that the requesting ACME client has authenticated and authorized control over the requested resources represented by the "JWTClaimConstraints" value.</t>

<t>The challenge "token-authority" parameter is OPTIONAL. If a "token-authority" parameter is present, the ACME client MAY use this value to identify the URL representing the Token Authority that will provide the JWTClaimConstraints Authority Token response to the challenge. If the "token-authority" parameter is not present, the ACME client is expected to have been configured out of band with the location of the Token Authority. The "token-authority" parameter is advisory to the ACME client; the ACME server does not use it when validating the challenge response (<xref target="validating-token"/>), where trust in the token is established through the issuer certificate referenced by the token's "x5u" or "x5c" header parameter.</t>

<t>The ACME client responds to the challenge by posting the JWTClaimConstraints Authority Token to the challenge URL identified in the returned ACME authorization object.</t>

<figure><artwork><![CDATA[
POST /acme/chall/prV_B7yEyA4 HTTP/1.1
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "Q_s3MWoqT05TrdkM2MTDcw",
    "url": "https://example.com/acme/chall/prV_B7yEyA4"
  }),
  "payload": base64url({
    "tkauth": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"
  }),
  "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ"
}
]]></artwork></figure>

<t>The "tkauth" field in the challenge response object is specific to the tkauth-01 challenge type. When responding to a challenge for a JWTClaimConstraints identifier, this field SHALL contain the JWTClaimConstraints Authority Token defined in the next section.</t>

</section>
<section anchor="jwtclaimconstraints-authority-token"><name>JWTClaimConstraints Authority Token</name>

<t>The JWTClaimConstraints Authority Token is a profile instance of the ACME Authority Token defined in <xref target="RFC9447"/>. This section defines the structure of the token (its data model); the rules an ACME server applies to validate it are specified in <xref target="validating-token"/>.</t>

<t>The JWTClaimConstraints Authority Token Protected header MUST comply with the Authority Token Protected header as defined in <xref target="RFC9447"/>.</t>

<section anchor="jwtclaimconstraints-authority-token-payload"><name>JWTClaimConstraints Authority Token Payload</name>

<t>The JWTClaimConstraints Authority Token Payload MUST include the mandatory claims "exp", "jti", and "atc", and MAY include the optional claims defined for the Authority Token.</t>

<section anchor="iss-claim"><name>"iss" claim</name>

<t>The "iss" claim is an optional claim defined in <xref target="RFC7519"/> Section 4.1.1.  It can be used as a URL identifying the Token Authority that issued the JWTClaimConstraints Authority Token beyond the "x5u" or other Header claims that identify the location of the certificate or certificate chain of the Token Authority used to validate the JWTClaimConstraints Authority Token.</t>

</section>
<section anchor="exp-claim"><name>"exp" claim</name>

<t>The "exp" claim, defined in <xref target="RFC7519"/> Section 4.1.4, MUST be included and contains the DateTime value of the ending date and time that the JWTClaimConstraints Authority Token expires.</t>

</section>
<section anchor="jti-claim"><name>"jti" claim</name>

<t>The "jti" claim, defined in <xref target="RFC7519"/> Section 4.1.7, MUST be included and contains a unique identifier for this JWTClaimConstraints Authority Token transaction.</t>

</section>
<section anchor="atc-claim"><name>"atc" claim</name>

<t>The "atc" claim MUST be included and is defined in <xref target="RFC9447"/>. It contains a JSON object with the following elements:</t>

<t><list style="symbols">
  <t>a "tktype" key with a string value equal to "JWTClaimConstraints" to represent a JWTClaimConstraints profile of the authority token <xref target="RFC9447"/> defined by this document. "tktype" is a required key and MUST be included.</t>
  <t>a "tkvalue" key with a string value equal to the base64url encoding of the JWTClaimConstraints or EnhancedJWTClaimConstraints certificate extension ASN.1 object using DER encoding rules. "tkvalue" is a required key and MUST be included.</t>
  <t>a "ca" key with a boolean value set to false (since the JWTClaimConstraints extension is applicable only to end-entity certificates). "ca" is an optional key; if not included, the "ca" value is considered false by default.</t>
  <t>a "fingerprint" key is constructed as defined in <xref target="RFC8555"/> Section 8.1 corresponding to the computation of the fingerprint step using the ACME account key credentials. "fingerprint" is a required key and MUST be included.</t>
</list></t>

<t>An example of the JWTClaimConstraints Authority Token is as follows:</t>

<figure><artwork><![CDATA[
{
  "protected": base64url({
    "typ": "JWT",
    "alg": "ES256",
    "x5u": "https://authority.example.org/cert"
  }),
  "payload": base64url({
    "iss": "https://authority.example.org",
    "exp": 1640995200,
    "jti": "id6098364921",
    "atc": {
      "tktype": "JWTClaimConstraints",
      "tkvalue": "F83n2a...avn27DN3",
      "ca": false,
      "fingerprint": "SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:
       D3:BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"
    }
  }),
  "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ"
}
]]></artwork></figure>

</section>
</section>
<section anchor="acquiring-the-token-from-the-token-authority"><name>Acquiring the token from the Token Authority</name>

<t>Following <xref target="RFC9447"/> Section 5, the authority token should be acquired using a RESTful HTTP POST transaction as follows:</t>

<figure><artwork><![CDATA[
POST /at/account/:id/token HTTP/1.1
Host: authority.example.org
Content-Type: application/json
]]></artwork></figure>

<t>The request will pass the account id as a string in the request parameter "id". Note that this account identifier refers to the ACME client's account with the Token Authority, and is distinct from the ACME account used with the CA. There is assumed to be a corresponding authentication procedure that can be verified for the success of this transaction, for example, an HTTP Authorization header field containing valid authorization credentials as defined in <xref target="RFC7231"/> Section 14.8.</t>

<t>The body of the POST request MUST contain a JSON object with key value pairs corresponding to values that are requested as the content of the claims in the issued token.</t>

<t>As an example, the body SHOULD contain a JSON object as follows:</t>

<figure><artwork><![CDATA[
{
  "atc": {
    "tktype": "JWTClaimConstraints",
    "tkvalue": "F83n2a...avn27DN3",
    "ca": false,
    "fingerprint": "SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:D3
      :BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"
  }
}
]]></artwork></figure>

<t>The response to the POST request if successful returns a 200 OK with a JSON body that contains, at a minimum, the JWTClaimConstraints Authority Token as a JSON object with a key of "token" and the base64url encoded string representing the atc token. JSON is easily extensible, so users of this specification may want to pass other pieces of information relevant to a specific application.</t>

<t>An example successful response would be as follows:</t>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"}
]]></artwork></figure>

<t>The ACME client then uses the value of the "token" field as the "tkauth" field in the challenge response POST to the ACME challenge URL, as described in Section 4.</t>

<t>If the request is not successful, the response should indicate the error condition. Specifically, for the case that the authorization credentials are invalid or if the Account ID provided does not exist, the response code MUST be 403 - Forbidden. Other 4xx and 5xx responses MUST follow standard <xref target="RFC7231"/> HTTP error condition conventions.</t>

</section>
<section anchor="token-authority-responsibilities"><name>Token Authority Responsibilities</name>

<t>When creating the JWTClaimConstraints Authority Token, the Token Authority MUST validate that the information contained in the ASN.1 JWTClaimConstraints accurately represents the corresponding JWTClaimConstraint resources the requesting party is authorized to represent based on their pre-established and verified secure relationship between the Token Authority and the requesting party.</t>

<t>The fingerprint in the token request is not meant to be verified by the Token Authority. Rather, it is meant to be signed as part of the token so that the party that requests the token can, as part of the challenge response, allow the ACME server to validate that the token requested and used came from the same party that controls the ACME client.</t>

</section>
<section anchor="jcc-scope"><name>Scope of the JWTClaimConstraints</name>

<t>Because this specification involves the JWTClaimConstraints and EnhancedJWTClaimConstraints extensions, the client MAY request an Authority Token with some subset of its own authority as the JWTClaimConstraints provided in the "tkvalue" element of the "atc" JSON object. These extensions define a limited scope of the claims and claim values the client is authorized to assert in PASSporTs signed with the resulting certificate, using the following components:</t>

<t><list style="symbols">
  <t>mustInclude (context tag [0], <xref target="RFC8226"/>) is a list of claim names that MUST be present.</t>
  <t>permittedValues (context tag [1], <xref target="RFC8226"/>) is a list of claim names, each paired with the set of values that claim is permitted to take.</t>
  <t>mustExclude (context tag [2], <xref target="RFC9118"/>) is a list of claim names that MUST NOT be present. This component is only available in the EnhancedJWTClaimConstraints extension, so the enhanced form is needed only when the optional ("extended") claims must be constrained; otherwise the JWTClaimConstraints extension of <xref target="RFC8226"/> is sufficient.</t>
</list></t>

<t>The Token Authority validates the requested JWTClaimConstraints or EnhancedJWTClaimConstraints value against the resources the requesting party is authorized to represent (see Section 5.3) and places that value in the token. The ACME server then compares the token value to the new-order identifier value octet-by-octet (<xref target="validating-token"/>, step 5) and does not parse or interpret the ASN.1 content.</t>

<t>Informative examples are provided in <xref target="appendix-examples"/>.</t>

</section>
<section anchor="acme-challenges-requiring-multiple-authority-tokens"><name>ACME Challenges requiring multiple Authority Tokens</name>

<t>The ACME new-order request can include multiple identifiers, each of which is authorized separately. With the introduction of this specification, for STIR certificates <xref target="RFC8226"/>, a certificate order can require two Authority Token identifier types:</t>

<t><list style="symbols">
  <t>The JWTClaimConstraints identifier defined in this document, and</t>
  <t>The TNAuthList identifier defined in <xref target="RFC9448"/>.</t>
</list></t>

<t>Other Authority Token types can be introduced in future Authority Token profile specifications with similar requirements.</t>

<t>This section describes scenarios where a new-order request contains both of these identifier types. In such cases, the CA requires the ACME client to provide both a JWTClaimConstraints Authority Token and a TNAuthList Authority Token as part of the challenge response.</t>

<t>The TNAuthList Authority Token authorizes the token holder to obtain certificates containing a TNAuthList extension whose scope is less than or equal to the scope of the TNAuthList identifier in the token.</t>

<t>The JWTClaimConstraints Authority Token authorizes the token holder to obtain a certificate containing a JWTClaimConstraints or EnhancedJWTClaimConstraints extension, provided that the extension is within the scope of the JWTClaimConstraints identifier in the token. Since these two certificate extensions constrain the resources and claims available to the certificate, there is an inherent interaction between these two types of Authority Tokens.</t>

<t>The "value" field of the JWTClaimConstraints identifier, and the corresponding "tkvalue" in the "atc" claim, is a base64url-encoded DER representation of a JWTClaimConstraints or EnhancedJWTClaimConstraints ASN.1 object as defined in <xref target="RFC8226"/> and <xref target="RFC9118"/>. From the ACME server's perspective this value is opaque: validation step 5 in <xref target="validating-token"/> requires only that the value in the token is octet-by-octet identical to the value in the order. The semantic content of the extension — which claims are permitted or excluded, and for which telephone numbers — is a STIR ecosystem concern governed by <xref target="RFC8226"/> and <xref target="RFC9118"/>, and is validated by the Token Authority prior to token issuance (see Section 5.3). In particular, the ACME server does not parse or cross-check the JWTClaimConstraints and TNAuthList extensions for mutual consistency: if a requested JWTClaimConstraints value constrains a claim such as "orig" to telephone numbers that are inconsistent with the certificate's TNAuthList, no PASSporT can satisfy both constraints during verification (governed by <xref target="RFC8226"/> and <xref target="RFC9118"/>), so such a certificate fails verification for all calls. The ACME account holder that submits the CSR is responsible for recognizing this potential conflict and for requesting TNAuthList and JWTClaimConstraints extensions that are mutually compatible and correctly authorized; this places authority and accountability for the certificate's contents with the requesting party, which is a desirable security property. Informative examples of JWTClaimConstraints ASN.1 structures, their DER encodings, and corresponding base64url values are provided in <xref target="appendix-examples"/>.</t>

<section anchor="acme-procedures-when-challenge-requires-two-authority-tokens"><name>ACME Procedures when Challenge requires two Authority Tokens</name>

<t>Sections 3 and 4 describe the ACME procedures for issuing a certificate based on a single JWTClaimConstraints identifier. This section describes how these procedures are modified to support the case where the new-order request contains both a TNAuthList and JWTClaimConstraints identifier. A new-order request contains at most one JWTClaimConstraints identifier and at most one TNAuthList identifier.</t>

<t>First, the "identifiers" field in the new-order request includes both identifier types:</t>

<figure><artwork><![CDATA[
     "identifiers": [
     {"type": "TNAuthList",
      "value": "KHn6xf...jw4A1vgh"},
     {"type": "JWTClaimConstraints",
      "value": "F83n2a...avn27DN3"}]
]]></artwork></figure>

<t>The CA includes two "authorizations" URLs in the 201 (Created) response to the new-order request, one for each identifier:</t>

<figure><artwork><![CDATA[
     "authorizations": [
        "https://example.com/acme/authz/1234",
        "https://example.com/acme/authz/5678"]
]]></artwork></figure>

<t>The ACME client then queries each "authorizations" URL as shown in Section 4. The CA returns the Authority Token challenge for each identifier. The ACME client responds to each challenge by providing an Authority Token of the appropriate type.</t>

</section>
</section>
</section>
<section anchor="validating-token"><name>Validating the JWTClaimConstraints Authority Token</name>

<t>Upon receiving a response to the challenge, the ACME server MUST perform the following steps to determine the validity of the response. Steps 1 through 3 and steps 6 through 8 are general STIR Authority Token validation steps, applicable to any STIR Authority Token profile and mirroring the TNAuthList validation defined in <xref target="RFC9448"/>. Steps 4 and 5 are specific to the JWTClaimConstraints profile. The semantic validation of whether the JWTClaimConstraints or EnhancedJWTClaimConstraints content accurately reflects the requesting party's authorized resources is the responsibility of the Token Authority prior to issuing the token (see Section 5.3), and is governed by <xref target="RFC8226"/> and <xref target="RFC9118"/>.</t>

<t><list style="numbers" type="1">
  <t>Verify that the value of the "atc" claim is a well-formed JSON object containing the mandatory key values ("tktype", "tkvalue", "fingerprint").</t>
  <t>Verify Token Issuer: The certificate referenced by the token's "x5u" or "x5c" header parameter MUST represent a Token Authority that the ACME server is configured to trust as an issuer of Authority Tokens for the ecosystem. <xref target="RFC9447"/> assumes a preexisting trust relationship between the CA and the Token Authority; the specific trust anchors, and any ecosystem-specific requirements on the Token Authority certificate, are established by the deploying ecosystem (for example, the STIR governance framework) and are out of scope for this document. If an "x5u" parameter is present, verify that it is an HTTPS URL referencing such a certificate. If an "x5c" parameter is present, verify that the certificate array contains such a certificate. If neither "x5u" nor "x5c" is present, or the referenced certificate is not one the ACME server trusts as an Authority Token issuer for the ecosystem, this step MUST fail.</t>
  <t>Verify Signature: Verify the JWTClaimConstraints Authority Token signature using the public key of the certificate referenced by the token's "x5u" or "x5c" parameter.</t>
  <t>Verify Token Type: Verify that the "atc" claim contains a "tktype" identifier with the value "JWTClaimConstraints".</t>
  <t>Verify Constraints Match: Verify that the value of the "atc" claim "tkvalue" is octet-by-octet identical to the "value" of the JWTClaimConstraints identifier in the original new-order request. Both values are the canonical encoding defined in <xref target="identifier-encoding"/>: the base64url encoding (without padding) of the DER encoding of a JWTClaimConstraints or EnhancedJWTClaimConstraints ASN.1 object. The ACME server MUST perform this verification as a direct octet-by-octet comparison of the two base64url strings, and MUST NOT decode, re-encode, canonicalize, normalize, or otherwise transform either value before comparison. If either value contains characters outside the base64url alphabet defined in Section 5 of <xref target="RFC4648"/>, contains padding characters ("="), or differs from the other in any octet, this step MUST fail. See <xref target="security_considerations"/> for discussion of identifier comparison considerations.</t>
  <t>Verify Claims: Verify that the "exp" claim is present and that the token has not expired relative to the ACME server's current time; the ACME server MAY allow for a small amount of clock skew according to local policy. Verify that the "jti" claim is present. If the "exp" claim is absent, the token has expired, or the "jti" claim is absent, this step MUST fail.</t>
  <t>Verify Account Control: Verify that the "atc" claim "fingerprint" is valid and matches the ACME account key (<xref target="RFC8555"/>) of the client making the request.</t>
  <t>Verify CA Flag: Verify that the "atc" claim "ca" identifier boolean corresponds to the CA boolean in the Basic Constraints extension in the Certificate Signing Request (CSR) for either a CA certificate or an end-entity certificate.</t>
</list></t>

<t>If all steps in the token validation process pass, then the ACME server MUST set the challenge object "status" to "valid". If any step of the validation process fails, the ACME server MUST set the "status" in the challenge object to "invalid" and SHOULD include an "error" field containing a problem document (<xref target="RFC8555"/>, Section 6.7); the "urn:ietf:params:acme:error:unauthorized" error type is generally appropriate. The ACME client then handles the failed authorization as described in <xref target="RFC8555"/>.</t>

</section>
<section anchor="using-acme-issued-certificates-with-json-web-signature"><name>Using ACME-issued Certificates with JSON Web Signature</name>

<t>JSON Web Signature (JWS) objects can include an "x5u" header parameter to refer to a certificate for signature validation. In order to support this usage, the Certificate Authority (CA) MAY host the newly issued certificate and provide a URL that the ACME client owner can directly reference in the "x5u" header parameter of their signed JWS objects.</t>

<t>To facilitate this, the CA MAY add a newly defined field called "x5u" to the 200 (OK) order object response when the certificate is ready for the finalize request:</t>

<t>x5u (optional, string): A URL that can be used to reference the certificate in the "x5u" parameter of a JWS object. The CA SHOULD ensure that this URL remains retrievable for as long as relying parties may need the certificate to validate signatures on JWS objects that reference it, typically at least until the certificate expires.</t>

<t>An example of a 200 (OK) response containing the new "x5u" field:</t>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X
Link: <https://example.com/acme/directory>;rel="index"
Location: https://example.com/acme/order/TOlocE8rfgo

{
  "status": "valid",
  "expires": "2016-01-20T14:09:07.99Z",

  "notBefore": "2016-01-01T00:00:00Z",
  "notAfter": "2016-01-08T00:00:00Z",

  "identifiers": [
    {"type": "JWTClaimConstraints",
     "value": "F83n2a...avn27DN3"}
  ],

  "authorizations": ["https://example.com/acme/authz/1234"],

  "finalize": "https://example.com/acme/order/TOlocE8rfgo/finalize",

  "certificate": "https://example.com/acme/cert/mAt3xBGaobw",

  "x5u": "https://example.com/cert-repo/giJI53km23.pem"
}
]]></artwork></figure>

</section>
<section anchor="security_considerations"><name>Security Considerations</name>

<t>The token represented by this document has the credentials to represent JWTClaimConstraints and EnhancedJWTClaimConstraints, which constrain the resources and claims a certificate holder can assert. This token carries credentials that constrain the resources and claims a certificate holder can assert, so its disclosure to a bad actor could enable impersonation or misuse of the constrained resources. The token MUST be transported using the encrypted transport already required by this document, and implementations SHOULD follow the JWT best current practices in <xref target="RFC8725"/> and the security considerations of <xref target="RFC9447"/> for its creation, handling, and storage.</t>

<t>This document inherits the security properties of <xref target="RFC9447"/>. Implementations SHOULD follow the best practices identified in <xref target="RFC8725"/> for cryptographic security.</t>

<t>This document only specifies SHA256 for the fingerprint hash. However, the syntax of the fingerprint object would permit other algorithms if, due to concerns about algorithmic agility, a more robust algorithm were required at a future time. Future specifications CAN define new algorithms for the fingerprint object as needed.</t>

<section anchor="identifier-comparison-considerations"><name>Identifier Comparison Considerations</name>

<t>The "value" field of the JWTClaimConstraints identifier and the "tkvalue" string in the "atc" claim are opaque identifiers from the ACME server's perspective. <xref target="RFC6943"/> describes a class of vulnerabilities that arises when implementations apply ad hoc normalization, decoding, or "equivalence" judgments to identifier values during comparison: differences between what an implementation considers equivalent and what an attacker can produce can be turned into authorization bypasses. To eliminate this class of vulnerability for this profile, this document requires that both values be produced in a single canonical form (DER under unpadded base64url, as specified in <xref target="identifier-encoding"/>) and that the ACME server's comparison in <xref target="validating-token"/>, step 5, be a direct octet-by-octet comparison with no intervening transformation. Implementations MUST NOT be permissive about variations such as padded base64url, alternate base64url alphabets, BER encodings that are not also valid DER, embedded whitespace, or differences in canonical ordering inside ASN.1 SET constructs (DER fixes the ordering). Any deviation from the canonical form yields a different identifier value, and the validation step MUST fail.</t>

<t>Implementations SHOULD perform the octet-by-octet comparison in constant time. While the values compared in this profile are not themselves secret, constant-time comparison removes a class of timing side channels that have caused issues in other identifier-comparison contexts.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests the addition of a new identifier object type to the "ACME Identifier Types" registry defined in Section 9.7.7 of <xref target="RFC8555"/>.</t>

<figure><artwork><![CDATA[
+---------------------+-----------+
|        Label        | Reference |
+---------------------+-----------+
| JWTClaimConstraints |  RFCThis  |
+---------------------+-----------+
]]></artwork></figure>

<t>This document also registers the "tkauth-01" validation method for use with the "JWTClaimConstraints" identifier type in the "ACME Validation Methods" registry defined in Section 9.7.8 of <xref target="RFC8555"/>. This registration is required by Section 3 of <xref target="RFC9447"/>, which specifies that use of the "tkauth-01" validation method with an ACME identifier type other than "TNAuthList" requires a new registration in that registry.</t>

<figure><artwork><![CDATA[
+-----------+---------------------+------+-----------+
|   Label   |   Identifier Type   | ACME | Reference |
+-----------+---------------------+------+-----------+
| tkauth-01 | JWTClaimConstraints |  Y   |  RFCThis  |
+-----------+---------------------+------+-----------+
]]></artwork></figure>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>We would like to thank ACME and STIR working groups for valuable contributions to the authority token framework used in this document.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>
<reference anchor="RFC7231">
  <front>
    <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7231"/>
  <seriesInfo name="DOI" value="10.17487/RFC7231"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC8226">
  <front>
    <title>Secure Telephone Identity Credentials: Certificates</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>In order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8226"/>
  <seriesInfo name="DOI" value="10.17487/RFC8226"/>
</reference>
<reference anchor="RFC8555">
  <front>
    <title>Automatic Certificate Management Environment (ACME)</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
    <author fullname="D. McCarney" initials="D." surname="McCarney"/>
    <author fullname="J. Kasten" initials="J." surname="Kasten"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8555"/>
  <seriesInfo name="DOI" value="10.17487/RFC8555"/>
</reference>
<reference anchor="RFC9118">
  <front>
    <title>Enhanced JSON Web Token (JWT) Claim Constraints for Secure Telephone Identity Revisited (STIR) Certificates</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="August" year="2021"/>
    <abstract>
      <t>RFC 8226 specifies the use of certificates for Secure Telephone Identity Credentials; these certificates are often called "Secure Telephone Identity Revisited (STIR) Certificates". RFC 8226 provides a certificate extension to constrain the JSON Web Token (JWT) claims that can be included in the Personal Assertion Token (PASSporT), as defined in RFC 8225. If the PASSporT signer includes a JWT claim outside the constraint boundaries, then the PASSporT recipient will reject the entire PASSporT. This document updates RFC 8226; it provides all of the capabilities available in the original certificate extension as well as an additional way to constrain the allowable JWT claims. The enhanced extension can also provide a list of claims that are not allowed to be included in the PASSporT.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9118"/>
  <seriesInfo name="DOI" value="10.17487/RFC9118"/>
</reference>
<reference anchor="RFC9447">
  <front>
    <title>Automated Certificate Management Environment (ACME) Challenges Using an Authority Token</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="M. Barnes" initials="M." surname="Barnes"/>
    <author fullname="D. Hancock" initials="D." surname="Hancock"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>Some proposed extensions to the Automated Certificate Management Environment (ACME) rely on proving eligibility for certificates through consulting an external authority that issues a token according to a particular policy. This document specifies a generic Authority Token Challenge for ACME that supports subtype claims for different identifiers or namespaces that can be defined separately for specific applications.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9447"/>
  <seriesInfo name="DOI" value="10.17487/RFC9447"/>
</reference>
<reference anchor="RFC9448">
  <front>
    <title>TNAuthList Profile of Automated Certificate Management Environment (ACME) Authority Token</title>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <author fullname="D. Hancock" initials="D." surname="Hancock"/>
    <author fullname="M. Barnes" initials="M." surname="Barnes"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document defines a profile of the Automated Certificate Management Environment (ACME) Authority Token for the automated and authorized creation of certificates for Voice over IP (VoIP) telephone providers to support Secure Telephone Identity (STI) using the TNAuthList defined by STI certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9448"/>
  <seriesInfo name="DOI" value="10.17487/RFC9448"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6943">
  <front>
    <title>Issues in Identifier Comparison for Security Purposes</title>
    <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
    <date month="May" year="2013"/>
    <abstract>
      <t>Identifiers such as hostnames, URIs, IP addresses, and email addresses are often used in security contexts to identify security principals and resources. In such contexts, an identifier presented via some protocol is often compared using some policy to make security decisions such as whether the security principal may access the resource, what level of authentication or encryption is required, etc. If the parties involved in a security decision use different algorithms to compare identifiers, then failure scenarios ranging from denial of service to elevation of privilege can result. This document provides a discussion of these issues that designers should consider when defining identifiers and protocols, and when constructing architectures that use multiple protocols.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6943"/>
  <seriesInfo name="DOI" value="10.17487/RFC6943"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>
<reference anchor="RFC9060">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2021"/>
    <abstract>
      <t>The Secure Telephone Identity Revisited (STIR) certificate profile provides a way to attest authority over telephone numbers and related identifiers for the purpose of preventing telephone number spoofing. This specification details how that authority can be delegated from a parent certificate to a subordinate certificate. This supports a number of use cases, including those where service providers grant credentials to enterprises or other customers capable of signing calls with STIR.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9060"/>
  <seriesInfo name="DOI" value="10.17487/RFC9060"/>
</reference>



    </references>

</references>


<?line 461?>

<section anchor="appendix-examples"><name>JWTClaimConstraints Identifier Value Examples</name>

<t>This appendix provides informative examples of JWTClaimConstraints and EnhancedJWTClaimConstraints ASN.1 structures as defined in <xref target="RFC8226"/> and <xref target="RFC9118"/>, along with their DER encodings and base64url values as used in the ACME identifier "value" field and the "tkvalue" of the "atc" claim. These examples are intended for implementers of STI Token Authorities and certificate requestors in the STIR ecosystem. ACME server implementations treat the identifier value as opaque and are not required to parse or validate its internal structure.</t>

<t>Note: single-quote delimiters in the ASN.1 notation below denote string values; inner double quotes are part of the JSON-formatted claim values as defined in <xref target="RFC8226"/>.</t>

<section anchor="no-extended-claims-authorized"><name>No Extended Claims Authorized</name>

<t>In this case, the requestor is authorized to use a set of telephone numbers but no optional claim information. The EnhancedJWTClaimConstraints extension uses a mustExclude constraint to prohibit all optional claims relevant to the application.</t>

<figure><artwork><![CDATA[
SEQUENCE {
  mustExclude [2] {
    SEQUENCE {
      IA5String 'attest'
      IA5String 'origid'
      IA5String 'div'
      IA5String 'rph'
      IA5String 'sph'
      IA5String 'rcd'
      IA5String 'rcdi'
      IA5String 'crn'
      }
    }
  }
]]></artwork></figure>

<t>DER encoding (53 bytes, hex):</t>

<figure><artwork><![CDATA[
30 33 a2 31 30 2f 16 06 61 74 74 65 73 74 16 06
6f 72 69 67 69 64 16 03 64 69 76 16 03 72 70 68
16 03 73 70 68 16 03 72 63 64 16 04 72 63 64 69
16 03 63 72 6e
]]></artwork></figure>

<t>base64url value:</t>

<figure><artwork><![CDATA[
MDOiMTAvFgZhdHRlc3QWBm9yaWdpZBYDZGl2FgNycGgWA3NwaBYDcmNkFgRyY2Rp
FgNjcm4
]]></artwork></figure>

<t>A simpler alternative for requestors not authorized to include optional claims is to submit a new-order request containing only a TNAuthList identifier. In this case, the absence of a JWTClaimConstraints identifier MAY trigger local policy in the CA to include a restrictive EnhancedJWTClaimConstraints extension in the issued certificate.</t>

</section>
<section anchor="extended-claims-authorized-uniform-constraints"><name>Extended Claims Authorized (Uniform Constraints)</name>

<t>In this case, the requestor is authorized to assert a specific set of claim information that applies uniformly across all authorized telephone numbers. The extension uses a permittedValues constraint for the authorized claims and a mustExclude constraint for the remainder.</t>

<figure><artwork><![CDATA[
SEQUENCE {
  permittedValues [1] {
    SEQUENCE {
      SEQUENCE {
        IA5String 'rcd'
        SEQUENCE {
          UTF8String '"nam": "James Bond"'
          }
        }
      SEQUENCE {
        IA5String 'crn'
        SEQUENCE {
          UTF8String '"For your ears only"'
          }
        }
      }
    }
  mustExclude [2] {
    SEQUENCE {
      IA5String 'attest'
      IA5String 'origid'
      IA5String 'div'
      IA5String 'rph'
      IA5String 'sph'
      IA5String 'rcdi'
      }
    }
  }
]]></artwork></figure>

<t>DER encoding (108 bytes, hex):</t>

<figure><artwork><![CDATA[
30 6a a1 3f 30 3d 30 1c 16 03 72 63 64 30 15 0c
13 22 6e 61 6d 22 3a 20 22 4a 61 6d 65 73 20 42
6f 6e 64 22 30 1d 16 03 63 72 6e 30 16 0c 14 22
46 6f 72 20 79 6f 75 72 20 65 61 72 73 20 6f 6e
6c 79 22 a2 27 30 25 16 06 61 74 74 65 73 74 16
06 6f 72 69 67 69 64 16 03 64 69 76 16 03 72 70
68 16 03 73 70 68 16 04 72 63 64 69
]]></artwork></figure>

<t>base64url value:</t>

<figure><artwork><![CDATA[
MGqhPzA9MBwWA3JjZDAVDBMibmFtIjogIkphbWVzIEJvbmQiMB0WA2NybjAWDBQi
Rm9yIHlvdXIgZWFycyBvbmx5IqInMCUWBmF0dGVzdBYGb3JpZ2lkFgNkaXYWA3Jw
aBYDc3BoFgRyY2Rp
]]></artwork></figure>

</section>
<section anchor="extended-claims-constrained-to-specific-telephone-numbers"><name>Extended Claims Constrained to Specific Telephone Numbers</name>

<t>In this case, the requestor is authorized to assert a set of claims only for calls that originate from a specific set of telephone numbers. This is expressed by constraining the "orig" claim in permittedValues to those telephone numbers, alongside the other permitted claims. See Section 5.5 for why the CA does not need to cross-check this constraint against the certificate's TNAuthList.</t>

<figure><artwork><![CDATA[
SEQUENCE {
  permittedValues [1] {
    SEQUENCE {
      SEQUENCE {
        IA5String 'rcd'
        SEQUENCE {
          UTF8String '"nam": "James Bond"'
          }
        }
      SEQUENCE {
        IA5String 'crn'
        SEQUENCE {
          UTF8String '"For your ears only"'
          }
        }
      SEQUENCE {
        IA5String 'orig'
        SEQUENCE {
          UTF8String '"12025551000"'
          UTF8String '"12025551001"'
          }
        }
      }
    }
  mustExclude [2] {
    SEQUENCE {
      IA5String 'attest'
      IA5String 'origid'
      IA5String 'div'
      IA5String 'rph'
      IA5String 'sph'
      IA5String 'rcdi'
      }
    }
  }
]]></artwork></figure>

<t>DER encoding (149 bytes, hex):</t>

<figure><artwork><![CDATA[
30 81 92 a1 67 30 65 30 1c 16 03 72 63 64 30 15
0c 13 22 6e 61 6d 22 3a 20 22 4a 61 6d 65 73 20
42 6f 6e 64 22 30 1d 16 03 63 72 6e 30 16 0c 14
22 46 6f 72 20 79 6f 75 72 20 65 61 72 73 20 6f
6e 6c 79 22 30 26 16 04 6f 72 69 67 30 1e 0c 0d
22 31 32 30 32 35 35 35 31 30 30 30 22 0c 0d 22
31 32 30 32 35 35 35 31 30 30 31 22 a2 27 30 25
16 06 61 74 74 65 73 74 16 06 6f 72 69 67 69 64
16 03 64 69 76 16 03 72 70 68 16 03 73 70 68 16
04 72 63 64 69
]]></artwork></figure>

<t>base64url value:</t>

<figure><artwork><![CDATA[
MIGSoWcwZTAcFgNyY2QwFQwTIm5hbSI6ICJKYW1lcyBCb25kIjAdFgNjcm4wFgwU
IkZvciB5b3VyIGVhcnMgb25seSIwJhYEb3JpZzAeDA0iMTIwMjU1NTEwMDAiDA0i
MTIwMjU1NTEwMDEioicwJRYGYXR0ZXN0FgZvcmlnaWQWA2RpdhYDcnBoFgNzcGgW
BHJjZGk
]]></artwork></figure>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
w7vB7cnRh7B2BeLs/HX0MPr1fPLl9mzlr45g4OPu+R/n8cXxRxB3Z63Rq09f
R0efXw27b+ZfOhGIt8t779fPuOCyRjKve5RomefsvoItaxbMbFX1DBQ3mg9e
Mh/80/zZYsuyap7iSVgfzKxZ5gybd9QXWXolTw4z+f4okFwZOzc0M1UhQlly
rURCiWuSroltNUorSMNNp7bKjpm6wJ6Pw6mlpkhmV9bZr5SI1fXpnCySFMrT
Q0du2F2P1lV8/7dM+GdlwtOrI8L8yPJtfDni7m671Wo5664Z1P5vgdXuHT4t
sA7a4rCDMmuPGD6w9/Uyq4aS5QdkVq3XET8is2o4yQ/IrBrOrGQWSqs9KVBs
qYTzBzh/a4Tzo11Gg/G/u+pfMtb4XxhDg1GAPjO4XZCVtSdtvbKsrD1p65Vl
Ze2fkJXnr66TW3/55Wbgo9X2ufNhefZheXM+250Or8/3zo/f/PL5th2BCDwe
dnbvz+8GI2nALc8my4+18/svD354tDvsflqdv/o09eOLCQzMguvz5Zvp51OS
j18HwcmgBWbj+fLi7mP78uZ0eXEyCPFZzX14Giahv3xz9fnV51+vWl9+vWyB
nfngz6LYu/0AUvpqPpqCbI1Rtl5+RRuzdvQaRPyre+dY/w/EskiYn5cAAA==

-->

</rfc>

