<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-deshpande-secevent-http-multi-set-push-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="Push-multi-SET">Push-Based Delivery For Multiple Security Event Token (SET) Using HTTP</title>
    <seriesInfo name="Internet-Draft" value="draft-deshpande-secevent-http-multi-set-push-00"/>
    <author fullname="Apoorva Deshpande">
      <organization>Okta</organization>
      <address>
        <email>apoorva.deshpande@okta.com</email>
      </address>
    </author>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <date year="2025" month="September" day="15"/>
    <area>Security</area>
    <workgroup>Security Events</workgroup>
    <keyword>security event</keyword>
    <keyword>secevent</keyword>
    <abstract>
      <?line 47?>

<t>This specification defines how multiple Security Event Tokens (SETs) can be
delivered to an intended recipient using HTTP POST over TLS.  The SETs
are transmitted in the body of an HTTP POST request to an endpoint
operated by the recipient, and the recipient indicates successful or
failed transmission via the HTTP response.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://appsdesh.github.io/draft-deshpande-secevent-http-multi-set-push/draft-deshpande-secevent-http-multi-set-push.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-deshpande-secevent-http-multi-set-push/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Security Events Working Group mailing list (<eref target="mailto:id-event@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/id-event/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/id-event/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/appsdesh/draft-deshpande-secevent-http-multi-set-push"/>.</t>
    </note>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification defines a mechanism by which a transmitter of a Security Event Token (SET) <xref target="RFC8417"/> can deliver multiple SETs to an intended SET Recipient via HTTP POST <xref target="RFC7231"/> over TLS in a single POST call. <xref target="RFC8935"/> focuses on the delivery of the single SET to the receiver. This specification defines an efficient transport mechanism and builds onto <xref target="RFC8935"/> to transmit multiple SETs to the receiver in a single POST call.</t>
      <t>Push-Based delivery for multiple SETs is intended to help in following scenarios:</t>
      <ul spacing="normal">
        <li>
          <t>The transmitter of the SET has multiple outstanding SETs to be communicated to the receiver</t>
        </li>
        <li>
          <t>The transmitter wants to reduce the number of outbound calls to the same receiver to optimize performance, avoid being ratelimited when number of SETs to be communicated is high</t>
        </li>
        <li>
          <t>The receiver wants to optimize processing multiple SETs</t>
        </li>
      </ul>
      <t>This specification will handle all the usecases and scenarios for the <xref target="RFC8935"/> and make it more extensible to support multiple SETs per one outbound POST call.</t>
      <t>Similar to <xref target="RFC8935"/> this specification makes mechanism for exchanging configuration metadata such as endpoint URLs, cryptographic keys, and possible implementation constraints such as buffer size limitations between the transmitter and recipient is out of scope.</t>
    </section>
    <section anchor="push-endpoint-to-receive-multiple-sets">
      <name>Push endpoint to receive multiple SETs</name>
      <t>Each Receiver that supports this specification <bcp14>MUST</bcp14> support a new push endpoint that receives multiple SETs in a single call. This endpoint <bcp14>MUST</bcp14> be capable of serving HTTP POST <xref target="RFC7231"/> requests. This endpoint <bcp14>MUST</bcp14> be TLS <xref target="RFC8446"/> enabled and <bcp14>MUST</bcp14> reject any communication not using TLS.
The Transmitter obtains this endpoint from the Receiver outside the scope of this specification.</t>
    </section>
    <section anchor="set-delivery-semantics">
      <name>SET delivery semantics</name>
      <t>In this SET delivery using HTTP over TLS, zero or more SETs are delivered in a JSON <xref target="RFC8259"/> document
