<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-demarco-acme-openid-federation-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ACME OpenID Federation">Automatic Certificate Management Environment (ACME) with OpenID Federation 1.0</title>
    <seriesInfo name="Internet-Draft" value="draft-demarco-acme-openid-federation-01"/>
    <author initials="G." surname="De Marco" fullname="Giuseppe De Marco">
      <organization>independent</organization>
      <address>
        <email>demarcog83@gmail.com</email>
      </address>
    </author>
    <author initials="B." surname="Pitman" fullname="Brandon Pitman">
      <organization/>
      <address>
        <email>bran@bran.land</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Security</area>
    <workgroup>Automated Certificate Management Environment</workgroup>
    <keyword>OpenID Federation</keyword>
    <keyword>ACME</keyword>
    <abstract>
      <?line 89?>

<t>The Automatic Certificate Management Environment (ACME) protocol allows server
operators to obtain TLS certificates for their websites, based on a
demonstration of control over the website's domain via a fully-automated
challenge/response protocol.</t>
      <t>OpenID Federation 1.0 defines how to build a trust infrastructure using a
trusted third-party model. It uses a trust evaluation mechanism to attest to the
possession of private keys, protocol specific metadata and miscellaneous
administrative and technical information related to a specific entity.</t>
      <t>This document defines how X.509 certificates associated with a given OpenID
Federation Entity can be issued by an X.509 Certification Authority through the
ACME protocol to the organizations which are part of a federation built on top
of OpenID Federation 1.0.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-demarco-acme-openid-federation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Automated Certificate Management Environment Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/acme/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/acme/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/peppelinux/draft-demarco-acme-openid-federation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 106?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document describes extensions to the ACME protocol that integrate with
OpenID Federation 1.0, allowing an ACME server to issue X.509 Certificates
associated with a given OpenID Federation entity. An entity can be a school,
government agency, corporation, automated system, or any participant that
wishes to join the Federation.</t>
      <t>In a multilateral federation, composed of thousands of entities belonging to
different organizations, all the participants adhere to the same regulation or
trust framework. OpenID Federation 1.0 allows each participant to recognize
other participants using a trust evaluation mechanism, with RESTful services and
cryptographic materials.</t>
      <t>Federation members declare what kind Entities they are using a basic OpenID
Federation component called an Entity Configuration, a signed JSON Web Token
published in a well-known resource. This document defines new OpenID Federation
Entity Types for certificate Requestors and Issuers, facilitating automated
discovery of an issuer's ACME API.</t>
      <t>X.509 Certificates can be provided to one or more such entities, without having
pre-established any direct relationship or contract.</t>
      <t>These Certificates are useful for integrating with existing systems and
protocols which require X.509 Certificates. For example, RADIUS (<xref target="RFC2865"/>)
deployments often require Certificates to authenticate clients, or these
Certificates could also be used for TLS <xref target="RFC8446"/>. In order to accommodate a
variety of use cases, this document adds no requirement that CAs conform to any
particular issuance profile, because fields of the X.509 Certificates like the
Common Names, Subject Alternative Names or Key Usages may depend on details of
those existing systems.</t>
      <t>This document extends <xref target="RFC5280"/>, ACME (<xref target="RFC8555"/>) and OpenID Federation
1.0 (<xref target="OPENID-FED"/>) in the following ways:</t>
      <ul spacing="normal">
        <li>
          <t>It defines a new ACME Identifier type called <tt>openid-federation</tt>
(<xref target="identifier-type"/>).</t>
        </li>
        <li>
          <t>It defines a new ACME challenge type called <tt>openid-federation-01</tt>
(<xref target="challenge-type"/>).</t>
        </li>
        <li>
          <t>It defines new OpenID Federation 1.0 Entity Types <tt>acme_issuer</tt>
(<xref target="issuer-metadata"/>) and <tt>acme_requestor</tt> (<xref target="requestor-metadata"/>).</t>
        </li>
        <li>
          <t>It defines how OpenID Federation 1.0 Superior Entities can use Subordinate
