<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-santesson-oidc-cert-auth-context-00" category="std" consensus="true" submissionType="IETF" updates="7773" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="OIDC Cert Auth Context">Certificate Authentication Context Type for OpenID Connect</title>
    <seriesInfo name="Internet-Draft" value="draft-santesson-oidc-cert-auth-context-00"/>
    <author initials="S." surname="Santesson" fullname="Stefan Santesson">
      <organization abbrev="IDsec Solutions">IDsec Solutions AB</organization>
      <address>
        <postal>
          <street>Forskningsbyn Ideon</street>
          <city>Lund</city>
          <code>223 70</code>
          <country>SE</country>
        </postal>
        <email>sts@aaa-sec.com</email>
      </address>
    </author>
    <author initials="M." surname="Lindstrom" fullname="Martin Lindstrom">
      <organization abbrev="IDsec Solutions">IDsec Solutions AB</organization>
      <address>
        <postal>
          <street>Forskningsbyn Ideon</street>
          <city>Lund</city>
          <code>223 70</code>
          <country>SE</country>
        </postal>
        <email>martin@litsec.se</email>
      </address>
    </author>
    <date year="2026" month="October" day="20"/>
    <keyword>certificate</keyword>
    <keyword>oidc</keyword>
    <keyword>authentication</keyword>
    <keyword>X.509</keyword>
    <abstract>
      <?line 84?>