to the SET Receiver. The receiver either acknowledges the successful receipt of the SETs or indicates failure in processing of one or more SETs in a JSON document to the Transmitter.</t>
      <t>After successful (acknowledged) SET delivery, SET Transmitters are not required to retain or record SETs for retransmission. Once a SET is acknowledged, the SET Recipient <bcp14>SHALL</bcp14> be responsible for retention, if needed. Transmitters may also discard undelivered SETs under deployment-specific conditions, such as if they have not been acknowledged (successful or failure) for over too long a period of time or if an excessive amount of storage is needed to retain them.</t>
      <t>Upon receiving a SET, the SET Recipient reads the SET and validates it in the manner described in <xref section="2" sectionFormat="of" target="RFC8935"/>. The SET Recipient <bcp14>MUST</bcp14> acknowledge receipt to the SET Transmitter, and <bcp14>SHOULD</bcp14> do so in a timely fashion (e.g., miliseconds). The SET Recipient <bcp14>SHALL NOT</bcp14> use the event acknowledgement mechanism to report event errors other than those relating to the parsing and validation of the SET.</t>
      <section anchor="acknowledgement-for-all-sets">
        <name>Acknowledgement for all SETs</name>
        <t>A Transmitter <bcp14>MUST</bcp14> ensure that it includes the <tt>jti</tt> value of each SET it receives, either in an ack or a setErrs value, to the Transmitter from which it received the SETs. A Transmitter <bcp14>SHOULD</bcp14> retry sending the same SET again if it was never responded to either in an ack value or in a setErrs value by a receiver in a reasonable time period. A Transmitter <bcp14>MAY</bcp14> limit the number of times it retries sending a SET. A Transmitter <bcp14>MAY</bcp14> publish the retry time period and maximum number of retries to its peers, but such publication is outside the scope of this specification.</t>
      </section>
      <section anchor="uniqueness-of-sets">
        <name>Uniqueness of SETs</name>
        <t>A Transmitter <bcp14>MUST NOT</bcp14> send two SETs with the same <tt>jti</tt> value if the SET has been either acknowledged through ack value or produced an error indicated by a setErrs value. If a Transmitter wishes to re-send an event after it has received a error response through a setErrs value, then it <bcp14>MUST</bcp14> generate a new SET that has a new (and unique) jti value.</t>
      </section>
      <section anchor="transmitting-sets">
        <name>Transmitting SETs</name>
        <t>To transmit a SET to a SETs Recipient, the SET Transmitter makes an HTTP POST request to a TLS-enabled HTTP endpoint provided by the SET Recipient. The body of this request is of the content type <tt>"application/json"</tt> and the Accept header field <bcp14>MUST</bcp14> be <tt>"application/json"</tt>.</t>
        <t>A Transmitter may initiate communication with the receiver in order to:</t>
        <ul spacing="normal">
          <li>
            <t>Send SETs to the Receiver</t>
          </li>
          <li>
            <t>Receive acknowledgement of the SETs in response</t>
          </li>
        </ul>
        <t>It <bcp14>MAY</bcp14> contain the following fields:</t>
        <t><tt>sets</tt>
          <bcp14>OPTIONAL</bcp14>. A JSON object containing key-value pairs in which the key of a field is a string that contains the jti claim of the SET that is specified in the value of the field. This field <bcp14>MAY</bcp14> be omitted to indicate that no SETs are being delivered by the initiator in this communication. The Transmitter <bcp14>SHOULD</bcp14> limit 20 SETs in the sets.</t>
        <t>The following is a non-normative example of a response.</t>
        <artwork><![CDATA[
  {
    "sets": {
      "4d3559ec67504aaba65d40b0363faad8":
      "eyJhbGciOiJub25lIn0.
      eyJqdGkiOiI0ZDM1NTllYzY3NTA0YWFiYTY1ZDQwYjAzNjNmYWFkOCIsImlhdC
      I6MTQ1ODQ5NjQwNCwiaXNzIjoiaHR0cHM6Ly9zY2ltLmV4YW1wbGUuY29tIiwi
      YXVkIjpbImh0dHBzOi8vc2NpbS5leGFtcGxlLmNvbS9GZWVkcy85OGQ1MjQ2MW
      ZhNWJiYzg3OTU5M2I3NzU0IiwiaHR0cHM6Ly9zY2ltLmV4YW1wbGUuY29tL0Zl
      ZWRzLzVkNzYwNDUxNmIxZDA4NjQxZDc2NzZlZTciXSwiZXZlbnRzIjp7InVybj
      ppZXRmOnBhcmFtczpzY2ltOmV2ZW50OmNyZWF0ZSI6eyJyZWYiOiJodHRwczov
      L3NjaW0uZXhhbXBsZS5jb20vVXNlcnMvNDRmNjE0MmRmOTZiZDZhYjYxZTc1Mj
      FkOSIsImF0dHJpYnV0ZXMiOlsiaWQiLCJuYW1lIiwidXNlck5hbWUiLCJwYXNz
      d29yZCIsImVtYWlscyJdfX19.",
      "3d0c3cf797584bd193bd0fb1bd4e7d30":
      "eyJhbGciOiJub25lIn0.
      eyJqdGkiOiIzZDBjM2NmNzk3NTg0YmQxOTNiZDBmYjFiZDRlN2QzMCIsImlhdC
      I6MTQ1ODQ5NjAyNSwiaXNzIjoiaHR0cHM6Ly9zY2ltLmV4YW1wbGUuY29tIiwi
      YXVkIjpbImh0dHBzOi8vamh1Yi5leGFtcGxlLmNvbS9GZWVkcy85OGQ1MjQ2MW
      ZhNWJiYzg3OTU5M2I3NzU0IiwiaHR0cHM6Ly9qaHViLmV4YW1wbGUuY29tL0Zl
      ZWRzLzVkNzYwNDUxNmIxZDA4NjQxZDc2NzZlZTciXSwic3ViIjoiaHR0cHM6Ly
      9zY2ltLmV4YW1wbGUuY29tL1VzZXJzLzQ0ZjYxNDJkZjk2YmQ2YWI2MWU3NTIx
      ZDkiLCJldmVudHMiOnsidXJuOmlldGY6cGFyYW1zOnNjaW06ZXZlbnQ6cGFzc3
      dvcmRSZXNldCI6eyJpZCI6IjQ0ZjYxNDJkZjk2YmQ2YWI2MWU3NTIxZDkifSwi
      aHR0cHM6Ly9leGFtcGxlLmNvbS9zY2ltL2V2ZW50L3Bhc3N3b3JkUmVzZXRFeH
      QiOnsicmVzZXRBdHRlbXB0cyI6NX19fQ."
    }
  }
]]></artwork>
        <t><em>Figure 1: Example of SET Transmission</em></t>
        <t>In the above example, the Transmitter is sending 2 SETs to the Receiver.</t>
        <artwork><![CDATA[
  {
    "sets": {},
  }
]]></artwork>
        <t><em>Figure 2: Example of empty SET transmission</em></t>
        <t>In the above example, the Transmitter is sending zero SETs to the Receiver. This placeholder/empty request provides the Receiver to respond back with ack/err for previously transmitted SETs</t>
        <t>The SET Transmitter <bcp14>MAY</bcp14> include in the request an Accept-Language header field to indicate to the SET Recipient the preferred language(s) in which to receive error messages.</t>
      </section>
      <section anchor="response-communication">
        <name>Response Communication</name>
        <t>A Receiver <bcp14>MUST</bcp14> repond to the communication by sending an HTTP response. The body of this response is of the content type <tt>"application/json"</tt>. It <bcp14>MAY</bcp14> contain the following fields:</t>
        <t><tt>ack</tt>
          <bcp14>OPTIONAL</bcp14>. An array of strings, in which each string is the <tt>jti</tt> value of a previously received SET that is acknowledged in this object. This array <bcp14>MAY</bcp14> be empty or this field <bcp14>MAY</bcp14> be omitted to indicate that no previously received SETs are being acknowledged in this communication.</t>
        <t><tt>setErrs</tt>
          <bcp14>OPTIONAL</bcp14>. A JSON object containing key-value pairs in which the key of a field is a string that contains the <tt>jti</tt> value of a previously received SET that the sender of the communication object was unable to process. The value of the field is a JSON object that has the following fields:</t>
        <t><tt>err</tt>
          <bcp14>OPTIONAL</bcp14>. The short reason why the specified SET failed to be processed. Error codes are described in Section 2.4 of <xref target="RFC8935"/>.</t>
        <t><tt>description</tt>
          <bcp14>OPTIONAL</bcp14>. An explanation of why the SET failed to be processed</t>
        <t>The response <bcp14>MUST</bcp14> include a Content-Language header field whose value indicates the language of the error descriptions included in the response body. If the SET Recipient can provide error descriptions in multiple languages, they <bcp14>SHOULD</bcp14> choose the language to use according to the value of the Accept-Language header field sent by the SET Transmitter in the transmission request, as described in Section 5.3.5 of <xref target="RFC7231"/>. If the SET Transmitter did not send an Accept-Language header field, or if the SET Recipient does not support any of the languages included in the header field, the SET Recipient <bcp14>MUST</bcp14> respond with messages that are understandable by an English-speaking person, as described in Section 4.5 of <xref target="RFC2277"/>.</t>
        <section anchor="success-response">
          <name>Success Response</name>
          <t>If the Receiver is successful in processing the request, it <bcp14>MUST</bcp14> return the HTTP status code 202 (Accepted). The response <bcp14>MUST</bcp14> have the content-type <tt>"application/json"</tt>.</t>
          <artwork><![CDATA[
  HTTP/1.1 202 Accepted
  Content-type: application/json

  {
    "ack": [
      "3d0c3cf797584bd193bd0fb1bd4e7d30"
    ]
  }
]]></artwork>
          <t><em>Figure 3: Example of SET Transmission response with ack</em></t>
          <t>In the above example, the Receiver acknowledges one of the SETs it previously received. There are no errors reported by the Receiver.</t>
          <artwork><![CDATA[
  HTTP/1.1 202 Accepted
  Content-type: application/json

  {
     "ack": [
      "f52901c499611ef94540242ac12000322",
      "0636e274399711ef9454-0242ac120002",
      "d563c72479a04ff0ba415657fa5e2cb11"
     ],
     "setErrs": {
      "4d3559ec67504aaba65d40b0363faad8" : {
        "err": "invalid_key",
        "description": "Failed validation"
      }
     }
  }
]]></artwork>
          <t><em>Figure 4: Example of SET Transmission response, ack and errors</em></t>
          <t>In the above example, the Receiver acknowledges three of the SETs it previously received. There are errors reported by the Receiver for acklowledging one SET.</t>
        </section>
        <section anchor="failure-response">
          <name>Failure Response</name>
          <t>In the event of a general HTTP error condition, the SET Recipient responds with the applicable HTTP Status Code, as defined in Section 6 of <xref target="RFC7231"/>.</t>
          <t>When the SET Recipient detects an error parsing, or authenticating a SET transmitted in a SET Transmission Request, the SET Recipient <bcp14>SHALL</bcp14> respond with an HTTP Response Status Code of 400 (Bad Request). The Content-Type header field of this response <bcp14>MUST</bcp14> be <tt>"application/json"</tt>, and the body <bcp14>MUST</bcp14> be a UTF-8 encoded JSON <xref target="RFC8259"/> object containing the following name/value pairs:</t>
          <t><tt>err</tt>
            <bcp14>OPTIONAL</bcp14>. The short reason why the API failed to process the request. (Not specific to any SETs, but usually indicate service level failure or processing error)</t>
          <t><tt>description</tt>
            <bcp14>OPTIONAL</bcp14>. A UTF-8 string containing a human-readable description of the error that may provide additional diagnostic information. The exact content of this field is implementation specific.</t>
          <t>Note that failure responses in this specification are not specific to any failures related to any specific SET processing. SET specific errors should be communicated by a success response payload defined in the <xref target="success-response"/> Section.</t>
          <t>Example error codes that can indicate API level failures <bcp14>MAY</bcp14> include but not limited to:</t>
          <ul spacing="normal">
            <li>
              <t>invalid_request (request is malformated)</t>
            </li>
            <li>
              <t>authentication_failed (authentication token provided by the Trasnmitter is expired, revoked or invalid)</t>
            </li>
            <li>
              <t>access_denied (The transmitter does not have adequate permissions to invoke this API call).</t>
            </li>
            <li>
              <t>many_sets (Transmitter included too many SETs in a single request, this is an idication for the transmitter to make a request with lower number of SETs or to comply with max SETs count that receiver published outside of this spec)  </t>
              <artwork><![CDATA[
HTTP/1.1 400 Bad Request
Content-Language: en-US
Content-Type: application/json

{
  "err": "authentication_failed",
  "description": "Access token has expired."
}
]]></artwork>
            </li>
          </ul>
          <t>_Figure 5: Example Error Response (authentication_failed)</t>
          <t>Above non-normative example error response indicating that the access token included in the request is expired.</t>
          <section anchor="out-of-order-delivery">
            <name>Out of order delivery</name>
            <t>A Response may contain <tt>jti</tt> values in its ack or setErrs that do not correspond to the SETs received in the same Request to which the Response is being sent. They <bcp14>MAY</bcp14> consist of values received in previous Requests.</t>
          </section>
        </section>
        <section anchor="error-response">
          <name>Error Response</name>
          <t>The receiver <bcp14>MUST</bcp14> respond with an error response if it is unable to process the request. The error response <bcp14>MUST</bcp14> include the appropriate error code as described in <xref section="2.4" sectionFormat="of" target="RFC8935"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="authn-and-authz">
      <name>Authentication and Authorization</name>
      <t>The Transmitter <bcp14>MUST</bcp14> verify the identity of the Receiver by validating
