<?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.34 (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-05" 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="05"/>

    <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://boulder.example.com/acme/chall/prV_B7yEyA4",
      "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 Authority Token MUST be signed by a certificate 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 to validate signatures made with the certificate, 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>

</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="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>
<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>



    </references>

</references>


<?line 450?>

<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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

-->

</rfc>