Statements to publish X.509 Certificates previously issued with ACME
(<xref target="publish-cert"/>).</t>
        </li>
        <li>
          <t>It defines a new SubjectAlternativeName type <tt>id-on-OpenIdFederationEntityId</tt>
and a corresponding OID so that OpenID Federation 1.0 Entity Identifiers can
be included in X.509 Certificates if an Issuer wishes
(<xref target="openidfed-othername-id"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The terms "Federation Entity", "Trust Anchor", "Entity Configuration",
"Subordinate Statement", "Superior Entity", "Immediate Superior Entity",
"Federation Entity Keys", "Federation Entity Discovery", "Trust Mark", "Trust
Chain", and "Resolved Metadata" used in this document are defined in
<xref section="1.2" sectionFormat="of" target="OPENID-FED" relative="#section-1.2"/>.</t>
      <t>The term "Certificate Signing Request" (CSR) used in this document is defined as
a "Certification Request" in <xref target="RFC2986"/>. The term "Certification Authority"
used in this document is defined in <xref target="RFC5280"/>. The terms "ACME Client" and
"ACME Server" are defined in <xref target="RFC8555"/>.</t>
      <t>The specification also defines the following terms:</t>
      <dl>
        <dt>ACME Identifier:</dt>
        <dd>
          <t>An identifier in the sense of <xref target="RFC8555"/>. Some identifier that the ACME
client proves control of to the ACME server.</t>
        </dd>
        <dt>Entity Identifier:</dt>
        <dd>
          <t>A URL that uniquely identifies an Entity in OpenID Federation, as defined in
<xref section="1.2" sectionFormat="of" target="OPENID-FED" relative="#section-1.2-3.4"/>.</t>
        </dd>
        <dt>Requestor:</dt>
        <dd>
          <t>A Federation Entity which wants to request X.509 Certificates. It operates
a web server for hosting its Entity Configuration. It also operates an ACME
client, extended according to this document.</t>
        </dd>
        <dt>Certificate Issuer (or Issuer):</dt>
        <dd>
          <t>A Federation Entity which issues X.509 Certificates. It operates a web server
for hosting its Entity Configuration. It also operates an ACME server,
extended according to this document.</t>
        </dd>
      </dl>
    </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?>

</section>
    <section anchor="identifier-type">
      <name>OpenID Federation ACME Identifier</name>
      <t>This document defines a new ACME Identifier type for OpenID Federation Entities,
<tt>openid-federation</tt>, whose value is the <tt>sub</tt> parameter of the Requestor's
Entity Configuration, as defined in <xref section="1.2" sectionFormat="of" target="OPENID-FED" relative="#section-1.2"/>.</t>
      <t>For example, the ACME Identifier corresponding to the example Entity
Configuration in <xref target="requestor-metadata"/> is:</t>
      <artwork><![CDATA[
{"type": "openid-federation", "value": "https://requestor.example.com"}
]]></artwork>
      <t>The <tt>openid-federation</tt> ACME Identifier type <bcp14>MUST NOT</bcp14> be validated except by the
<tt>openid-federation-01</tt> challenge.</t>
    </section>
    <section anchor="challenge-type">
      <name>OpenID Federation Challenge Type</name>
      <t>The OpenID Federation challenge type allows a Requestor to prove control of a
Federation Entity using the trust evaluation mechanism provided by
<xref target="OPENID-FED"/>. The Requestor demonstrates control of a cryptographic public key
published in its OpenID Federation Entity Configuration.</t>
      <t>There are two ways the Certificate Issuer is able to check if a Requestor is
part of the federation:</t>
      <ul spacing="normal">
        <li>
          <t>The Requestor provides a Trust Chain when solving the ACME challenge. This is
<bcp14>RECOMMENDED</bcp14> since it reduces the effort of the Certificate Issuer in
evaluating the trust to the Requestor.</t>
        </li>
        <li>
          <t>The Requestor doesn't provide a Trust Chain in the challenge solution.</t>
        </li>
      </ul>
      <t>The openid-federation-01 ACME challenge object has the following format:</t>
      <t>type (required, string):  The string "openid-federation-01"</t>
      <t>token (required, string):  A random value that uniquely identifies the
    challenge. This value <bcp14>MUST</bcp14> have at least 128 bits of entropy. It <bcp14>MUST NOT</bcp14>
    contain any characters outside the base64url alphabet as described in
    <xref section="5" sectionFormat="of" target="RFC4648"/>. Trailing '=' padding characters <bcp14>MUST</bcp14> be stripped.
    See <xref target="RFC4086"/> for additional information on randomness requirements.</t>
      <t>trustAnchors (optional, array of string):  An array of strings containing the
    Entity Identifiers of the Issuer's Trust Anchors. When solving the
    challenge, the Requestor can construct a Trust Chain from itself to one of
    these Trust Anchors. It is <bcp14>RECOMMENDED</bcp14> that the Issuer includes this field
    to make it easier for the Requestor to construct a Trust Chain.</t>
      <t>A non-normative example of a challenge with <tt>trustAnchors</tt> specified:</t>
      <artwork><![CDATA[
   {
     "type": "openid-federation-01",
     "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4",
     "status": "pending",
     "token": "LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowyjxAjEuX0",
     "trustAnchors": [
       "https://trust-anchor-1.example.com",
       "https://trust-anchor-2.example.com"
     ]
   }
]]></artwork>
      <t>The <tt>openid-federation-01</tt> challenge <bcp14>MUST NOT</bcp14> be used to validate possession of
any ACME Identifiers except <tt>openid-federation</tt> ACME Identifiers.</t>
      <t>The Requestor responds to the challenge with an object with the following
format:</t>
      <t>sig (required, string):  the compact JSON serialization (as described in
    <xref section="7.1" sectionFormat="of" target="RFC7515"/>) of a JWS, signing the key authorization
    encoded in UTF-8.
    The key authorization is computed from the token in the challenge and the
    Requestor's ACME account key, as defined in <xref section="8.1" sectionFormat="of" target="RFC8555"/>.
    The signature must be made by one of the keys published in the Requestor's
    <tt>acme_requestor</tt> metadata in its Entity Configuration, as specified in
    <xref target="requestor-metadata"/>.
    The JWS <bcp14>MUST</bcp14> include a <tt>kid</tt> header parameter corresponding to the key used
    to sign the key authorization and a <tt>typ</tt> header parameter set to
    "signed-acme-challenge+jwt".</t>
      <t>trustChain (optional, array of string):  an array of strings containing signed
    JWTs, representing a Trust Chain from the Requestor to one of the Issuer's
    Trust Anchors (see <xref section="4" sectionFormat="of" target="OPENID-FED" relative="#section-4"/>).
    The Resolved Metadata of the Trust Chain subject <bcp14>MUST</bcp14> contain
    <tt>acme_requestor</tt> metadata that contains the key used to compute <tt>sig</tt>.
    It is <bcp14>RECOMMENDED</bcp14> that the Requestor includes this field.
    If the Requestor cannot construct a Trust Chain to one of the Trust Anchors
    indicated by the Issuer, or if no Trust Anchors were indicated, it <bcp14>MAY</bcp14> use
    some other Trust Anchor that it believes the Issuer trusts.
    If the Requestor cannot construct a Trust Chain to any Trust Anchor, it <bcp14>MAY</bcp14>
    omit the <tt>trustChain</tt> field from the challenge response.</t>
      <t>A non-normative example for an authorization with <tt>trustChain</tt> specified:</t>
      <artwork><![CDATA[
   POST /acme/chall/prV_B7yEyA4
   Host: issuer.example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://issuer.example.com/acme/acct/evOfKhNU60wg",
       "nonce": "UQI1PoRi5OuXzxuX7V7wL0",
       "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4"
     }),
     "payload": base64url({
      "sig": "wQAvHlPV1tVxRW0vZUa4BQ...",
      "trustChain": ["eyJhbGciOiJFU...", "eyJhbGci..."]
     }),
     "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
   }
]]></artwork>
      <t>On receiving a challenge response, the Certificate Issuer verifies that the
