<?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.36 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-deshpande-secevent-http-multi-set-push-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Push-multi-SET">Push-Based Delivery For Multiple Security Event Tokens (SET) Using HTTP</title>
    <seriesInfo name="Internet-Draft" value="draft-deshpande-secevent-http-multi-set-push-02"/>
    <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="2026" month="May" day="06"/>
    <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 request. <xref target="RFC8935"/> focuses on the delivery of the single SET to the Receiver. When sending a large number of SETs, sending them one by one is inefficient. This specification defines a way to send batches of SETs in a single POST request for more efficient transport.</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 requests 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>
        <li>
          <t>The Receiver wants to acknowledge or provide error responses to previously received SETs, but wants to do so asynchronously, rather than within the response to the same HTTP POST in which it received the SET</t>
        </li>
      </ul>
      <t>This specification will handle all the use cases and scenarios for the <xref target="RFC8935"/> and make it more extensible to support multiple SETs per one outbound POST request.</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 but is expected to be defined by profiles of this specification.</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="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 request. 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 is 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, a Transmitter delivers zero or more SETs in a JavaScript Object Notation (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>The Transmitter <bcp14>SHOULD</bcp14> periodically send a request with zero SETs to allow the Receiver to respond back with an ack or err for previously transmitted SETs that have not yet been acknowledged.</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. If a Transmitter receives an acknowledgement or error for a SET it has no record of, the Transmitter <bcp14>MUST</bcp14> ignore that acknowledgement or error.</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 Receiver <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 SETs in response</t>
          </li>
        </ul>
        <t>It <bcp14>MUST</bcp14> contain the following fields:</t>
        <section anchor="sets">
          <name>The <tt>sets</tt> Field</name>
          <t><bcp14>REQUIRED</bcp14>. A JSON object containing key-value pairs in which the key of a field is a string that contains the <tt>jti</tt> claim of the SET that is specified in the value of the field. This field <bcp14>MAY</bcp14> be an empty object to indicate that no SETs are being delivered by the initiator in this communication. The maximum number of SETs in a push <bcp14>MAY</bcp14> be set by the Transmitter for itself and <bcp14>SHOULD</bcp14> be communicated offline to the Receivers.</t>
          <t>The following is a non-normative example of a request.</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 message descriptions.</t>
        </section>
      </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 contains the following fields:</t>
        <t><tt>ack</tt>
          <bcp14>REQUIRED</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 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>REQUIRED</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>If the response contains a <tt>description</tt>, then 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>REQUIRED</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><tt>invalid_request</tt> (request is malformed)</t>
            </li>
            <li>
              <t><tt>authentication_failed</tt> (authentication token provided by the Transmitter is expired, revoked or invalid)</t>
            </li>
            <li>
              <t><tt>access_denied</tt> (The Transmitter does not have adequate permissions to invoke this API).</t>
            </li>
            <li>
              <t><tt>too_many_sets</tt> (Transmitter included too many SETs in a single request, this is an indication 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 certificate presented by the Receiver during the TLS handshake, and verifying that
it is the intended recipient of the request, before sending the SETs.</t>
      <t>How the Transmitter and Receiver agree on authorization of the request is out of scope of this document.</t>
      <t>This section describes server-side authentication of the Receiver by the Transmitter. Authentication of the Transmitter by the Receiver (e.g., via OAuth tokens, mutual TLS, or other mechanisms) is out of scope of this document and is expected to be defined by profiles of this specification.</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:</t>
      <ul spacing="normal">
        <li>
          <t>It receives an acknowledgement through the ack value for that SET in a subsequent communication with the Receiver</t>
        </li>
        <li>
          <t>It receives a setErrs object for that SET in a subsequent communication with the Receiver</t>
        </li>
        <li>
          <t>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>
        </li>
      </ul>
      <t>Additionally consider Delivery Reliability aspects discussed in <xref section="4" sectionFormat="of" target="RFC8935"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations of <xref target="RFC8935"/>, <xref target="RFC8446"/>, and <xref section="17" sectionFormat="of" target="RFC9110"/> apply to this specification.</t>
      <section anchor="too-many-sets-in-the-request">
        <name>Too many SETs in the request</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 SET 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 request. 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>
        <t>How the Receiver conveys this upper limit to Transmitters is outside the scope of this specification (see <xref target="sets"/> for the <tt>sets</tt> field definition).</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>
        <t>Failure to properly validate the Receiver's TLS certificate could allow a Transmitter to send SETs to an impersonating endpoint, resulting in the disclosure of sensitive security event information to an unauthorized party.</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:</t>
        <ul spacing="normal">
          <li>
            <t>The number of SETs in the batch reaches a configured size limit.</t>
          </li>
          <li>
            <t>A configured amount of time (e.g., 1-2 seconds) has elapsed since the oldest SET in the batch was generated.</t>
          </li>
        </ul>
        <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 <tt>setErrs</tt> information be designed to be 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 dependence. For chronological dependence the Receiver should look at the time related event claims.</t>
        <t>A 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 358?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge the following individuals
who contributed ideas, feedback, and wording that shaped and formed the final specification:</t>
      <t>Atul Tulshibagwale, Yair Sarig, Yaron Sheffer.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
dj4T+MUXWP7/AQjmxsXtUAAA

-->

</rfc>