the TLS certification presented by the Receiver, and verifying that
it is the intended recipient of the request, before sending the SETs.</t>
      <t>The Transmitter <bcp14>SHOULD</bcp14> attempt to obtain the OAuth Protected Resource
Metadata <xref target="RFC9728"/> for the Receiver's Push-Based delivery for multiple SETs endpoint.  If such metadata is found, the Transmitter <bcp14>MUST</bcp14> obtain an access token using the metadata.
If no such metadata is found, then the Transmitter <bcp14>MAY</bcp14> use any means to
authorize itself to the Receiver.</t>
    </section>
    <section anchor="delivery-reliability">
      <name>Delivery Reliability</name>
      <t>A Transmitter <bcp14>MUST</bcp14> attempt to deliver any SETs it has previously attempted to deliver to a Receiver until:
   - It receives an acknowledgement through the ack value for that SET in a subsequent communication with the Receiver
   - It receives a setErrs object for that SET in a subsequent communication with the Receiver
   - It has attempted to deliver the SET a maximum number of times and has failed to communicate either due to communication errors or lack of inclusion in ack or setErrs in subsequent communications that were conducted for the maximum number of times. The maximum number of attempts <bcp14>MAY</bcp14> be set by the Transmitter for itself and <bcp14>SHOULD</bcp14> be communicated offline to the Receivers</t>
      <t>Additionally consider Delivery Relieability aspects discussed in <xref section="4" sectionFormat="of" target="RFC8935"/> .</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?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="too-many-sets-in-the-response">
        <name>Too many SETs in the response</name>
        <t>This mechanism allows a transmitter to send a large number of SETs in a single request. A malicious or misconfigured transmitter could send an extremely large payload, attempting to exhaust memory or CPU resources on the receiver during JSON parsing or JWT validation.</t>
        <t>Receivers <bcp14>MUST</bcp14> protect themselves against such attacks. It is <bcp14>RECOMMENDED</bcp14> that Receivers establish and document a reasonable upper limit on the number of SETs they will process in a single call. Transmitter <bcp14>MUST</bcp14> obey the maximum number of SETs to be communicated to the receiver. This will avoid any potential truncations/loss of information at the receiver.</t>
        <t>If a Receiver receives a batch exceeding this limit, it <bcp14>SHOULD</bcp14> reject the entire request with a <tt>413 Payload Too Large</tt> HTTP status code.</t>
      </section>
      <section anchor="authentication-and-authorization">
        <name>Authentication and Authorization</name>
        <t>Transmitter <bcp14>MUST</bcp14> follow the procedures described in section <xref target="authn-and-authz"/> in order to securely authenticate and authorize Receiver</t>
      </section>
      <section anchor="http-and-tls">
        <name>HTTP and TLS</name>
        <t>Transmitter <bcp14>MUST</bcp14> use TLS <xref target="RFC8446"/> to communicate with Receiver and is subject to the security considerations of HTTP <xref section="17" sectionFormat="of" target="RFC9110"/>.</t>
      </section>
      <section anchor="event-delivery-latency">
        <name>Event Delivery Latency</name>
        <t>The primary purpose of security event tokens is the timely communication of security-sensitive information. While this specification enables batching for efficiency, Transmitters <bcp14>MUST NOT</bcp14> unduly delay the transmission of events in an attempt to create larger batches.</t>
        <t>Delaying the transmission of a time-sensitive event, such as a credential compromise or session revocation, defeats the purpose of the protocol and provides an adversary with a larger window of opportunity to act.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that Transmitters implement a batching policy that sends a pending batch of SETs when either of the following conditions is met:
    - The number of SETs in the batch reaches a configured size limit.
    - A configured amount of time (e.g., 1-2 seconds) has elapsed since the oldest SET in the batch was generated.</t>
        <t>This ensures a balance between network efficiency and the real-time nature of the communication.</t>
      </section>
      <section anchor="information-disclosure-in-error-responses">
        <name>Information Disclosure in Error Responses</name>
        <t>The <tt>setErrs</tt> is designed for debugging and provides valuable feedback. However, if implemented incorrectly, it can become a souce of information leakage, disclosing internal details or enable enumeration type attacks.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that the <tt>setErrs</tt> information is helpful without revealing sensitive information about internal architecture.</t>
      </section>
      <section anchor="event-ordering-and-processing-guarantees">
        <name>Event Ordering and Processing Guarantees</name>
        <t>This specification is a transport efficiency mechanism and it does not address transactional aspects of the request. Every SET is an independent event in the request to the receiver. The event ordering in the request does not imply any chronological depependence. For chronological dependence the receiver should look at the time related event claims.The</t>
        <t>The Transmitter should not assume the ordered processing of the SETs by the receiver sub-systems. This specification does not add any transactional requirements on the receiver.</t>
        <t>Additional security consideration in <xref section="5" sectionFormat="of" target="RFC8935"/>.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Privacy Considerations from <xref section="6" sectionFormat="of" target="RFC8935"/> apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC8417">
        <front>
          <title>Security Event Token (SET)</title>
          <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="W. Denniss" initials="W." surname="Denniss"/>
          <author fullname="M. Ansari" initials="M." surname="Ansari"/>
          <date month="July" year="2018"/>
          <abstract>
            <t>This specification defines the Security Event Token (SET) data structure. A SET describes statements of fact from the perspective of an issuer about a subject. These statements of fact represent an event that occurred directly to or about a security subject, for example, a statement about the issuance or revocation of a token on behalf of a subject. This specification is intended to enable representing security- and identity-related events. A SET is a JSON Web Token (JWT), which can be optionally signed and/or encrypted. SETs can be distributed via protocols such as HTTP.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8417"/>
        <seriesInfo name="DOI" value="10.17487/RFC8417"/>
      </reference>
      <reference anchor="RFC7231">
        <front>
          <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2014"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7231"/>
        <seriesInfo name="DOI" value="10.17487/RFC7231"/>
      </reference>
      <reference anchor="RFC8935">
        <front>
          <title>Push-Based Security Event Token (SET) Delivery Using HTTP</title>
          <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
          <author fullname="M. Jones" initials="M." role="editor" surname="Jones"/>
          <author fullname="M. Scurtescu" initials="M." surname="Scurtescu"/>
          <author fullname="M. Ansari" initials="M." surname="Ansari"/>
          <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
          <date month="November" year="2020"/>
          <abstract>
            <t>This specification defines how a Security Event Token (SET) can be delivered to an intended recipient using HTTP POST over TLS. The SET is transmitted in the body of an HTTP POST request to an endpoint operated by the recipient, and the recipient indicates successful or failed transmission via the HTTP response.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8935"/>
        <seriesInfo name="DOI" value="10.17487/RFC8935"/>
      </reference>
      <reference anchor="RFC9110">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </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>
      <reference anchor="RFC9728">
        <front>
          <title>OAuth 2.0 Protected Resource Metadata</title>
          <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
          <author fullname="P. Hunt" initials="P." surname="Hunt"/>
          <author fullname="A. Parecki" initials="A." surname="Parecki"/>
          <date month="April" year="2025"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9728"/>
        <seriesInfo name="DOI" value="10.17487/RFC9728"/>
      </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="RFC2277">
        <front>
          <title>IETF Policy on Character Sets and Languages</title>
          <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
          <date month="January" year="1998"/>
          <abstract>
            <t>This document is the current policies being applied by the Internet Engineering Steering Group (IESG) towards the standardization efforts in the Internet Engineering Task Force (IETF) in order to help Internet protocols fulfill these requirements. 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="18"/>
        <seriesInfo name="RFC" value="2277"/>
        <seriesInfo name="DOI" value="10.17487/RFC2277"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 341?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71c61IbyZL+r6eoxT/W3kBCFy6GOHvOwWBsHCAZEGCYcIxL