Requestor is trusted. If the Requestor did not provide a <tt>trustChain</tt>, the
Issuer <bcp14>MUST</bcp14> perform Federation Entity Discovery (<xref section="10" sectionFormat="of" target="OPENID-FED" relative="#section-10"/>) to obtain a Trust Chain for the Requestor.</t>
      <t>Once it has obtained a Trust Chain, the Issuer evaluates the entity's Resolved
Metadata, and verifies:</t>
      <ul spacing="normal">
        <li>
          <t>That the requested <tt>openid-federation</tt> ACME Identifier value matches the <tt>sub</tt>
parameter of the Requestor's Entity Configuration.</t>
        </li>
        <li>
          <t>That there is a key in the <tt>acme_requestor</tt> metadata (<xref target="requestor-metadata"/>)
of the Requestor's Resolved Metadata with a <tt>kid</tt> matching the <tt>kid</tt> claim in
the challenge response.</t>
        </li>
        <li>
          <t>That the <tt>sig</tt> field of the payload is the compact JSON serialization of a
valid JWS signing the key authorization, using the above public key.</t>
        </li>
      </ul>
      <t>If all of the above checks succeed, then the validation is successful.
Otherwise, it has failed. In either case, the Certificate Issuer responds
according to <xref section="7.5.1" sectionFormat="of" target="RFC8555"/>. If the Issuer fails to verify OpenID
Federation trust, the problem document <bcp14>SHOULD</bcp14> contain a subproblem of type
<tt>urn:ietf:params:acme:error:openIDFederationEntity</tt> constructed as discussed in
<xref target="error-type"/>.</t>
      <t>A non-normative example for the challenge object post-validation:</t>
      <artwork><![CDATA[
   {
     "type": "openid-federation-01",
     "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4",
     "status": "valid",
     "validated": "2024-10-01T12:05:13.72Z",
     "token": "LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowyjxAjEuX0"
   }
]]></artwork>
    </section>
    <section anchor="requestor-metadata">
      <name>Requestor Entity Configuration Metadata</name>
      <t>The Requestor <bcp14>MUST</bcp14> publish in its Entity Configuration an <tt>acme_requestor</tt>