<t>RFC 7773 defines the Authentication Context certificate extension, which carries information about how the subject of an X.509 certificate was authenticated when the certificate was issued. RFC 7773 defines one context information type, for subjects authenticated by means of a Security Assertion Markup Language (SAML) assertion. This document defines a second context information type for subjects authenticated by means of OpenID Connect, where the identity information is obtained from an ID Token, where applicable in combination with a UserInfo Response. The information is expressed as a JSON object and provides the OpenID Connect counterpart to the SAML Authentication Context Information defined in RFC 7773.</t>
      <t>This document also updates RFC 7773 by clarifying that an application processing the extension ignores context information types it does not support regardless of the criticality of the extension, and by recommending that the extension not be marked critical.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://swedenconnect.github.io/ietf-rfc7773-oidc-auth-context/draft-santesson-oidc-certificate-authentication-context.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-santesson-oidc-cert-auth-context/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/swedenconnect/ietf-rfc7773-oidc-auth-context"/>.</t>
    </note>
  </front>
  <middle>
    <?line 90?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Authentication Context certificate extension <xref target="RFC7773"/> allows a Certification Authority (CA) to record, in an issued certificate, information about the authentication event that preceded issuance. This is useful when the CA relies on an external identity provider to authenticate the subject, for example when certificates are issued on the fly to support electronic signatures, and relying parties need to understand the origin and assurance of the identity data placed in the certificate.</t>
      <t>The extension is a sequence of <tt>AuthenticationContext</tt> structures, each identified by a <tt>contextType</tt> URI that also determines the syntax of the accompanying <tt>contextInfo</tt> string. <xref target="RFC7773"/> defines one context type, Security Assertion Markup Language (SAML) Authentication Context Information (SACI), for subjects authenticated by a SAML assertion, and explicitly provides for other documents to define additional context types.</t>
      <t>OpenID Connect <xref target="OIDC.Core"/> has become a widely deployed alternative to SAML for federated authentication. An OpenID Connect authentication results in an ID Token, a JSON Web Token (JWT) <xref target="RFC7519"/> containing claims about the authentication event and the authenticated End-User. Further claims about the End-User may be obtained from the UserInfo Endpoint of the OpenID Provider. This document defines OpenID Connect Authentication Context Information (OACI), a context type whose <tt>contextInfo</tt> is a JSON object <xref target="RFC8259"/> carrying the information from the ID Token and, where applicable, the UserInfo Response that is relevant to the issuance of a certificate.</t>
      <t>OACI is deliberately structured as the OpenID Connect analogue of SACI. It records the issuer of the ID Token, the time of authentication, the authentication context class(es) asserted, a reference to the ID Token, the identity under which the CA acted as Relying Party, and a mapping from ID Token claims to the subject name attributes of the certificate that were derived from them.</t>
      <t>OACI is defined using the extensibility provided by Section 2 of <xref target="RFC7773"/>. With a second context type in existence, the processing rule in <xref target="RFC7773"/> that ties the handling of unsupported context types to the criticality of the extension becomes an obstacle to interoperability: an application that implements only SACI would be required to reject a certificate carrying OACI in a critical extension, although the two convey the same kind of information. This document therefore also updates <xref target="RFC7773"/> as described in <xref target="updates-7773"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>This document uses the terms OpenID Provider (OP), Relying Party (RP), End-User, ID Token, Claim, UserInfo Endpoint and UserInfo Response as defined in <xref target="OIDC.Core"/>.</t>
      <t>The RP of the OpenID Connect authentication is either the CA that issues the certificate or a Registration Authority (RA) acting on behalf of the CA, such as a signing service that authenticates the End-User and then requests a certificate from the CA, conveying the authentication information with the request. For brevity, this document refers to the CA as the RP; where an RA performs the authentication, statements about the CA's handling of the ID Token and UserInfo Response apply to the RA, and the CA is responsible for the information under its certificate policy and practices.</t>
      <t>The terms <tt>contextType</tt>, <tt>contextInfo</tt> and <tt>AuthenticationContext</tt> refer to the ASN.1 components defined in Section 2 of <xref target="RFC7773"/>.</t>
    </section>
    <section anchor="oaci">
      <name>OpenID Connect Authentication Context Information</name>
      <section anchor="context-type">
        <name>Context Type Identifier</name>
        <t>An <tt>AuthenticationContext</tt> carrying OpenID Connect Authentication Context Information in accordance with this specification <bcp14>MUST</bcp14> have a <tt>contextType</tt> with the following URI value:</t>
        <artwork><![CDATA[
urn:ietf:params:x509-auth-context:oidc
]]></artwork>
        <t>The <tt>contextInfo</tt> component of such an <tt>AuthenticationContext</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> contain a JSON object as specified in <xref target="json-structure"/>.</t>
      </section>
      <section anchor="encoding">
        <name>Encoding</name>
        <t>The <tt>contextInfo</tt> value is a <tt>UTF8String</tt> <xref target="RFC7773"/>. Its content <bcp14>MUST</bcp14> be a single JSON text <xref target="RFC8259"/> whose top-level value is an object. The JSON text <bcp14>MUST</bcp14> conform to the I-JSON message format <xref target="RFC7493"/>. In particular, it <bcp14>MUST</bcp14> be encoded in UTF-8, <bcp14>MUST NOT</bcp14> begin with a byte order mark, and <bcp14>MUST NOT</bcp14> contain duplicate member names.</t>
        <t>Producers <bcp14>SHOULD</bcp14> serialize the object without insignificant whitespace in order to limit certificate size. Consumers <bcp14>MUST</bcp14> accept any serialization that is valid I-JSON.</t>
        <t>Consumers <bcp14>MUST</bcp14> ignore members of the top-level object, and of the objects in the <tt>claim_mappings</tt> array, that they do not recognize. This allows future documents and deployment profiles to add members without breaking existing implementations.</t>
      </section>
      <section anchor="json-structure">
        <name>JSON Structure</name>
        <t>The top-level object contains the members defined below. The member names are chosen for readability by a reader of the certificate; where a member corresponds to an ID Token claim, the correspondence is stated. Unless otherwise specified, a member is <bcp14>OPTIONAL</bcp14>. This document places no requirement on the presence of any member whose source value is itself optional in <xref target="OIDC.Core"/>. Deployment profiles of this document <bcp14>MAY</bcp14> require the presence of specific members, and relying parties decide which members they require in order to accept a certificate.</t>
        <dl>
          <dt>iss:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. String. The Issuer Identifier of the OpenID Provider that authenticated the End-User, as given by the <tt>iss</tt> claim of the ID Token. This is a URL using the https scheme with no query or fragment component, as specified in Section 2 of <xref target="OIDC.Core"/>. This member corresponds to the <tt>IdentityProvider</tt> attribute of SACI.</t>
          </dd>
          <dt>auth_time:</dt>
          <dd>
            <t>Number. The time at which the End-User authentication occurred, as given by the <tt>auth_time</tt> claim of the ID Token. The value is a NumericDate as defined in Section 2 of <xref target="RFC7519"/>: the number of seconds from 1970-01-01T00:00:00Z UTC until the time of authentication, ignoring leap seconds, expressed as a JSON number. This member corresponds to the <tt>AuthenticationInstant</tt> attribute of SACI.</t>
          </dd>
          <dt>acr:</dt>
          <dd>
            <t>String. The Authentication Context Class Reference of the authentication, as given by the <tt>acr</tt> claim of the ID Token. This member corresponds to the <tt>AuthnContextClassRef</tt> attribute of SACI.</t>
          </dd>
          <dt>amr:</dt>
          <dd>
            <t>Array of strings. The Authentication Methods References of the authentication, as given by the <tt>amr</tt> claim of the ID Token. Values are as registered in the "Authentication Method Reference Values" registry established by <xref target="RFC8176"/>, or values defined by agreement between the OP and the RP. The array <bcp14>MUST</bcp14> contain at least one element when present. This member has no counterpart in SACI. See <xref target="sec-amr"/> for the relationship between this member and <tt>acr</tt>.</t>
          </dd>
          <dt>jti:</dt>
          <dd>
            <t>String. A unique identifier of the ID Token, as given by the <tt>jti</tt> claim of the ID Token. This member corresponds to the <tt>AssertionRef</tt> attribute of SACI. Note that <tt>jti</tt> is <bcp14>OPTIONAL</bcp14> in an ID Token.</t>
          </dd>
          <dt>sub:</dt>
          <dd>
            <t>String. The Subject Identifier of the End-User at the OpenID Provider, as given by the <tt>sub</tt> claim of the ID Token. Together with <tt>iss</tt>, <tt>client_id</tt> and <tt>auth_time</tt>, this member allows the authentication event to be located in the records of the OpenID Provider, which is of particular use when the ID Token carried no <tt>jti</tt> claim. The value is opaque to the CA and to relying parties, and may be a pairwise identifier that is specific to the <tt>client_id</tt>. This member has no counterpart in SACI. See <xref target="privacy"/> for considerations on including this member.</t>
          </dd>
          <dt>client_id:</dt>
          <dd>
            <t>String. The OAuth 2.0 client identifier under which the CA acted as Relying Party towards the OpenID Provider. This value appears as an audience of the ID Token (the <tt>aud</tt> claim). This member corresponds to the <tt>ServiceID</tt> attribute of SACI.</t>
          </dd>
          <dt>claim_mappings:</dt>
          <dd>
            <t>Array of objects. Each object describes how one claim about the End-User, obtained from the ID Token or from the UserInfo Response, was used to populate a subject name attribute in the certificate. The structure of each object is defined in <xref target="claim-mapping"/>. This member corresponds to the <tt>IdAttributes</tt> element of SACI. The array <bcp14>MUST</bcp14> contain at least one element when present.</t>
          </dd>
        </dl>
      </section>
      <section anchor="claim-mapping">
        <name>Claim Mapping</name>
        <t>A claim mapping object records that the value of a certificate subject name attribute was derived from an End-User claim. In contrast to SACI, the claim value itself is not repeated in the mapping; the value is present in the certificate attribute to which the mapping refers.</t>
        <t>Each claim mapping object contains the following members:</t>
        <dl>
          <dt>type:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. String. One of the values <tt>rdn</tt>, <tt>san</tt> or <tt>sda</tt>, with the meaning defined for the <tt>Type</tt> attribute in Section 3.1.2 of <xref target="RFC7773"/>:
</t>
            <ul spacing="normal">
              <li>
                <t><tt>rdn</tt> - an attribute in a Relative Distinguished Name of the certificate <tt>subject</tt> field.</t>
              </li>
              <li>
                <t><tt>san</tt> - a name in the Subject Alternative Name extension.</t>
              </li>
              <li>
                <t><tt>sda</tt> - an attribute in the Subject Directory Attributes extension.</t>
              </li>
            </ul>
          </dd>
          <dt>ref:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. String. Identifies the certificate attribute or name form, with the same content rules as the <tt>Ref</tt> attribute in Section 3.1.2 of <xref target="RFC7773"/>:
</t>
            <ul spacing="normal">
              <li>
                <t>For type <tt>rdn</tt> and <tt>sda</tt>, the object identifier of the attribute type, in dotted-decimal notation (a sequence of decimal integers separated by periods, with no other characters).</t>
              </li>
              <li>
                <t>For type <tt>san</tt>, the decimal tag number of the <tt>GeneralName</tt> choice, e.g. <tt>1</tt> for <tt>rfc822Name</tt> and <tt>2</tt> for <tt>dNSName</tt>. For the <tt>otherName</tt> choice, the object identifier of the <tt>type-id</tt> in dotted-decimal notation.</t>
              </li>
            </ul>
          </dd>
          <dt>claim:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. String. A JSON Pointer <xref target="RFC6901"/> identifying the claim within the set of claims about the End-User, where the root of the pointer is the ID Token claims set (or the UserInfo Response, see <tt>source</tt>). For a standard top-level claim this is simply <tt>/</tt> followed by the claim name, e.g. <tt>/given_name</tt>. The pointer form allows reference to members of structured claims, e.g. <tt>/address/street_address</tt>, and to claims in aggregated or distributed claim sets.</t>
          </dd>
          <dt>source:</dt>
          <dd>
            <t>String. Indicates where the claim was obtained. The value <tt>id_token</tt> indicates the ID Token; the value <tt>userinfo</tt> indicates the UserInfo Response. When absent, the default value is <tt>id_token</tt>.</t>
          </dd>
        </dl>
        <t>A single certificate attribute <bcp14>MAY</bcp14> be derived from more than one claim, in which case several claim mapping objects share the same <tt>type</tt> and <tt>ref</tt> values. A single claim <bcp14>MAY</bcp14> be mapped to more than one certificate attribute. <xref target="example-oaci"/> shows a set of claim mappings for a typical certificate subject.</t>
      </section>
      <section anchor="schema">
        <name>Schema</name>
        <t>The following schema, expressed in YAML using the vocabulary of <xref target="JSON-SCHEMA"/>, is a normative statement of the structure defined in <xref target="json-structure"/> and <xref target="claim-mapping"/>. In case of conflict between the prose and the schema, the prose takes precedence.</t>
        <sourcecode type="yaml"><![CDATA[
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "urn:ietf:params:x509-auth-context:oidc"
title: OpenID Connect Authentication Context Information
type: object
required: [iss]
properties:
  iss:
    type: string
    format: uri
  auth_time:
    type: number
    minimum: 0
  acr:
    type: string
  amr:
    type: array
    minItems: 1
    items:
      type: string
  jti:
    type: string
  sub:
    type: string
  client_id:
    type: string
  claim_mappings:
    type: array
    minItems: 1
    items:
      $ref: "#/$defs/claimMapping"
$defs:
  claimMapping:
    type: object
    required: [type, ref, claim]
    properties:
      type:
        type: string
        enum: [rdn, san, sda]
      ref:
        type: string
        pattern: "^[0-9]+(\\.[0-9]+)*$"
      claim:
        type: string
        format: json-pointer
      source:
        type: string
        enum: [id_token, userinfo]
        default: id_token
]]></sourcecode>
        <t>Unrecognized members are permitted everywhere; the schema intentionally does not set <tt>additionalProperties</tt> to <tt>false</tt>.</t>
      </section>
      <section anchor="relationship">
        <name>Relationship to the ID Token and UserInfo Response</name>
        <t>The OACI object is produced by the CA from an ID Token, and where applicable a UserInfo Response, that the CA has validated according to Sections 3.1.3.7 and 5.3.4 of <xref target="OIDC.Core"/>. The OACI object is not itself a token: it carries no signature and no <tt>exp</tt> or <tt>iat</tt> members, because its integrity and lifetime are those of the certificate in which it is embedded. A relying party that wishes to inspect the original ID Token may use the <tt>iss</tt>, <tt>client_id</tt> and <tt>jti</tt> members to locate it, if the CA retains tokens according to its practices.</t>
      </section>
    </section>
    <section anchor="updates-7773">
      <name>Updates to RFC 7773</name>
      <section anchor="processing">
        <name>Processing of Unsupported Context Types</name>
        <t>Section 2 of <xref target="RFC7773"/> states that an application that finds an authentication context information type it does not understand <bcp14>MUST</bcp14> ignore it if the extension is non-critical and <bcp14>MUST</bcp14> reject the certificate if the extension is marked critical.</t>
        <t>This rule conflates two separate matters: whether an application recognizes the Authentication Context extension, which is what the criticality flag of <xref target="RFC5280"/> governs, and how an application that does recognize the extension treats individual <tt>AuthenticationContext</tt> entries. The information carried by the extension is descriptive. It allows a relying party that cares about the origin of the subject's identity to evaluate it against its own policy, but it requires no action from a relying party that does not. Requiring every relying party to support every context type present in a certificate therefore serves no security purpose, and it prevents a CA from including several context types in one certificate, for example to serve both legacy applications and new applications that support different versions of the same information.</t>
        <t>Accordingly, the rule is replaced by the following.</t>
        <t>An application that recognizes the Authentication Context extension <bcp14>MUST</bcp14> be able to parse the <tt>AuthenticationContexts</tt> structure. It processes each <tt>AuthenticationContext</tt> entry whose <tt>contextType</tt> it supports according to the specification of that context type, and <bcp14>MUST</bcp14> ignore each <tt>AuthenticationContext</tt> entry whose <tt>contextType</tt> it does not support. This applies irrespective of whether the extension is marked critical.</t>
        <t>The criticality flag of the extension retains only its meaning under Section 4.2 of <xref target="RFC5280"/>: an application that does not recognize the Authentication Context extension at all <bcp14>MUST</bcp14> reject a certificate in which the extension is marked critical.</t>
      </section>
      <section anchor="criticality">
        <name>Criticality</name>
        <t>Section 2 of <xref target="RFC7773"/> states that the extension <bcp14>MAY</bcp14> be marked critical.</t>
        <t>Since the extension carries descriptive information and mandates no action by a relying party, marking it critical excludes relying parties that do not implement the extension without providing any corresponding benefit. This document updates <xref target="RFC7773"/> as follows: the Authentication Context extension <bcp14>SHOULD NOT</bcp14> be marked critical.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC7773"/> apply.</t>
      <section anchor="trust-in-the-recorded-information">
        <name>Trust in the Recorded Information</name>
        <t>The information in an OACI object is asserted by the CA, not by the OpenID Provider. The CA, or an RA acting on its behalf, copies values from an ID Token and UserInfo Response that it validated at the time of issuance; a relying party has no means of re-validating these from the certificate alone. A relying party therefore trusts the OACI content to exactly the extent that it trusts the CA, as expressed in the CA's certificate policy and practices. Where an RA performs the authentication, the CA's trust in the RA, and the means by which the authentication information is conveyed from the RA to the CA, are matters for the CA's practices and are outside the scope of this document.</t>
      </section>
      <section anchor="authentication-context-class-references">
        <name>Authentication Context Class References</name>
        <t>The value of the <tt>acr</tt> member is only meaningful within the trust framework that defines it. A relying party <bcp14>MUST NOT</bcp14> infer an assurance level from an <tt>acr</tt> value defined by a framework it does not recognize.</t>
      </section>
      <section anchor="sec-amr">
        <name>Authentication Methods References</name>
        <t>The <tt>amr</tt> member is informative. As noted in Section 4 of <xref target="RFC8176"/>, <tt>amr</tt> values are asserted by the OP without any standardized means of verification and are not a substitute for an authentication context class. The member is provided so that the concrete methods used can be recorded for audit and troubleshooting, and because <tt>amr</tt> values, unlike <tt>acr</tt> values, are drawn from a public registry and remain interpretable outside the originating trust framework.</t>
        <t>The <tt>acr</tt> and <tt>amr</tt> members are complementary, not alternatives: <tt>acr</tt> is the OP's statement of the assurance achieved, and <tt>amr</tt> describes the methods used to achieve it. When both are present, <tt>acr</tt> governs. A relying party <bcp14>MUST NOT</bcp14> use <tt>amr</tt> values to raise or lower the assurance it attributes to the <tt>acr</tt> value, and <bcp14>SHOULD NOT</bcp14> base an assurance decision solely on <tt>amr</tt> values when <tt>acr</tt> is absent. An apparent inconsistency between the two, for example an <tt>acr</tt> value denoting a high assurance level together with <tt>amr</tt> values denoting a single weak factor, is a matter between the OP and the trust framework that governs it, and is not resolved by the relying party.</t>
      </section>
      <section anchor="privacy">
        <name>Privacy</name>
        <t>An OACI object reveals the identity of the OP that authenticated the subject, the time of authentication and, through <tt>claim_mappings</tt>, which identity attributes in the certificate were asserted by that OP. Together with the certificate serial number and <tt>jti</tt>, this allows a certificate to be correlated with an authentication event logged at the OP and the CA. CAs <bcp14>SHOULD</bcp14> include only members needed by the intended relying parties, and deployment profiles <bcp14>SHOULD</bcp14> consider whether <tt>jti</tt> and <tt>auth_time</tt> are required.</t>
        <t>The <tt>sub</tt> member is a persistent identifier of the End-User at the OpenID Provider. When the OpenID Provider issues pairwise Subject Identifiers (see Section 8 of <xref target="OIDC.Core"/>), the value is specific to the <tt>client_id</tt> and cannot be used to correlate the End-User across Relying Parties. When the OpenID Provider issues public Subject Identifiers, the value is the same for every Relying Party of that OpenID Provider, and including it in a certificate allows anyone holding the certificate to correlate its subject with the End-User's accounts at other Relying Parties of the same OpenID Provider. A CA <bcp14>SHOULD</bcp14> include <tt>sub</tt> only where the ability to locate the authentication record is needed by the intended relying parties, and deployment profiles <bcp14>SHOULD</bcp14> state whether <tt>sub</tt> is included and under which Subject Identifier type.</t>
        <t>Beyond <tt>sub</tt>, this document defines no member carrying End-User claim values. The claim values that were placed in the certificate are present in the certificate subject name; repeating them would increase the personal data carried by the certificate without adding information a relying party can verify.</t>
      </section>
      <section anchor="ignoring-unsupported-context-types">
        <name>Ignoring Unsupported Context Types</name>
        <t>Under <xref target="processing"/>, an application silently ignores context types it does not support. A relying party whose policy requires authentication context information of a particular type must therefore check for the presence of that type explicitly and treat its absence according to policy; the absence of a supported entry is not an error condition in itself.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-registry">
        <name>X.509 Authentication Context Types Registry</name>
        <t>IANA is requested to create a new registry titled "X.509 Authentication Context Types" under a new "X.509 Authentication Context" registry group. The registry lists the URIs defined for use as <tt>contextType</tt> values in the Authentication Context certificate extension <xref target="RFC7773"/>, together with the specification that defines the syntax of the corresponding <tt>contextInfo</tt>.</t>
        <t>The registration policy is Specification Required (see <xref target="RFC8126"/>). Each entry contains:</t>
        <ul spacing="normal">
          <li>
            <t>Context Type URI: the URI used as the <tt>contextType</tt> value.</t>
          </li>
          <li>
            <t>Description: a short description of the context information type.</t>
          </li>
          <li>
            <t>Reference: the specification defining the <tt>contextInfo</tt> syntax.</t>
          </li>
        </ul>
        <t>Context type URIs are not required to be assigned under the Uniform Resource Name (URN) sub-namespace registered in <xref target="iana-urn"/>; any URI under the control of the registrant is acceptable. Registrations under the URN sub-namespace are expected to be made by IETF documents.</t>
        <t>The initial content of the registry is:</t>
        <table>
          <name>Initial registry content</name>
          <thead>
            <tr>
              <th align="left">Context Type URI</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">http://id.elegnamnden.se/auth-cont/1.0/saci</td>
              <td align="left">SAML Authentication Context Information</td>
              <td align="left">
                <xref target="RFC7773"/>, Section 3</td>
            </tr>
            <tr>
              <td align="left">urn:ietf:params:x509-auth-context:oidc</td>
              <td align="left">OpenID Connect Authentication Context Information</td>
              <td align="left">This document, <xref target="oaci"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-urn">
        <name>IETF URN Sub-namespace Registration</name>
        <t>IANA is requested to register the following entry in the "IETF URN Sub-namespace for Registered Protocol Parameter Identifiers" registry established by <xref target="RFC3553"/>:</t>
        <dl>
          <dt>Registry name:</dt>
          <dd>
            <t>x509-auth-context</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Repository:</dt>
          <dd>
            <t>The "X.509 Authentication Context Types" registry (<xref target="iana-registry"/>).</t>
          </dd>
          <dt>Index value:</dt>
          <dd>
            <t>The index value is the string following the prefix <tt>urn:ietf:params:x509-auth-context:</tt>. Values are registered as complete URIs in the "X.509 Authentication Context Types" registry; the entries of that registry beginning with the prefix constitute the values of this sub-namespace.</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items. The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources. 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="73"/>
          <seriesInfo name="RFC" value="3553"/>
          <seriesInfo name="DOI" value="10.17487/RFC3553"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
            <author fullname="K. Zyp" initials="K." surname="Zyp"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </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="RFC7773">
          <front>
            <title>Authentication Context Certificate Extension</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines an extension to X.509 certificates. The extension defined in this document holds data about how the certificate subject was authenticated by the Certification Authority that issued the certificate in which this extension appears.</t>
              <t>This document also defines one data structure for inclusion in this extension. The data structure is designed to hold information when the subject is authenticated using a Security Assertion Markup Language (SAML) assertion.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7773"/>
          <seriesInfo name="DOI" value="10.17487/RFC7773"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="OIDC.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0 incorporating errata set 2</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
        </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>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8176">
          <front>
            <title>Authentication Method Reference Values</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>The "amr" (Authentication Methods References) claim is defined and registered in the IANA "JSON Web Token Claims" registry, but no standard Authentication Method Reference values are currently defined. This specification establishes a registry for Authentication Method Reference values and defines an initial set of Authentication Method Reference values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8176"/>
          <seriesInfo name="DOI" value="10.17487/RFC8176"/>
        </reference>
        <reference anchor="JSON-SCHEMA" target="https://json-schema.org/draft/2020-12/json-schema-core">
          <front>
            <title>JSON Schema: A Media Type for Describing JSON Documents</title>
            <author initials="A." surname="Wright">
              <organization/>
            </author>
            <author initials="H." surname="Andrews">
              <organization/>
            </author>
            <author initials="B." surname="Hutton">
              <organization/>
            </author>
            <author initials="G." surname="Dennis">
              <organization/>
            </author>
            <date year="2022" month="June"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 359?>