3SWpoG/T1Y0QDr/LPss+2WZmXbpaEox9dnbnxxi6q7OysvLyZVYWzWazUcgi
Ents7XOpps13XImQHYpIPoh8zo7SnJ2WUSGzSLALEZS5LObs/YNICjZM70XC
Xl+8H75hl0omE/ZxOPy81uCjUS4eLMEYv27CoLVGwAsxSfP5HlNF2GiEaZDw
GGYOcz4umqFQ04wnoWgqEQicoTktiswQUKJoZkgvAiKqaKhyFEulZJoU8wxo
HL8fHjWSMh6JfK8Rwpi9BrDQa/BccGDFsr7WmKX5/SRPy8x7qhek1hr3Yg7v
w70GazJlXxIv5on+Gf5XwgSMPUuIMc3W2jVMh6L5gCPxecxlBM9l2CRa/5Si
GLfSfILveB5M4R0uW+1tbOBQfARb0bLDNvDBxihPZ0psWCIb+PFEFtNyBJ/z
LFMozI1fkStS0KL1GLCUWpp2S6a/RPOXBremRRytNRq8LKZpjjsAHDE2LqNI
a8l+lqb5AwfdNOToPYiEJ/KJF6AJe2xwX3B6LLSYuf6m5Vj4ZwojWkEar6DP
8zRhn0Fhgnv5M7Rx/D8zPZ5INpI0j2H0A+kGOz86eLvZ2bE/73R7Hfd8t7dl
f97tdNrV+M1t93yn+9Y9727t2p+73R2g2ZDJuJqt0Wg2m4yPVJHzoGg0hlOp
mMpEIMcyIP5ZKMYyEYpN0xmLX7JoRSat3rCAJ2wkGqH2BeAVipTBI5kUAiQZ
Mli4zCR+VzrrZ58HF0OWwng2PLloMTacwixADg2RAXeJimVRwNcyYQW8G6Xh
nKVjJFx9n4s/StBEMyHMlqUwayPNRM7x29GcvnUMrMOwsP4I6Ie4dFixKoNA
KAU7DTvaGMPm4Vo0K+RB2IPk9DVxkAuVpYkSLS3UWIZhJBqNV+w4KfI0LAMU
54si5iwWwRRUR8XI6mwqgyk8rFaf04pf8qffvxvt+fGD9sFsgrdzINPFDYFn
7NwJABdViZQIogoCQbs9uAec4d4BQRoV8ChqmclBRWHsOA1KBWtK9XaFNjDA
AvB38zHODMyYHRA4pMVekhDs6hieEqMklyzNC09suJ+jUkYhzgyUfZZwIiPK
ZXn4LDyzvkbDi3RuQWBNC9SAeydaoDwVUYYUx2kUpTNUeBWIhOcyVWCATdL0
hS0utPKzKVcV7bQsVAHrQwqW65Fg4EDiMiGVDRcXsoL6jEOcwXFgmGUgaLgO
fzgxzDFKS5AhLtjJRYGfq4QDD9OskLF8EgwMi7xJEgiwpYdUgvQFMoj2FsEY
ZGo2BfWs5niOdxDbVE6mhmc3nWO4mjRP0S5xmprgV9rWTEYRyDEBW2SwJloP
KGbAFalTWG0G7SS+9nUGR8T8XjDUmRRckXiEnVVyBOSAJ1VmWgFrCpDhQhNR
SdPXoQtYBERntqicy6zjvMrTbeRPPOJvE1x7kCZjOSlzM1gUHOALR68FTkM5
78cuz0/UOgvyeVakk5xn4FUY4BWlnV+WKr0aGQP/MdiVpgfUMShIFL4lOSrH
Y1iawk2gzaWh8FwUMyG0ofu6hvQ9x6pQIKgBKgCP3ELXiAZVcUpaSdu+uLHv
OXBw7jRwygsrerVKcqeXIG+7N5wlYsay+kxIwcylFs3XM37t10it3LdEHJWX
ZxwFhwsS+UM9kvlu00Ql9Rwh9KjGb29uw3jQxxGGGhQfjcnFnQhgIcncsxhc
Z5LaGIpBs4F2M/Q9yaiADTQSctOO8zSmrXLyRM8iQ+0LaG+0D1oUK+wYbBn6
Jef8FGCapJABbNFxoj+pvfcCvA0e6+xJ5GDNubYnEjnG+Aou0AZ8uhj0jVQA
w4BUAPWXqJ4N45RM0HIxw3MZAlAnql9wn6QzkOREKL22KqDT2KzwnK1Clqrg
j+G+BLaAGc/foItEw/aZr9i1LFq/6e0FyG5/jHvi8fDaYzB8UxPcOv3mfa9l
hPuN2iQNqsoFbjCyA+uB/EMzNKbffaDSYgPw0IgcgCrskT/xui9NY6oXH/dP
TlA1DaYhB2HIwnuguM7kGOxKQIxr1fmM+RwcrUpZKFXAgSdwgG5riT98kMNS
syido7iaVsvQ6YSSfMq6czqSdmgOPvxBC2CErsZfAXtdQ2p2694Qx6kOWSmL
Utg/jr5ZpiHtu4xpJyWBSHCsuMcwB4/BZ2s/VaQ5nwiUmF6qJ3PgKYZNvQTx
GMWTRB9WuEqikE2Gyj1Hy37gkQxJ1WRhQS0YU0KiUUEuR9oUvn8HuEfW3kWe
XMRoWYjszULewhONU3PPZrzN0hHg4uPg8uQQlJfBppEyo2QiQDZcTXHe16I1
aa0DoI0kBE7YIvVm1eRaafqDIcZXmo5yNp8fMo4qoJE0yUfrkSLPU9CglKwX
XDQKJVW4CsgwUbxmGZA7kTV6YkQ+K1vG2PKK7S9MjOqAEIBCyn7NU5LgIK6j
xVNsoD0JojI0ruPbXSG/4WQlOUeB8YiMqQoj69bvoAxJQ1G7IJSI4n0Oy6KP
11f4Bu2RNdqv6IXOMbVYnVmzYWji6IE1InQ4jfRrgioKig3kZhy1F61AG7NR
4yVezdos+PWZxmSEL6BjUGiVUqDShqTtapHV0/0bjRQWcCZ+ovRii1xirmWW
QQa0ikpWjkD9pgbe4sq9aQ1Me5RxGXuzWOKwXFkgLAP/tA4optDOhUiaSKrB
yU9GQdCty0RCUIeURFlIu0qj0BhwZayYpdr3zUDs1V75WiXrsJ+83HIgQ63I
03Iyre9ZRgkmYQZtRS6ShXrzavvZYseYRvrszkC2wuQFTWIZKWn7pbgFe4Vs
OeXkZh6b9VZ8LSk8wn9pnNMEZIa5gUFllP+hvSFt/eg17mVJ4n3DQD6GZZK6
49jmQAD5vaSO23ySa2GfV3n+Cu9n8PWzBQQEK02LxWiIg1Ag7gcZVgWFmiPU
vtHWJ0iBLFmprJMCN1oQUpiDnn3D0ptVxY07sKu1b64ysQ+hDTz4FAIIugop
otAhx1UfItJYWOYctAHCKoq9jh+dNvq2DTiCQiYkp6zJ2AUqg58lW9BFb80v
S07ex1UycVoCJI8LsmcUgImjXmZMy8O0+BsokfrWGHweHg/6+yfoEQhipSOC
wuZr/ARSmaa2g4zLnGbTrhQpw0tdMtFyQ+gDUT3XDpM7OtrHo7IFEZexn4Lr
aOB8QFWAcrGAVoDkDb43WwRrhB1KTdUKXZCxSE0ySSvoq1PmCiUZrTKbpl0y
6VFt97SerQgM2uF220765G9AngjghzV5k0CSNGm6CiQAIR5nOq3hfk2L0X/f
zb+MrSHFtT3vCTzbDHtbW7si2N7Zam9yPuLbW+Fme9TubffGnIdv1/b80WL+
aTr6EMiB/FSOulvRcdJuee/h9R/hh3t4fdy+PTzt9IdRdPN00+sP99s310fy
ZnjTuT08m93c7T/17/oxPLsfHByr4ziahgceoePt0+FZZ3B4ttW/O5v1D2aS
f+k/Hd+lkn88bwcfT7dP5rtPN92oOImvNm+uO7PRh8vyprtbHMuZ9AjdfLm6
P77LRsfxtB1+fPc0kG8fgm4/G11sReLDURF8eIxO4v7D6GL3w+311X0wf7s1
+HDWOb07655ee4Rup/3rT/LmadIbDC+3TrvHvf7TZRtn+zOOTtq3kU/o+vzp
5Onqvv90M+sfXj724+PH28P9TVgo/Au8Pd1Gt8NAfrmYydsvt9EoOYeFZzvH
ydV8dOcRyrLbL+fxIHk3DWJYyFNGsw/iq+7t9VZ7EPfnt9dH7duL423YFvj5
BnctDT+ez4Kn9MEjdNLr3/Hrdnn7ZTodfXmnbi+27kbd9sPVl34UJKcP/cPz
uH/3vn0aw3TDW3l7eDu9ubt5BC5BTh4h2MwL3MwjEPWn7Ca5at9+OZWDSEl+
fSZPDj6VIJcIZRYi6fut6ej6Ep/PbmB3PUJhd3d+S3pxVdxcRyqYfwrHXzq7
rbV1Xxt7YTvoBeOd3Z2tt5ujsLPbG4Xt8agzCjfFTthr/6u6+3R7+O7utNuP
+0/3oLuT9k189jgY9mHl7+KbuyP49zzqd8+eTv9Md/fn/Yu/VHd5PO3cyP8L
3f2Df7ySf6HuBr0rWV+0R+gZS+lcPd1++QRTnLVvQcH6h5/ub+/uuyD+7s31
MSzqErbj+NHn6PAeFSgK46sy/AjKBqlv+OVTOYijKPxwsx18OJrDFE+DhHR8
W1vUGT5/Cnq+yj0E8fnFLehleEAWk4ECbh/fvcwJTj++qO2aJ9LFXdKL7moD
PemB4fb6vVHv0/1ljAs/PxIfPUJntJhAv3oHdhuBcbaD+fF2H0xhfNZac4N/
NOy/jd+PsMIoWGePva/iggekqLzwu6n+AAwYpVUIWV9KdGQF9LsrMcVLcebH
+jJf3RpfIs6KuY7a/0vuqES1kkEd47OIB2KaRoCUNvSsFuIZaKjqFTbC1ZR9
sRECdwJe8MMGgGjKS7NcPMi0VJB2+4ddtqy9DF4RX5gM1YZ4ywIgWg0amyc8
mZRYwaihxxoWSZcBrM6xczEG5oCHyBB5rd544Koq1eo8API5BYOUBurnNis4
8BELIlMnElPZJJkYLurgdFQltxajOziyCmKbGX8BY7d+FozCTtWwKCTAec7n
ukaEaBLSSicaqg0YkClXVg+4v90uo/LRZi3js+hPY1+jgZoBgzK1CtLxxa8A
0Ge48EHpSkbqMFSDdcz4/p/x+q9JVYNgKj06/fDVzXCK5ZLS1DVSW/rV+raM
+DWD/kJdMvucKoG1+GJCumqKJTBdUAFZaPBf5Ru4Anv4TKdmhimsvL4n2wtS
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
X/NpNf4He1Fd+L5KAAA=

-->

</rfc>