metadata containing a JWK set, according to <xref section="5.2.1" sectionFormat="of" target="OPENID-FED" relative="#section-5.2.1"/>. The keys in the set are used to
respond to ACME challenges.</t>
      <t>The following is a non-normative example of an Entity Configuration including
the <tt>acme_requestor</tt> metadata and using the <tt>jwks</tt> metadata parameter.</t>
      <artwork><![CDATA[
{
  "iss": "https://requestor.example.com",
  "sub": "https://requestor.example.com",
  "iat": 1516239022,
  "exp": 1516298022,
  "jwks": {
    "keys": [
      {
        "kty": "RSA",
        "alg": "RS256",
        "use": "sig",
        "kid": "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
        "n": "pnXBOusEANuug6ewezb9J_...",
        "e": "AQAB"
      }
    ]
  },
  "metadata": {
    "acme_requestor": {
      "jwks": {
        "keys": [
          {
            "kty": "RSA",
            "kid": "SUdtUndEWVY2cUFDeD...",
            "n": "y_Zc8rByfeRIC9fFZrD...",
            "e": "AQAB"
          },
          {
            "kty": "EC",
            "kid": "MFYycG1raTI4SkZvVDBIMF9CNGw3VEZYUmxQLVN2T21nSWlkd3",
            "crv": "P-256",
            "x": "qAOdPQROkHfZY1daGofOmSNQWpYK8c9G2m2Rbkpbd4c",
            "y": "G_7fF-T8n2vONKM15Mzj4KR_shvHBxKGjMosF6FdoPY"
          }
        ]
      }
    }
  }
}
]]></artwork>
      <t>The Issuer <bcp14>MUST</bcp14> only use the Requestor's <tt>acme_requestor</tt> to validate an ACME