<section anchor="examples">
      <name>Examples</name>
      <section anchor="example-oaci">
        <name>Example OACI Object</name>
        <t>The following OACI object records an authentication performed by the OpenID Provider <tt>https://op.example.com</tt> at a context class defined by an example trust framework. The certificate subject name contains the End-User's given name (object identifier (OID) 2.5.4.42), surname (OID 2.5.4.4) and serial number (OID 2.5.4.5), and an email address in the Subject Alternative Name extension, all derived from ID Token claims.</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://op.example.com",
  "auth_time": 1792415045,
  "acr": "http://id.example.org/loa/3",
  "amr": ["sc", "pin"],
  "jti": "0f3e2c6a-7b1d-4e4c-9a2e-5d1c2b3a4f60",
  "client_id": "https://sign.example.com",
  "claim_mappings": [
    { "type": "rdn", "ref": "2.5.4.42", "claim": "/given_name" },
    { "type": "rdn", "ref": "2.5.4.4",  "claim": "/family_name" },
    { "type": "rdn", "ref": "2.5.4.5",
      "claim": "/https:~1~1id.example.org~1claims~1personal_identity_number" },
    { "type": "san", "ref": "1",        "claim": "/email" }
  ]
}
]]></sourcecode>
        <t>Note that the third mapping refers to a claim whose name is itself a URI. Since <tt>/</tt> is the reference token separator in a JSON Pointer, the <tt>/</tt> characters inside the claim name are escaped as <tt>~1</tt> (see Section 3 of <xref target="RFC6901"/>).</t>
        <t>[[ Editor's note: claims with URI names are common in national profiles and the escaping makes them hard to read. Consider instead a plain claim name in <tt>claim</tt> with a separate <bcp14>OPTIONAL</bcp14> <tt>path</tt> member (a JSON Pointer relative to the claim) for members of structured claims. ]]</t>
      </section>
      <section anchor="example-extension">
        <name>Example Extension</name>
        <t>The <tt>AuthenticationContext</tt> carrying the above object has <tt>contextType</tt> set to <tt>urn:ietf:params:x509-auth-context:oidc</tt> and <tt>contextInfo</tt> set to the compact serialization of the object. A Distinguished Encoding Rules (DER) rendering of the complete extension will be added in a future revision.</t>
      </section>
    </section>
    <section numbered="false" anchor="design-notes">
      <name>Design Notes</name>
      <t>[[ This section is intended to be removed before publication as an RFC. ]]</t>
      <ul spacing="normal">
        <li>
          <t>Member names and value formats follow the ID Token claims where there is a direct correspondence (<tt>iss</tt>, <tt>auth_time</tt>, <tt>acr</tt>, <tt>amr</tt>, <tt>jti</tt>), so that a CA copies values without conversion, but the structure is not a JWT claims set and is not intended to be processed as one.</t>
        </li>
        <li>
          <t>Claim values are not repeated in <tt>claim_mappings</tt>, unlike SACI, because they are already present in the certificate and repeating them has not proven useful in practice.</t>
        </li>
        <li>
          <t>The update to RFC 7773 in <xref target="updates-7773"/> is the reason this document carries "Updates: 7773". Without it, defining a new context type would not update RFC 7773, which already provides for additional types.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
E4WmAWsAAA==

-->

</rfc>