challenge. Therefore, after completing the challenge, the Requestor <bcp14>MAY</bcp14> remove
the <tt>acme_requestor</tt> metadata from its Entity Configuration.</t>
    </section>
    <section anchor="issuer-discovery">
      <name>Issuer Discovery</name>
      <t>The Requestor's ACME client may either be configured to use a particular ACME
server, or to automatically discover a Certificate Issuer through the OpenID
Federation.</t>
      <t>In order to be discoverable, the Issuer <bcp14>MUST</bcp14> publish the entity type
<tt>acme_issuer</tt> in its Entity Configuration, according to <xref target="issuer-metadata"/>.</t>
      <t><xref target="OPENID-FED"/> describes a variety of patterns and generic mechanisms for
discovering Federation Entities. This section describes how Issuers may make
themselves discoverable in a Federation by Requestors.</t>
      <t>TODO: include a specific section reference once
https://github.com/openid/federation/pull/265 lands in OPENID-FED</t>
      <section anchor="issuer-metadata">
        <name>Issuer Metadata</name>
        <t>The Issuer <bcp14>MUST</bcp14> publish its Entity Configuration including the <tt>acme_issuer</tt>
Entity Type metadata within it. The <tt>acme_issuer</tt> metadata contains one
parameter, <tt>directory_url</tt>, which is the URL of the ACME Directory, as defined
in <xref section="7.1.1" sectionFormat="of" target="RFC8555"/>.</t>
        <t>Requestors <bcp14>MUST</bcp14> use the ACME Directory provided in the Issuer's Entity
Configuration for client configuration of ACME endpoints.</t>
        <t>The following is a non-normative example of an Entity Configuration including
the <tt>acme_issuer</tt> metadata:</t>
        <artwork><![CDATA[
{
  "iss": "https://issuer.example.com",
  "sub": "https://issuer.example.com",
  "iat": 1516239022,
  "exp": 1516298022,
  "jwks": {
    "keys": [
      {
        "kty": "RSA",
        "alg": "RS256",
        "use": "sig",
        "kid": "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
        "n": "pnXBOusEANuug6ewezb9J_...",
        "e": "AQAB"
      }
    ]
  },
  "metadata": {
    "acme_issuer": {
      "directory_url": "https://issuer.example.com/acme/directory"
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section anchor="publish-cert">
      <name>Publication of the Certificates within the Federation</name>
      <t>The X.509 Certificates issued by federation Immediate Superior Entities
pertaining to one or more Federation Entity Keys in control of their
Subordinates <bcp14>MAY</bcp14> publish this information by including the <tt>x5c</tt> member
in each JWK contained within the matching Subordinate Statement. The contents
of the published <tt>x5c</tt> member, including whether it contains a full or
partial Trust Chain, and if so, to what Trust Anchor, are policy decisions
out of scope for this document.</t>
    </section>
    <section anchor="openidfed-othername-id">
      <name>CSR and Certificate Fields</name>
      <t>Depending on the Certificate Issuer's X.509 Certificate profile, the CSR and
X.509 Certificate <bcp14>MAY</bcp14> associate the X.509 Certificate to the Federation Entity
by including the Entity Identifier in the X.509 Certificate.</t>
      <t>To do so, the Issuer includes a Subject Alternative Name extension containing an
<tt>otherName</tt> with a <tt>type-id</tt> of <tt>id-on-OpenIdFederationEntityId</tt>. The value of
the name is an Octet String containing the UTF-8 encoding of the Entity
Identifier (i.e., the URI in the corresponding <tt>openid-federation</tt> ACME
Identifier from the <tt>newOrder</tt> request).</t>
      <artwork><![CDATA[
   id-on-OpenIdFederationEntityId OBJECT IDENTIFIER ::= { id-on XXX }

   OpenIdFederationEntityId ::= UTF8String
]]></artwork>
    </section>
    <section anchor="certificate-lifecycle">
      <name>Certificate Lifecycle</name>
      <t>The identity of the Requestor is verified through proof of possession of a
private key corresponding to a public key attested within a Trust Chain. The
Trust Chain has an expiration time, and its content <bcp14>MUST NOT</bcp14> be trusted past the
expiration time (<xref section="10.2" sectionFormat="of" target="OPENID-FED" relative="#section-10.2"/>).</t>
      <t>The <tt>notBefore</tt> and <tt>notAfter</tt> fields of issued certificates <bcp14>MUST</bcp14> represent
dates before the Trust Chain's expiration time. If the Requestor's newOrder
request (<xref section="7.4" sectionFormat="of" target="RFC8555"/>) contains <tt>notAfter</tt> or <tt>notBefore</tt> fields
that make this impossible, the Certificate Issuer <bcp14>MUST</bcp14> reply with an error of
type <tt>urn:ietf:params:acme:error:openIDFederationCertificateValidity</tt>.</t>
    </section>
    <section anchor="error-type">
      <name>Errors</name>
      <t>This document defines two new error type URIs to be used in problem documents
<xref target="RFC9457"/>, as described in <xref section="6.7" sectionFormat="of" target="RFC8555"/>.</t>
      <t>The error type <tt>urn:ietf:params:acme:error:openIDFederationEntity</tt> is used to
encapsulate any OAuth error code returned while resolving OpenID Federation
Entities. The title of this error type is "OpenID Federation Error". The
<tt>detail</tt> member of the problem document <bcp14>MAY</bcp14> include the description of the
particular OAuth error code that caused the error. The problem document for this
error type <bcp14>SHOULD</bcp14> include an extension member named <tt>error_code</tt>, which <bcp14>MUST</bcp14> be
set to the OAuth error code, taken from the error codes defined in
<xref section="8.9" sectionFormat="of" target="OPENID-FED" relative="#section-8.9"/>.</t>
      <t>The error type <tt>urn:ietf:params:acme:error:openIDFederationCertificateValidity</tt>
is used to indicate that a Certificate could not be issued because of a mismatch
between the requested period of validity and the expiration of the OpenID
Federation Trust Chain.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The <tt>openid-federation-01</tt> challenge defined in <xref target="challenge-type"/> defends
against replay attacks by malicious ACME servers because the signature in
challenge responses is over an ACME key authorization, which binds the ACME
account key.</t>
      <t>The cryptographic keys in the <tt>acme_requestor</tt> metadata <bcp14>SHOULD NOT</bcp14> be reused
for other purposes than signing responses to <tt>acme-federation-01</tt> challenges.
For example, the same keys <bcp14>SHOULD NOT</bcp14> be reused in the issued X.509 Certificate.
If the keys are reused for other purposes, cross-protocol attacks <bcp14>MUST</bcp14> be
considered.</t>
      <t>The cryptographic keys in the <tt>acme_requestor</tt> metadata <bcp14>SHOULD</bcp14> be rotated
periodically.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is kindly asked to make the following updates to registries:</t>
      <section anchor="acme-registry-group">
        <name>ACME Registry Group</name>
        <t>The following updates are all assignments in the "Automated Certificate
Management Environment (ACME) Protocol" registry group <xref target="IANA-ACME"/>.</t>
        <section anchor="acme-identifier-types">
          <name>ACME Identifier Types</name>
          <t>IANA is asked to add to the "ACME Identifier Types" registry, defined in
<xref section="9.7.7" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here in
<xref target="identifier-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Label</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openid-federation</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="acme-validation-methods">
          <name>ACME Validation Methods</name>
          <t>IANA is also asked to add to the "ACME Validation Methods" registry, defined
in <xref section="9.7.8" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here
in <xref target="challenge-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Label</th>
                <th align="left">Identifier Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openid-federation-01</td>
                <td align="left">openid-federation</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="acme-error-types">
          <name>ACME Error Types</name>
          <t>IANA is also asked to add to the "ACME Error Types" registry, defined
in <xref section="9.7.4" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here in
<xref target="error-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Type</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openIDFederationEntity</td>
                <td align="left">An error occurred while resolving an OpenID Federation entity</td>
                <td align="left">this document</td>
              </tr>
              <tr>
                <td align="left">openIDFederationCertificateValidity</td>
                <td align="left">A certificate was requested whose validity period is not before the OpenID Federation Trust Chain's expiry</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="assign-x509-pkix-other-name">
        <name>Assign X.509 PKIX Other Name</name>
        <t>IANA is asked to add to the "PKIX Other Name Forms" registry
(<eref target="https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.8">1.3.6.1.5.5.7.8</eref>) the entry below, as
specified here in <xref target="openidfed-othername-id"/></t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBA</td>
              <td align="left">id-on-OpenIdFederationEntityId</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="OPENID-FED" target="https://openid.net/specs/openid-federation-1_0-43.html">
          <front>
            <title>OpenID Federation 1.0 - draft 43</title>
            <author initials="R." surname="Hedberg" fullname="Roland Hedberg">
              <organization/>
            </author>
            <author initials="M. B." surname="Jones" fullname="Michael Jones">
              <organization/>
            </author>
            <author initials="A. Å." surname="Solberg" fullname="Andreas Solberg">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization/>
            </author>
            <author initials="G." surname="De Marco" fullname="Giuseppe De Marco">
              <organization/>
            </author>
            <author initials="V." surname="Dzhuvinov" fullname="Vladimir Dzhuvinov">
              <organization/>
            </author>
            <date year="2025" month="June" day="02"/>
          </front>
        </reference>
        <reference anchor="IANA-ACME" target="https://www.iana.org/assignments/acme">
          <front>
            <title>Automated Certificate Management Environment (ACME) Protocol</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-OAUTH" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </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="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="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </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="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="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </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="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
      </references>
    </references>
    <?line 606?>

<section anchor="end-to-end-issuance-flow">
      <name>End-to-end Issuance Flow</name>
      <t>~~~ BEGIN EDNOTE ~~~</t>
      <t>This appendix is to be removed before publication.</t>
      <t>This section contains explanatory material that recaps a lot of RFC 8555. It is
included here for the benefit of readers who are familiar with OpenID Federation
but not with ACME, and want to see at a glance how the whole thing fits
together.</t>
      <t>The following diagram illustrates a successful interaction between Issuer and
Requestor to retrieve an X.509 Certificate. The diagram assumes the Requestor
has already discovered the Issuer, and the Requestor has already created an
ACME account with the Issuer.</t>
      <t>This section is informational and non-normative. The remainder of this document,
<xref target="RFC8555"/> and <xref target="OPENID-FED"/> should be considered correct should this
appendix disagree with any of them.</t>
      <artwork type="ascii-art"><![CDATA[
,-----------------.
|Requestor's      |  ,-----------.
|OpenID Federation|  |Requestor's|               ,------------------------.  ,-----------------------.
| Web Server      |  |ACME Client|               |X.509 Certificate Issuer|  |Federation Trust Anchor|
`--------+--------'  `-----+-----'               `-----------+------------'  `-----------+-----------'
        |                  |           POST /acme/new-order  |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |Authorization at                 |                           |
        |                  |/acme/authz/[authz-id]           |                           |
        |                  |Finalize at                      |                           |
        |                  | /acme/order/[order-id]/finalize |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |                  | POST /acme/authz/[authz-id]     |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |  openid-federation-01 Challenge |                           |
        |                  |  at /acme/chall/[chall-id]      |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |                  ----.                             |                           |
        |                  |   | Sign challenge token        |                           |
        |                  |   | with private key            |                           |
        |                  <---'                             |                           |
        |                  |                                 |                           |
        |                  | POST /acme/chall/[chall-id]     |                           |
        |                  | with signed                     |                           |
        |                  | token and entity ID             |                           |
        |                  | set to Requestor's ID           |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |      Challenge validation       |                           |
        |                  |      beginning                  |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |          GET /.well-known/openid-federation        |                           |
        |<----------------------------------------------------                           |
        |                  |                                 |                           |
        |           Requestor's Entity Configuration         |                           |
        | - - -  - - - - - - - - - - - - - - - - - - - - - - >                           |
        |                  |                                 |                           |
        |                  |           ______________________________________________________
        |                  |           ! OPT  /  If Requestor didn't provide Trust Chain |  !
        |                  |           !_____/               |                           |  !
        |                  |           !                     |  Determine Trust Chain    |  !
        |                  |           !                     |  from Issuer's            |  !
        |                  |           !                     |  Trust Anchor to Requestor|  !
        |                  |           !                     |  (Federation Discovery)   |  !
        |                  |           !                     | <------------------------>|  !
        |                  |           !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Evaluate Trust Chain |
        |                  |                                 |<---'                      |
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Check                |
        |                  |                                 |    | Entity Configuration |
        |                  |                                 |    | sub matches          |
        |                  |                                 |    | Entity Identifier    |
        |                  |                                 |<---' in the order         |
        |                  |                                 |                           |
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Check challenge      |
        |                  |                                 |    | sig is signed        |
        |                  |                                 |    | with key in          |
        |                  |                                 |<---' Entity Configuration |
        |                  |                                 |                           |
        |  _________________________________________________________________________     |
        |  ! LOOP  /  Poll until authz status                |                      !    |
        |  !      /  is "valid" or "invalid"                 |                      !    |
        |  !_____/         |                                 |                      !    |
        |  !               |    POST-as-GET                  |                      !    |
        |  !               |    /acme/authz/[authz-id]       |                      !    |
        |  !               |--------------------------------->                      !    |
        |  !               |                                 |                      !    |
        |  !               |           Current authz status  |                      !    |
        |  !               |<---------------------------------                      !    |
        |  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!    |
        |                  |                                 |                           |
        |                  |                                 |                           |
        |  ___________________________________________________________________________   |
        |  ! OPT  /  If the authz status is "valid"          |                        !  |
        |  !_____/         |                                 |                        !  |
        |  !               | POST                            |                        !  |
        |  !               | /acme/orders/[order-id]/finalize|                        !  |
        |  !               | with CSR                        |                        !  |
        |  !               |--------------------------------->                        !  |
        |  !               |                                 |                        !  |
        |  !               |                                 |----.                   !  |
        |  !               |                                 |    | Check CSR         !  |
        |  !               |                                 |    | validity          !  |
        |  !               |                                 |    | according to      !  |
        |  !               |                                 |    | protocol          !  |
        |  !               |                                 |<---' and CA policy     !  |
        |  !               |                                 |                        !  |
        |  !               |                                 |                        !  |
        |  !               |  Order object with certificate  |                        !  |
        |  !               |  at /acme/cert/[cert-id]        |                        !  |
        |  !               |<- - - - - - - - - - - - - - - - -                        !  |
        |  !               |                                 |                        !  |
        |  !               |       POST /acme/cert/[cert-id] |                        !  |
        |  !               |--------------------------------->                        !  |
        |  !               |                                 |                        !  |
        |  !               |  Newly issued X.509 Certificate |                        !  |
        |  !               |<- - - - - - - - - - - - - - - - -                        !  |
        |  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!  |
,--------+--------.  ,-----+-----.               ,-----------+------------.  ,-----------+-----------.
|Requestor's      |  |Requestor's|               |X.509 Certificate Issuer|  |Federation Trust Anchor|
|OpenID Federation|  |ACME Client|               `------------------------'  `-----------------------'
| Web Server      |  `-----------'
`-----------------'
]]></artwork>
      <t>~~~ END EDNOTE ~~~</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Aaron Gable and Mike Ounsworth, for early and thorough reviews of this draft.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="D." surname="Cook" fullname="David Cook">
        <organization>ISRG</organization>
        <address>
          <email>divergentdave@gmail.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Ghani" fullname="Ameer Ghani">
        <organization>ISRG</organization>
        <address>
          <email>inahga@letsencrypt.org</email>
        </address>
      </contact>
      <contact initials="J.C." surname="Jones" fullname="J.C. Jones">
        <organization>ISRG</organization>
        <address>
          <email>ietf@insufficient.coffee</email>
        </address>
      </contact>
      <contact initials="T." surname="Geoghegan" fullname="Tim Geoghegan">
        <organization>ISRG</organization>
        <address>
          <email>timgeog+ietf@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
2/kfSIGWVT+EAAA=

-->

</rfc>
