<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zollner-scim-interop-profile-02" category="std" consensus="true" updates="7643" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="SCIM Interop Profile">SCIM 2.0 Interoperability Profile</title>
    <seriesInfo name="Internet-Draft" value="draft-zollner-scim-interop-profile-02"/>
    <author initials="D." surname="Zollner" fullname="Danny Zollner">
      <organization>Okta</organization>
      <address>
        <email>danny.zollner@okta.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Applications and Real-Time</area>
    <workgroup>SCIM</workgroup>
    <keyword>scim</keyword>
    <keyword>provisioning</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 40?>

<t>This document defines an implementation profile for the System for Cross-domain Identity Management (SCIM) 2.0. In the typical deployment model, an identity provider acting as a SCIM Client provisions and manages identities at multiple downstream service providers, while each service provider (commonly a multi-tenant application serving many customers) accepts provisioning connections from multiple different identity providers. This many-to-many integration model compounds the interoperability challenges arising from the wide range of optional features and implementation variations permitted by the base specification. This profile addresses those challenges by restricting the optional features and protocol variations permitted under the base specification and by establishing normative requirements for a common implementation baseline.</t>
    </abstract>
  </front>
  <middle>
    <?line 44?>

<section anchor="discussion-venues">
      <name>Discussion Venues</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>Source for this draft and an issue tracker can be found at https://github.com/Zollnerd/scim-interop-profile.</t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The SCIM 2.0 standard <xref target="RFC7643"/>, <xref target="RFC7644"/> provides a framework for automating identity provisioning across organizational boundaries. While the base specification's flexibility enables broad applicability, it also permits a wide range of implementation choices — in areas such as <tt>PATCH</tt> syntax, pagination, filtering, case sensitivity, and error handling — that have proven to be common sources of interoperability failure in practice. Where implementations diverge on these points, the result is integrations that require bespoke configuration and maintenance for each pairing.</t>
      <t>This document specifies a profile for SCIM 2.0 that addresses these challenges by establishing required capabilities and restricting protocol variations that have proven problematic. Implementations conforming to this profile can be expected to interoperate without protocol-level customization.</t>
    </section>
    <section anchor="notational-conventions">
      <name>Notational Conventions</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="scope-and-conformance">
      <name>Scope and Conformance</name>
      <t>This profile applies to SCIM 2.0 Service Providers and Clients.</t>
      <t>This profile defines protocol behavior that is independent of the data being provisioned. It does not define which attributes a Service Provider requires, which attribute values a Client must send, or how a Client authenticates to a Service Provider beyond the requirements in the Security Considerations section. Profiles for specific use cases, such as the IPSIE SCIM Account Lifecycle profile, define those requirements and may be used together with this profile. Unless a requirement states otherwise, the requirements in this document apply to every resource type that a Service Provider implements, including resource types defined outside <xref target="RFC7643"/>.</t>
      <t>Absolute requirements and prohibitions in this document, expressed using the BCP 14 keywords "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", and "<bcp14>REQUIRED</bcp14>" as defined in the Notational Conventions section above, are addressed to Service Providers, Clients, or both. A Service Provider is conformant with this profile if it satisfies all such requirements addressed to Service Providers and all such requirements addressed to both roles. A Client is conformant with this profile if it satisfies all such requirements addressed to Clients and all such requirements addressed to both roles.</t>
      <t>Service Providers claiming conformance with this profile <bcp14>MUST</bcp14> include the <tt>conformsTo</tt> attribute, defined below, in their <tt>ServiceProviderConfig</tt> response, and <bcp14>MUST</bcp14> include the identifier of this profile, <tt>urn:ietf:params:scim:profile:interop</tt>, in its <tt>profiles</tt> sub-attribute. A Service Provider <bcp14>MAY</bcp14> list the identifiers of additional profiles it conforms to. A Service Provider that does not conform to this profile <bcp14>MUST NOT</bcp14> include this profile's identifier.</t>
      <t>A profile identifier is a URI. Identifiers registered with IANA as described in the IANA Considerations section are URNs in the <tt>urn:ietf:params:scim:profile</tt> namespace. Profiles that are not registered <bcp14>MAY</bcp14> be identified by any other URI. Clients <bcp14>MUST</bcp14> ignore profile identifiers they do not recognize.</t>
      <t>The <tt>profiles</tt> attribute is case exact. A Service Provider <bcp14>MUST</bcp14> return each profile identifier exactly as it is defined in the profile's specification or registry entry, and Clients compare profile identifiers octet by octet.</t>
      <t><tt>conformsTo</tt>: A complex attribute that identifies the profiles the Service Provider conforms to. Singular, optional, mutability <tt>readOnly</tt>, returned <tt>default</tt>.</t>
      <ul spacing="normal">
        <li>
          <t><tt>profiles</tt>: A multi-valued list of profile identifiers. Type: String, case exact, required, mutability <tt>readOnly</tt>, returned <tt>default</tt>, uniqueness <tt>none</tt>.</t>
        </li>
      </ul>
    </section>
    <section anchor="data-model-requirements">
      <name>Data Model Requirements</name>
      <section anchor="discovery-endpoints">
        <name>Discovery Endpoints</name>
        <t>Service Providers <bcp14>MUST</bcp14> implement the following configuration discovery endpoints:</t>
        <ul spacing="normal">
          <li>
            <t><tt>ServiceProviderConfig</tt> (<xref target="RFC7643"/>, Section 4)</t>
          </li>
          <li>
            <t><tt>Schema</tt> (<xref target="RFC7643"/>, Section 7)</t>
          </li>
          <li>
            <t><tt>ResourceType</tt> (<xref target="RFC7643"/>, Section 6)</t>
          </li>
        </ul>
        <t>Service Providers <bcp14>MUST</bcp14> publish an accurate list of schemas and attributes via the <tt>/Schemas</tt> endpoint, matching exactly what is implemented and supported by the service. All schemas referenced in resource type definitions returned by the <tt>/ResourceTypes</tt> endpoint <bcp14>MUST</bcp14> be available at the <tt>/Schemas</tt> endpoint.</t>
        <t>The schema and resource type definitions for <tt>ServiceProviderConfig</tt>, <tt>Schema</tt>, and <tt>ResourceType</tt> <bcp14>MAY</bcp14> be omitted from the <tt>/Schemas</tt> and <tt>/ResourceTypes</tt> endpoints respectively, as these are configuration resources rather than provisioning targets.</t>
        <t>For every <tt>ResourceType</tt> resource returned by the <tt>/ResourceTypes</tt> endpoint, Service Providers <bcp14>MUST</bcp14> populate the <tt>id</tt> attribute and its value <bcp14>MUST</bcp14> equal the value of the <tt>name</tt> attribute.</t>
        <t>Clients <bcp14>MUST</bcp14> send credentials on requests to the discovery endpoints (<tt>/ServiceProviderConfig</tt>, <tt>/Schemas</tt>, and <tt>/ResourceTypes</tt>) in the same manner as on requests to resource endpoints.</t>
      </section>
      <section anchor="case-sensitivity">
        <name>Case Sensitivity</name>
        <t>To ensure predictable and interoperable behavior, Service Providers <bcp14>MUST</bcp14> implement case sensitivity consistently across both filtering operations and uniqueness constraint enforcement. For any given attribute, the case sensitivity rules applied during a filter query (e.g., <tt>userName eq "User.A"</tt>) <bcp14>MUST</bcp14> be identical to the rules used to detect a uniqueness conflict during a <tt>POST</tt> or <tt>PATCH</tt> operation.</t>
        <t>This profile requires adherence to the case sensitivity definitions specified in <xref target="RFC7643"/> for the following attributes:</t>
        <t>Common Attributes (<xref target="RFC7643"/>, Section 3.1):</t>
        <ul spacing="normal">
          <li>
            <t><tt>id</tt>: <tt>caseExact</tt> is <tt>true</tt>. Service Providers <bcp14>MUST</bcp14> treat <tt>abc-123</tt> and <tt>ABC-123</tt> as distinct values.</t>
          </li>
          <li>
            <t><tt>externalId</tt> (optional): <tt>caseExact</tt> is <tt>true</tt>. Service Providers <bcp14>MUST</bcp14> treat <tt>ABC-123</tt> and <tt>abc-123</tt> as distinct values, if <tt>externalId</tt> is supported.</t>
          </li>
        </ul>
        <t>User Schema Attributes (<xref target="RFC7643"/>, Section 4.1.1) -- applicable only if the User resource type is implemented:</t>
        <ul spacing="normal">
          <li>
            <t><tt>userName</tt>: <tt>caseExact</tt> is <tt>false</tt>. Service Providers <bcp14>MUST</bcp14> treat <tt>JSmith</tt> and <tt>jsmith</tt> as equivalent.</t>
          </li>
          <li>
            <t><tt>emails.value</tt>: <tt>caseExact</tt> is <tt>false</tt> (<xref target="RFC7643"/>, Sections 4.1.2 and 8.7.1). Service Providers <bcp14>MUST</bcp14> treat <tt>user@example.com</tt> and <tt>USER@EXAMPLE.COM</tt> as equivalent.</t>
          </li>
        </ul>
        <t><xref target="RFC7644"/>, Section 5 also requires Service Providers to apply PRECIS preparation and comparison rules to <tt>userName</tt> before comparing it or evaluating its uniqueness. This profile does not change that requirement.</t>
      </section>
      <section anchor="attribute-and-schema-handling">
        <name>Attribute and Schema Handling</name>
        <t>To ensure strict conformance and prevent unintended data loss or corruption, Service Providers <bcp14>MUST</bcp14> adhere to a strict handling model for attributes and schema extensions. When a SCIM request that creates or modifies a resource (<tt>POST</tt>, <tt>PUT</tt>, or <tt>PATCH</tt>) contains attributes or schema URIs that are not defined in the Service Provider's <tt>ResourceType</tt> or <tt>Schema</tt> definitions, the Service Provider <bcp14>MUST</bcp14> reject the request. The common attributes defined in <xref target="RFC7643"/>, Section 3.1 are always considered defined.</t>
        <t>The Service Provider <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> for such requests. The <tt>scimType</tt> is <tt>invalidPath</tt> if the <tt>path</tt> of a <tt>PATCH</tt> operation refers to an attribute that is not defined, and <tt>invalidValue</tt> otherwise. Clients <bcp14>MUST</bcp14> consult the <tt>/Schemas</tt> endpoint and <bcp14>MUST NOT</bcp14> send attributes or schema URIs that the Service Provider does not advertise there. The <tt>schemas</tt> attribute of a request <bcp14>MUST</bcp14> list the URI of every schema whose attributes appear in the request body (<xref target="RFC7643"/>, Section 3).</t>
        <t>Attributes that are defined but have a <tt>mutability</tt> of <tt>readOnly</tt> are not undefined attributes and are not handled by this section. For <tt>POST</tt> and <tt>PUT</tt>, <xref target="RFC7644"/>, Sections 3.3 and 3.5.1 specify that values provided for them are ignored. For <tt>PATCH</tt>, <xref target="RFC7644"/>, Section 3.5.2 specifies that a client must not modify an attribute with a <tt>mutability</tt> of <tt>readOnly</tt> or <tt>immutable</tt>, and that an operation not compatible with an attribute's mutability results in an error response as defined in <xref target="RFC7644"/>, Section 3.12.</t>
      </section>
      <section anchor="canonical-values-for-typed-attributes">
        <name>Canonical Values for Typed Attributes</name>
        <t><xref target="RFC7643"/>, Section 7 defines <tt>canonicalValues</tt> as suggested values and allows Service Providers to restrict accepted values to them. This profile tightens that for the attributes below, so that Clients and Service Providers agree on the permitted <tt>type</tt> values.</t>
        <t>For multi-valued complex attributes that include a <tt>type</tt> sub-attribute and that classify their values by it (e.g., <tt>emails</tt>, <tt>phoneNumbers</tt>, <tt>ims</tt>, <tt>addresses</tt>), Service Providers <bcp14>MUST</bcp14> declare the acceptable <tt>type</tt> values in that attribute's <tt>canonicalValues</tt> property, as returned by <tt>/Schemas</tt>. Clients <bcp14>MUST</bcp14> only use <tt>type</tt> values listed in the <tt>canonicalValues</tt> property for that attribute. If the <tt>canonicalValues</tt> property of such a <tt>type</tt> sub-attribute is empty or absent, the Service Provider has declared no restriction, and a Client <bcp14>MAY</bcp14> use any <tt>type</tt> value. Comparison of <tt>type</tt> values follows the <tt>caseExact</tt> characteristic of the <tt>type</tt> sub-attribute.</t>
      </section>
    </section>
    <section anchor="protocol-and-endpoint-requirements">
      <name>Protocol and Endpoint Requirements</name>
      <section anchor="endpoint-structure">
        <name>Endpoint Structure</name>
        <t>Service Providers <bcp14>MUST</bcp14> offer a unique endpoint for each implemented resource type (e.g., <tt>/Users</tt>, <tt>/Groups</tt>). Resources of different types <bcp14>MUST NOT</bcp14> share an endpoint. This requirement applies only to resource-type endpoints; the root endpoint (e.g., <tt>https://example.com/scim/v2/</tt>) is not subject to this requirement and <bcp14>MAY</bcp14> return resources of multiple types if querying at the root level is supported.</t>
        <t>Service Providers <bcp14>MUST</bcp14> use <tt>/{endpoint}/{id}</tt> as the canonical URI for addressing any resource and <bcp14>MUST NOT</bcp14> address resources via other attribute values in the URI path (e.g., <tt>/{userName}</tt>). Clients <bcp14>MUST</bcp14> use <tt>/{id}</tt> when retrieving a known resource, and <bcp14>MUST</bcp14> use the <tt>filter</tt> query parameter to locate a resource by any other attribute value.</t>
      </section>
      <section anchor="data-format-and-http-headers">
        <name>Data Format and HTTP Headers</name>
        <t>All data exchange <bcp14>MUST</bcp14> use the JSON format as defined in <xref target="RFC7643"/>. All requests and responses containing SCIM data <bcp14>MUST</bcp14> include a <tt>Content-Type</tt> header whose media type is <tt>application/scim+json</tt>, as defined in <xref target="RFC7644"/>, Section 8.1. Parameters on the media type, such as <tt>charset</tt>, are permitted. A Service Provider <bcp14>SHOULD</bcp14> also accept requests with the media type <tt>application/json</tt>, which older versions of SCIM used informally (<xref target="RFC7644"/>, Section 8.1); Clients <bcp14>MUST NOT</bcp14> rely on this and <bcp14>MUST</bcp14> send <tt>application/scim+json</tt>.</t>
        <t>To aid in troubleshooting and client identification, Clients <bcp14>MUST</bcp14> include a <tt>User-Agent</tt> header (<xref target="RFC9110"/>, Section 10.1.5) in all HTTP requests. The header's value is expected to identify the client software, for example by name and version.</t>
      </section>
      <section anchor="filtering">
        <name>Filtering</name>
        <t>The <tt>filter</tt> query parameter <bcp14>MUST</bcp14> be supported. Service Providers <bcp14>MUST</bcp14> support the <tt>eq</tt> and <tt>and</tt> operators. To promote interoperability, Clients <bcp14>MUST NOT</bcp14> use operators other than <tt>eq</tt> and <tt>and</tt>, whether the filter is sent in the <tt>filter</tt> query parameter of a <tt>GET</tt> request or in the body of a <tt>POST</tt> query to <tt>/.search</tt> (<xref target="RFC7644"/>, Section 3.4.3). Service Providers <bcp14>MUST</bcp14> support filtering with the <tt>eq</tt> operator on every attribute for which they enforce a uniqueness constraint (e.g., <tt>userName</tt>), including when that attribute is a sub-attribute of a multi-valued attribute (e.g., <tt>emails.value</tt>), so that Clients can identify the resources involved in a uniqueness conflict, to the extent that those resources are accessible to the requesting Client. Service Providers that support the <tt>externalId</tt> attribute <bcp14>MUST</bcp14> also support filtering with the <tt>eq</tt> operator on <tt>externalId</tt>.</t>
        <t>Clients <bcp14>MAY</bcp14> use filters in read operations: <tt>GET</tt> requests using the <tt>filter</tt> query parameter, and <tt>POST</tt> queries to the <tt>/.search</tt> endpoint with the filter in the request body. Clients <bcp14>MUST NOT</bcp14> include a filter in the HTTP request URI of a request that uses any HTTP method other than <tt>GET</tt> (e.g., <tt>PATCH /Users?filter=...</tt>). This restriction applies only to the HTTP request URI. It does not apply to a filter in the <tt>path</tt> attribute of a <tt>PATCH</tt> operation (<xref target="RFC7644"/>, Section 3.5.2) or to a filter in the body of a <tt>POST</tt> query to <tt>/.search</tt>.</t>
        <t>When a filter expression is applied to a resource-type endpoint (e.g., <tt>/Users</tt>, <tt>/Groups</tt>) and references an attribute not defined in any of that resource type's schemas, or an attribute that the Service Provider does not support filtering on, Service Providers <bcp14>MUST</bcp14> return an HTTP 400 error with a <tt>scimType</tt> of <tt>invalidFilter</tt>, as defined in <xref target="RFC7644"/>, Section 3.12. A Service Provider <bcp14>MUST NOT</bcp14> ignore such a filter and return unfiltered results.</t>
        <t>Service Providers <bcp14>MUST</bcp14> support the <tt>excludedAttributes</tt> query parameter (<xref target="RFC7644"/>, Section 3.4.2.5). A <tt>Group</tt> resource can contain a very large number of members, so Clients <bcp14>SHOULD</bcp14> include <tt>excludedAttributes=members</tt> in requests that return groups unless they need the membership.</t>
      </section>
      <section anchor="pagination">
        <name>Pagination</name>
        <t>To ensure the reliable handling of large data sets, Service Providers <bcp14>MUST</bcp14> implement at least one of the following pagination methods for all list operations:</t>
        <ul spacing="normal">
          <li>
            <t>Index-based pagination as defined in <xref target="RFC7644"/>, Section 3.4.2.4.</t>
          </li>
          <li>
            <t>Cursor-based pagination, as defined in <xref target="RFC9865"/>.</t>
          </li>
        </ul>
        <t>Clients <bcp14>MUST</bcp14> support both index-based and cursor-based pagination. When a response contains <tt>nextCursor</tt>, Clients <bcp14>MUST</bcp14> continue retrieving results using it, including when the Client did not send a <tt>cursor</tt> parameter (<xref target="RFC9865"/>, Section 2.3). Clients <bcp14>MUST NOT</bcp14> treat a response as the final page unless it indicates so under the pagination method in use. For index-based pagination, a Client <bcp14>MUST</bcp14> continue requesting pages until a response contains no <tt>Resources</tt>, and <bcp14>MUST NOT</bcp14> rely on <tt>totalResults</tt> alone to determine that no more pages remain.</t>
        <t>Service Providers <bcp14>MUST</bcp14> include the <tt>pagination</tt> attribute defined in <xref target="RFC9865"/>, Section 4 in their <tt>ServiceProviderConfig</tt> response, including the <tt>cursor</tt> and <tt>index</tt> sub-attributes. A Service Provider that receives a pagination query parameter (<tt>startIndex</tt> or <tt>cursor</tt>) for a method it does not support <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> error and <bcp14>MUST NOT</bcp14> ignore the parameter.</t>
        <t>If the <tt>count</tt> parameter is omitted from a request, Service Providers <bcp14>SHOULD</bcp14> return at least 100 results by default. A Service Provider that enforces a maximum number of results per page <bcp14>MUST</bcp14> set that maximum to at least 100, and <bcp14>MUST</bcp14> truncate to that maximum, rather than returning an error, when the Client specifies a <tt>count</tt> value that exceeds it.</t>
        <t>When a request does not specify <tt>sortBy</tt>, Service Providers <bcp14>SHOULD</bcp14> return resources in the same order across pages of the same query, so that a Client paging through the results does not miss or repeat resources.</t>
      </section>
      <section anchor="updating-resources">
        <name>Updating Resources</name>
        <t>Service Providers <bcp14>MUST</bcp14> support the <tt>PATCH</tt> operation (<xref target="RFC7644"/>, Section 3.5.2) for resource updates. Clients <bcp14>MUST</bcp14> use the <tt>PATCH</tt> operation for updates and <bcp14>SHALL NOT</bcp14> use the <tt>PUT</tt> operation.</t>
        <t>This profile defines a restricted subset of the SCIM 2.0 <tt>PATCH</tt> method to ensure predictable behavior and high interoperability.</t>
        <section anchor="general-patch-constraints">
          <name>General PATCH Constraints</name>
          <section anchor="mandatory-use-of-the-path-attribute">
            <name>Mandatory Use of the 'path' Attribute</name>
            <t>Every operation object within the <tt>Operations</tt> array <bcp14>MUST</bcp14> contain a <tt>path</tt> attribute. Clients <bcp14>MUST NOT</bcp14> issue "path-less" PATCH operations where the target attribute is implied by the keys within the <tt>value</tt> object.</t>
            <t>Service Providers <bcp14>MAY</bcp14> reject PATCH requests containing operations that lack a <tt>path</tt> attribute. A Service Provider that rejects such a request <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> and a <tt>scimType</tt> error of <tt>invalidSyntax</tt>.</t>
          </section>
          <section anchor="multi-attribute-updates">
            <name>Multi-Attribute Updates</name>
            <t>When a Client needs to update multiple attributes in a single HTTP request, it <bcp14>MUST</bcp14> provide a separate operation entry within the <tt>Operations</tt> array for each unique attribute path.</t>
          </section>
          <section anchor="operation-names">
            <name>Operation Names</name>
            <t>Clients <bcp14>MUST</bcp14> send the <tt>op</tt> member of each operation in lowercase (<tt>add</tt>, <tt>remove</tt>, or <tt>replace</tt>), as the values are given in <xref target="RFC7644"/>, Section 3.5.2. Service Providers <bcp14>MUST</bcp14> accept the <tt>op</tt> member regardless of letter case.</t>
          </section>
        </section>
        <section anchor="attribute-specific-requirements">
          <name>Attribute-Specific Requirements</name>
          <section anchor="singular-attributes-simple-and-complex">
            <name>Singular Attributes (Simple and Complex)</name>
            <ol spacing="normal" type="1"><li>
                <t><strong>Simple Attribute Operation Equivalence:</strong> For singular simple attributes (e.g., <tt>userName</tt>, <tt>active</tt>), Service Providers <bcp14>MUST</bcp14> treat <tt>add</tt> and <tt>replace</tt> as functionally equivalent.</t>
              </li>
              <li>
                <t><strong>Complex Sub-attribute Targeting:</strong>  When only intending to modify the value of a specific sub-attribute of a complex attribute, Clients <bcp14>SHOULD</bcp14> target that sub-attribute using dot-notation (e.g., <tt>path: "name.givenName"</tt>).</t>
              </li>
              <li>
                <t><strong>Complex Attribute Operations:</strong>
                </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Replace:</strong> If a Client targets a singular complex attribute in its entirety (e.g., <tt>path: "name"</tt>) using the <tt>replace</tt> operation, the <tt>value</tt> <bcp14>MUST</bcp14> be a JSON object. As specified in <xref target="RFC7644"/>, Section 3.5.2.3, the Service Provider <bcp14>MUST</bcp14> update only the provided sub-attributes and <bcp14>MUST</bcp14> preserve the existing values of omitted sub-attributes.</t>
                  </li>
                  <li>
                    <t><strong>Add:</strong> If a Client targets a singular complex attribute in its entirety using the <tt>add</tt> operation, the <tt>value</tt> <bcp14>MUST</bcp14> be a JSON object. The Service Provider <bcp14>MUST</bcp14> perform a partial merge, updating only the provided sub-attributes and preserving existing values for omitted sub-attributes. (<xref target="RFC7644"/>, Section 3.5.2.1 states that if the target location exists the value is replaced, but does not state whether that applies to the whole complex attribute or to the provided sub-attributes; this profile specifies the latter so that <tt>add</tt> and <tt>replace</tt> behave identically.)</t>
                  </li>
                  <li>
                    <t><strong>Clearing a sub-attribute:</strong> To clear a sub-attribute of a singular complex attribute, a Client <bcp14>MUST</bcp14> use a <tt>remove</tt> operation targeting that sub-attribute (e.g., <tt>path: "name.familyName"</tt>).</t>
                  </li>
                </ul>
              </li>
            </ol>
          </section>
          <section anchor="multi-valued-attributes-simple-and-complex">
            <name>Multi-valued Attributes (Simple and Complex)</name>
            <t>This section applies to both multi-valued simple attributes (e.g., the <tt>schemas</tt> attribute) and multi-valued complex attributes (e.g., <tt>emails</tt>, <tt>addresses</tt>).</t>
            <ol spacing="normal" type="1"><li>
                <t><strong>Collection-Level Operations:</strong>
                </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Replace:</strong> If a Client targets a multi-valued attribute path without a filter (e.g., <tt>path: "emails"</tt> or <tt>path: "roles"</tt>) using the <tt>replace</tt> operation, the <tt>value</tt> <bcp14>MUST</bcp14> be an array of objects/values. The Service Provider <bcp14>MUST</bcp14> replace the entire collection with the provided array.</t>
                  </li>
                  <li>
                    <t><strong>Add:</strong> If a Client targets a multi-valued attribute path without a filter using the <tt>add</tt> operation, the <tt>value</tt> <bcp14>MUST</bcp14> be an array of objects/values. The Service Provider <bcp14>MUST</bcp14> append each provided value to the existing collection if it is not already present, and <bcp14>MUST NOT</bcp14> change the collection or return an error for a value that is already present (<xref target="RFC7644"/>, Section 3.5.2.1).</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><strong>Filtering Constraints:</strong> When using a filter to target an element within a multi-valued attribute:
                </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Sub-attribute Requirement:</strong> For <tt>add</tt> and <tt>replace</tt>, the <tt>path</tt> <bcp14>MUST</bcp14> target a specific sub-attribute of the matched element (e.g., <tt>path: "emails[type eq \"work\"].value"</tt>). Clients <bcp14>MUST NOT</bcp14> target the element object itself with these operations (e.g., <tt>path: "emails[type eq \"work\"]"</tt>).</t>
                  </li>
                  <li>
                    <t><strong>Operator Restriction:</strong> Clients <bcp14>MUST NOT</bcp14> use filter operators other than <tt>eq</tt> and <tt>and</tt> in a <tt>path</tt> value (e.g., <tt>emails[type co \"work\"].value</tt>).</t>
                  </li>
                  <li>
                    <t><strong>Single-Match Requirement:</strong> Clients <bcp14>MUST NOT</bcp14> use a filter in a <tt>path</tt> value that matches more than one element of the multi-valued attribute. A Client can combine sub-attribute comparisons with <tt>and</tt> to select a single element (e.g., <tt>path: "emails[type eq \"work\" and value eq \"a@example.com\"].primary"</tt>).</t>
                  </li>
                  <li>
                    <t><strong>No-Match Requirement for <tt>add</tt> and <tt>replace</tt>:</strong> Clients <bcp14>MUST NOT</bcp14> use a filter in the <tt>path</tt> of an <tt>add</tt> or <tt>replace</tt> operation that matches no element. To add an element to a multi-valued complex attribute, a Client uses a collection-level <tt>add</tt> with the complete element. If such a filter matches no element, the Service Provider <bcp14>MUST NOT</bcp14> create an element and <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> with a <tt>scimType</tt> of <tt>noTarget</tt> (<xref target="RFC7644"/>, Sections 3.5.2.3 and 3.12).</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><strong>Remove:</strong>
                </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Filtered <tt>remove</tt> on a complex multi-valued attribute (<xref target="RFC7644"/>, Section 3.5.2.2):</strong> Clients <bcp14>MAY</bcp14> use <tt>remove</tt> with a filter that selects the element to remove (e.g., <tt>path: "members[value eq \"2819c223\"]"</tt> or <tt>path: "emails[type eq \"work\"]"</tt>). The operator restriction and single-match requirement above apply. Unlike <tt>add</tt> and <tt>replace</tt>, a <tt>remove</tt> whose filter matches no element is not an error: the Service Provider makes no change to the resource and returns a success response, so that a Client can safely retry a <tt>remove</tt>.</t>
                  </li>
                  <li>
                    <t><strong>Filtered <tt>remove</tt> on a simple multi-valued attribute (defined by this profile):</strong> <xref target="RFC7644"/> defines no filter syntax for these attributes, because a <tt>valuePath</tt> filter selects on sub-attributes of the parent attribute (<xref target="RFC7644"/>, Section 3.4.2.2) and a simple attribute has none. This profile defines the following syntax. A Client <bcp14>MAY</bcp14> remove one element by sending <tt>remove</tt> with a <tt>path</tt> of the form <tt>attribute[value eq "x"]</tt>, where <tt>value</tt> refers to the element itself (e.g., <tt>path: "colors[value eq \"blue\"]"</tt>). The operator restriction and single-match requirement above apply, and the no-match behavior described above also applies to this form. A Service Provider <bcp14>MUST</bcp14> support this form for every simple multi-valued attribute it implements. For a simple multi-valued attribute, <tt>add</tt> and <tt>replace</tt> always apply to the whole collection, and Clients <bcp14>MUST NOT</bcp14> use a filter with them.</t>
                  </li>
                  <li>
                    <t><strong><tt>remove</tt> without a filter (<xref target="RFC7644"/>, Section 3.5.2.2):</strong> this removes all values of the attribute. Clients <bcp14>MUST NOT</bcp14> send it unless that is the intent.</t>
                  </li>
                  <li>
                    <t><strong><tt>value</tt> in a <tt>remove</tt> operation (defined by this profile):</strong> <xref target="RFC7644"/> defines no rules for a <tt>value</tt> in a <tt>remove</tt> operation and gives no example of one. Clients <bcp14>MUST NOT</bcp14> include a <tt>value</tt> in a <tt>remove</tt> operation (e.g., <tt>{"op": "remove", "path": "members", "value": [{"value": "2819c223"}]}</tt> <bcp14>MUST NOT</bcp14> be sent; use <tt>path: "members[value eq \"2819c223\"]"</tt>). A Service Provider that receives such a request <bcp14>SHOULD</bcp14> either reject it or interpret it as a filtered <tt>remove</tt> of each listed value, and <bcp14>SHOULD NOT</bcp14> ignore the <tt>value</tt> and remove all values of the attribute. A Service Provider that rejects it <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> with a <tt>scimType</tt> of <tt>invalidSyntax</tt>.</t>
                  </li>
                </ul>
              </li>
            </ol>
          </section>
        </section>
        <section anchor="patch-error-handling">
          <name>PATCH Error Handling</name>
          <t>A Service Provider that rejects a PATCH operation violating the constraints defined in this section <bcp14>MUST</bcp14> return an HTTP <tt>400 Bad Request</tt> and <bcp14>MUST</bcp14> use the <tt>scimType</tt> values as follows:</t>
          <ul spacing="normal">
            <li>
              <t><tt>invalidSyntax</tt>: Missing <tt>path</tt>, or <tt>remove</tt> operation containing a <tt>value</tt>.</t>
            </li>
            <li>
              <t><tt>invalidFilter</tt>: Filter uses an operator other than <tt>eq</tt> and <tt>and</tt>.</t>
            </li>
            <li>
              <t><tt>invalidPath</tt>: Filter fails to target a specific sub-attribute, filter matches more than one element in a multi-valued attribute, or <tt>path</tt> refers to an attribute that is not defined.</t>
            </li>
            <li>
              <t><tt>noTarget</tt>: Filter in the <tt>path</tt> of an <tt>add</tt> or <tt>replace</tt> operation matches no element.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="resource-lifecycle">
        <name>Resource Lifecycle</name>
        <t>Service Providers <bcp14>MUST NOT</bcp14> treat a <tt>PATCH</tt> request as a deletion of the resource. A resource modified via <tt>PATCH</tt> <bcp14>MUST</bcp14> be retained by the Service Provider. Deletion of a resource can only be performed via an HTTP <tt>DELETE</tt> request.</t>
        <t>Service Providers <bcp14>MUST</bcp14> return <tt>404 Not Found</tt> in response to any operation targeting a deleted resource and <bcp14>MUST</bcp14> omit deleted resources from all query results.</t>
        <t>After a resource is successfully deleted, its unique identifiers (such as <tt>userName</tt>) <bcp14>MUST NOT</bcp14> be considered in uniqueness conflict calculations and <bcp14>MUST</bcp14> be available for reassignment to a new resource.</t>
        <t>Service Providers <bcp14>MUST NOT</bcp14> respond to an HTTP <tt>DELETE</tt> request by modifying resource attributes rather than deleting the resource (e.g., setting a User's <tt>active</tt> attribute to <tt>false</tt>).</t>
      </section>
      <section anchor="concurrency-and-versioning">
        <name>Concurrency and Versioning</name>
        <t>Clients <bcp14>MUST NOT</bcp14> include HTTP headers related to conditional requests or entity tags (ETags), such as <tt>If-Match</tt>, <tt>If-None-Match</tt>, <tt>If-Modified-Since</tt>, or <tt>If-Unmodified-Since</tt>. A Service Provider that receives such a header and does not evaluate it <bcp14>SHOULD</bcp14> reject the request with HTTP <tt>400 Bad Request</tt> rather than ignoring the header, since a Client that sends such a header expects it to be enforced.</t>
        <t>This requirement means the profile provides no protection against lost updates when more than one Client modifies the same resource, including multiple identity providers provisioning to the same Service Provider. This is a deliberate trade-off in favor of keeping both Clients and Service Providers simple. Because every <tt>PATCH</tt> operation must include a <tt>path</tt>, a Client's update affects only the attributes it targets.</t>
        <t>Service Providers <bcp14>MUST NOT</bcp14> send a response to a write request (<tt>POST</tt>, <tt>PUT</tt>, <tt>PATCH</tt>, or <tt>DELETE</tt>) until the write has been applied and any lock or other in-progress state held on the resource for that request has been released. A request that a Client sends after receiving that response <bcp14>MUST NOT</bcp14> be rejected because the earlier request is still being processed.</t>
      </section>
      <section anchor="bulk-operations">
        <name>Bulk Operations</name>
        <t>Support for the <tt>/Bulk</tt> endpoint (<xref target="RFC7644"/>, Section 3.7) is <bcp14>OPTIONAL</bcp14>.</t>
      </section>
      <section anchor="error-handling">
        <name>Error Handling</name>
        <section anchor="uniqueness-conflicts">
          <name>Uniqueness Conflicts</name>
          <t>When a <tt>POST</tt> or <tt>PATCH</tt> request attempts to create or modify a resource in a way that violates a uniqueness constraint (e.g., for attributes like <tt>userName</tt> or <tt>emails</tt>), the Service Provider <bcp14>MUST</bcp14> return an HTTP <tt>409 Conflict</tt> response (<xref target="RFC9110"/>, Section 15.5.10). The response body <bcp14>MUST</bcp14> also include a SCIM error detail with the <tt>scimType</tt> set to <tt>uniqueness</tt>, as defined in <xref target="RFC7644"/>, Section 3.12.</t>
        </section>
        <section anchor="rate-limiting">
          <name>Rate Limiting</name>
          <t>Service Providers that limit the rate of requests <bcp14>SHOULD</bcp14> respond with HTTP <tt>429 Too Many Requests</tt> (<xref target="RFC6585"/>, Section 4) and <bcp14>SHOULD</bcp14> include a <tt>Retry-After</tt> header (<xref target="RFC9110"/>, Section 10.2.3) indicating how long the Client should wait before retrying. A Service Provider <bcp14>MAY</bcp14> instead respond with HTTP <tt>503 Service Unavailable</tt> (<xref target="RFC9110"/>, Section 15.6.4), which <bcp14>MAY</bcp14> also include a <tt>Retry-After</tt> header.</t>
          <t>When a Client receives a <tt>429</tt> or <tt>503</tt> response, it <bcp14>MUST NOT</bcp14> retry the request before the time indicated by the <tt>Retry-After</tt> header has elapsed. A Client <bcp14>MUST</bcp14> accept both forms of the <tt>Retry-After</tt> header value, an HTTP-date and a number of seconds (<xref target="RFC9110"/>, Section 10.2.3). If the response does not include a <tt>Retry-After</tt> header, the Client <bcp14>MUST</bcp14> wait before retrying, <bcp14>MUST</bcp14> increase the wait on each consecutive retry of the same request, and <bcp14>MUST</bcp14> stop retrying after a bounded number of attempts.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>All communication between a Client and Service Provider <bcp14>MUST</bcp14> be secured using Transport Layer Security (TLS). Implementations <bcp14>MUST</bcp14> follow the recommendations in BCP 195 <xref target="RFC9325"/>.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The use of HTTP Basic Authentication over TLS is <bcp14>NOT RECOMMENDED</bcp14>. Alternatives include OAuth 2.0 Bearer Tokens <xref target="RFC6750"/>.</t>
      </section>
      <section anchor="resource-addressing">
        <name>Resource Addressing</name>
        <t>This profile requires that resources be addressed by <tt>id</tt> rather than by other attribute values in the URI path. If a resource could also be addressed by a mutable attribute such as <tt>userName</tt>, the value of that attribute could be transferred between resources, and a request addressed to the old value would modify a different resource than the Client intended. For example, User A holds the <tt>userName</tt> "alice" and User B holds the <tt>userName</tt> "bob". If those values are swapped, so that A now holds "bob" and B now holds "alice", a Client issuing <tt>PATCH /Users/alice</tt> with entitlements or role assignments intended for the original User A would instead modify User B. The <tt>id</tt> attribute is assigned by the Service Provider and is stable and non-reassignable (<xref target="RFC7643"/>, Section 3.1), which removes this risk.</t>
      </section>
      <section anchor="identifier-reuse">
        <name>Identifier Reuse</name>
        <t>Resources have two kinds of identifiers. The <tt>id</tt> attribute is assigned by the Service Provider, is immutable, and is non-reassignable (<xref target="RFC7643"/>, Section 3.1). Attributes such as <tt>userName</tt> and <tt>emails.value</tt> are subject to uniqueness constraints but are set by Clients and can usually be changed. Their values can also be reused over time. For example, the <tt>userName</tt> "jsmith" can belong to one person and later, after that person's resource is deleted, to a different person.</t>
        <t>A Service Provider that supports the HTTP <tt>DELETE</tt> method makes the unique identifiers of a deleted resource, such as <tt>userName</tt>, available for reassignment to a new resource, as described in the Resource Lifecycle section. Because the values of these attributes can change and be reused, Clients, Service Providers, and other systems <bcp14>SHOULD NOT</bcp14> use them as stable references to a resource, for example as the key for access grants or role assignments. They <bcp14>SHOULD</bcp14> use <tt>id</tt> for that purpose. A record keyed on a reusable value can end up applying to a different person than the one it was created for.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="serviceproviderconfig-schema-registry-entry">
        <name>ServiceProviderConfig Schema Registry Entry</name>
        <t>IANA is requested to add Section 4 of this document to the References column of the "SCIM Server-Related Schema URIs" registry entry for <tt>urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig</tt>.</t>
      </section>
      <section anchor="scim-urn-sub-namespace-update">
        <name>SCIM URN Sub-namespace Update</name>
        <t>This document updates the registration of the "scim" URN namespace specified in Section 10.2.1 of <xref target="RFC7643"/>. IANA is requested to change the definition of the <tt>type</tt> keyword in the Declaration of Syntactic Structure from "either 'schemas' or 'api'" to "either 'schemas', 'api', or 'profile'", and to add to the Process of Identifier Assignment that identifiers with namespace type "profile" (e.g., <tt>urn:ietf:params:scim:profile</tt>) are assigned through the "SCIM Profile Identifiers" registry defined in this document.</t>
      </section>
      <section anchor="scim-profile-identifiers-registry">
        <name>SCIM Profile Identifiers Registry</name>
        <t>IANA is requested to create a registry called "SCIM Profile Identifiers" under the "System for Cross-domain Identity Management (SCIM) Schema URIs" registry group at <eref target="https://www.iana.org/assignments/scim">https://www.iana.org/assignments/scim</eref>. The registration procedure is Specification Required <xref target="RFC8126"/>. Designated experts evaluate registrations for relevance to SCIM-based systems, for duplication or conflict with other profile definitions, and for whether the referenced specification defines conformance clearly enough for independent implementations.</t>
        <t>A registration <bcp14>MUST</bcp14> include a profile identifier, a descriptive name, and a reference to the profile's specification. Registered identifiers use the form <tt>urn:ietf:params:scim:profile:{name}</tt>, where <tt>{name}</tt> is an ASCII string that conforms to URN syntax requirements <xref target="RFC8141"/>. Once an identifier has been allocated, it <bcp14>MUST NOT</bcp14> be reallocated for a different purpose. Registration is optional; profiles <bcp14>MAY</bcp14> be identified by unregistered URIs.</t>
        <t>The initial contents of the registry are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Profile Identifier</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>urn:ietf:params:scim:profile:interop</tt></td>
              <td align="left">SCIM 2.0 Interoperability Profile</td>
              <td align="left">Section 4 of this document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author would like to thank Matthias Winter and Mike Kiser for their detailed reviews of earlier versions of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7644" target="https://www.rfc-editor.org/info/rfc7644" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7644.xml">
          <front>
            <title>System for Cross-domain Identity Management: Protocol</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
            <author fullname="M. Ansari" initials="M." surname="Ansari"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi-domain scenarios easier to support via a standardized service. Examples include, but are not limited to, enterprise-to-cloud service providers and inter-cloud scenarios. The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. SCIM's intent is to reduce the cost and complexity of user management operations by providing a common user schema, an extension model, and a service protocol defined by this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7644"/>
          <seriesInfo name="DOI" value="10.17487/RFC7644"/>
        </reference>
        <reference anchor="RFC7643" target="https://www.rfc-editor.org/info/rfc7643" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7643.xml">
          <front>
            <title>System for Cross-domain Identity Management: Core Schema</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management in cloud-based applications and services easier. The specification suite builds upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. Its intent is to reduce the cost and complexity of user management operations by providing a common user schema and extension model as well as binding documents to provide patterns for exchanging this schema using HTTP.</t>
              <t>This document provides a platform-neutral schema and extension model for representing users and groups and other resource types in JSON format. This schema is intended for exchange and use with cloud service providers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7643"/>
          <seriesInfo name="DOI" value="10.17487/RFC7643"/>
        </reference>
        <reference anchor="RFC9865" target="https://www.rfc-editor.org/info/rfc9865" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9865.xml">
          <front>
            <title>Cursor-Based Pagination of System of Cross-domain Identity Management (SCIM) Resources</title>
            <author fullname="M. Peterson" initials="M." role="editor" surname="Peterson"/>
            <author fullname="D. Zollner" initials="D." surname="Zollner"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This document updates RFCs 7643 and 7644 by defining additional System for Cross-Domain Identity Management (SCIM) query parameters and result attributes to allow use of cursor-based pagination in SCIM service providers that are implemented with existing codebases, databases, or APIs where cursor-based pagination is already well established.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9865"/>
          <seriesInfo name="DOI" value="10.17487/RFC9865"/>
        </reference>
        <reference anchor="RFC9325" target="https://www.rfc-editor.org/info/rfc9325" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
              <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="9325"/>
          <seriesInfo name="DOI" value="10.17487/RFC9325"/>
        </reference>
        <reference anchor="RFC6585" target="https://www.rfc-editor.org/info/rfc6585" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6585.xml">
          <front>
            <title>Additional HTTP Status Codes</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6585"/>
          <seriesInfo name="DOI" value="10.17487/RFC6585"/>
        </reference>
        <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
          <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="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8141" target="https://www.rfc-editor.org/info/rfc8141" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8141.xml">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6750" target="https://www.rfc-editor.org/info/rfc6750" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6750.xml">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7U92XIbSXLvjNA/lLEPEmUAFClpDsxeFMXZ4VoHzWPWa1kR
aHQXgF42ujF9kMJqJsIf4Q/wt/hT/CXOq67uBkhNrB9mBALdVVlZeWdW1mg0
erRXp3WmJ+ry5OytOho/U2d5rctirctolmZpvVHnZTFPM/1oL5rNSn0rj8pj
7td0XU5UXTZVffTs2bfPjh7txVGtF0W5maiqTuD1UkcTdbxeZyn8khZ5paI8
URc6ykZX6QqGuCvKm0VZNGue49Hejd7Ad8nk0Z5SI1XF6Yo/rcviNq1giDRf
8DdponNYyebR3qO9dTpRH+oiHqqqKOtSzyv4tFnhh4/4e1LEebSCNSdlNK9H
fy+yLNflCIcfpbys0ZqXNcJ1NOsEVlJN1NdfvXiOA0RNvSxKhgr/pxSP9zrK
8436dx6PfyjKRZSnf6f1TtT7mzri7/UqSjOAAN8YCwR/LODncVyscI68KFfw
1q2maS6+P4HJX3ifn5vP337z1Uv7+fmR/fzVy2/c94eHz8znbw6PvnKfXxxO
cLY0n7fn++rrl8/otxFSiXxQ0ayqyyiu8e+rZVopQGazAtyrRM/TXOOeqnS1
zjR+SctWgksFU6h6qdXlpqr1iv48KYuqGiUFYCNXZ7KH6m2URwsaQD1BQthH
whwDydHr9WYNBJTBhOus2NBTqyLR2ZCmNmMQiSS6VAAsUImKADKm3JMsxXcs
DTEZrmjOygyQ4kpg4CarU1gMLPMuh5XraKUqXd6msbYzAHXdLXF9OoqXnV/V
E9jQVZFnG5ifhhvVOo8AgMhxAr8FUAIUGxUDDxUrGHgfgI/1uq4Cgldxkec6
Zg6al8XKgzKdz3WJq+vgoRor2i+cYVQXI5oJqX1RMgiEQxh7tS6aPKkI1Wlb
FsTLKMt0joiKSgAIoCEI8OE7mEaVEfyoirkq1jgqbNNcR3VTasZyizJuYRAR
BTDJKq1rnajZhoabRZVW1VrH6VywJCsw5BQlCQxbaQS1gGc92GAI+KkuU957
HK4fHhgLBEWR9UMCeNDlFmDodZgHpolmWVotcSLLtDD9T01a0lIrovRIMR20
UYAjZ8A4Y8NhqzRJUJ4+2vuNep1WQAy47+pHnTe6smyXFzVsDyy9UDOcbVXc
Iuo0TAW011iIImJIYGca/7JoytgwIjIvCkBaCbJOVTXAXcDdN7DqGL6Z4aMN
/lqrZV2vq8nBwSKtl80MpdSBCLrkoE9yjnkFoCbKImmIWhl47VQNoC5PojJR
H0SmfRyajy8+GspFvp2XIF9ROzAqG2CPiHY2JHPDIFGMYiWQvbDxM1wKbLMG
VvgLMWz/zj6GDcv0p1RIHph1liFNlUWUGKbl34YqBexlVSE0g6CGXNDa7HhZ
gGyo1P/+538BbynUiJWqGhAb8O/0/Pjq5IcpqCp4/NNQraNFmtN7QwUYBezC
2oawMQiwzisQUrcEBO6fLkvAzBI+ZogBnKBe4rZFtyyLdC60ImRYESlUBGSb
y+egm4BFEMQ1CnuAGVGm8atgQUBBQOwlrpVkM0C2LmA4EImIW+AykExIpp6g
qRgwYRCAqFoXNwhWPk8XTemYC3UCiUqhWBKv6yhFNIy7+kf2kOjF1ziW2mha
X2jojtAImFkgTADja8ZMKlLDly19EqSDefgHaAhpNgY11kIhrhzkBgmqgvnS
wC9MqD/B2lAgwe9us2oUuSD6mtoCMcr0LQpxUiBC+cKI74raMMJJkd8i28Dk
hiXB0FJoaVVq8Pb68mow5H/Vu/f0+eL0X6/PLk5f4+fLH47fvLEf9uSJyx/e
X7957T65N0/ev317+u41vwzfquCrvcHb478OmIYH78+vzt6/O34zQMqrg90F
VhH6JQSsS434iKo9EBBxmc7gD3jn1cn5//z34Qv1+fM/gRg5Ojz89pdf5I9v
Dr9+AX/cLXXOs5FK5j+BFDZ7wNk6Koktswz3PK2BtYfImdUStL9C+h/v7T39
gJj5OFG/ncXrwxe/ly9wwcGXBmfBl4Sz7jedlxmJPV/1TGOxGXzfwnQI7/Ff
g78N3r0vf/sHVEpqdPjNH36/xxR0GQPZEepOmGKRMy0fWq2MAlKTYrKcdyk2
0bmxRXgUssOqcWcIY0la1pppYKaUlFYk4gSMP52j8EcBhrIGTPQIHhSWZF2g
E+A2sEwLTQpTBkZrDSVuDTw8a2oSGG0IDfOzbec/DXyeNfSO2JErYDaUx8lQ
oQQu7txP6Ccgo6EjRBjpmWimNwUgg8WlZzOkbOxe6rgpUSYDzit8QYRGxQbg
2PhfbGQYPaYaFG2gKNDzEfWCo52dX56d8r4cxzHow1q9Sec63sSZNugfGjSx
VRUAxWJ5g2wIM6A8WmgYtyRBFIiusbrOASrEkzcCanxERYEv3aWVHm5ZeMD6
QFEbxB7ItpIMO7ZiwA/QItS7aLV6CjCQ5nHWJCzSvXcrWSiIgqZG3DozhGjy
eFYVGe54BwWwxiWYB7wTbXiHKK5Jx4ABWRnzEySTAsEkDu0WMRuKVvmWJKMV
wLiTBmwhkX7JbigEPDZQQUMSoEb5kSLpMOXQcCQR8gz2aKyOezBrNRY6MZ2N
V+kcraIKQKpYG4M0JRoM0bgTFDZJ738RgVRlkaFJd2y47v8BQEHMrwCLrO7O
8uIsSlfiyhlJ2gMp0QZTLxurU3m+uiqmTiQNLUXMdFbcDYUw0lJNZWoz8wkZ
WVPkgzXQiGbq6kzDVjUgp2Tp6kAaqmlT5pNU1/PJOgKrvJqg8T+RnydinUwJ
BjSIp/JLBXZtMxtZmHtJC/SSAuurbgFBRiogOBUqN0PiNhqEANp7hyT5YBWA
PN2xswwTelhwvz6uPFhYMjhacphKUdZdX5yNJY7BkJd6AQvSaEbS/p4dvztm
HvbMFhLN+EO/kCfevb54Z5XCzj2YUjCqWkdotFvtwHISxkE0eEAhymfeOsin
xdAAiWhej6F+ppNFTi5mBwGkYTaAa5kiLhbgfOmxMTE9SnDKFHkV/Rn9CdyM
fprAScHagyWLB9BFPb2NARYiibQjId1Ghi58UQoqSnTz4P9D3zChWEi0Za0F
2OM14oo+0CJ95pzAUvB18CO91bL5YkapfNgq0fat1QfkfQkSo8micmiDGUOw
PmrjtU3Bm0zeg1UL3McIAwxMARUROGFTAvGptwsIIsejyKJJmPOA03qWO1ZX
oDAn6rL2fFDC+tC6SV8Ay1A1efpTo3M0EKY5GGpT8VJeoxX3liJRF554pR85
HFKQEXCaJ+xo9stXplRjAhBq50UGstHIXOdpJnZMbcacMKq2Ss8nXrjiUlj0
xb68Ei/Bz+t/5mt55kKsEMRp/5Nf7e9Yl0R3MGQTxXFDjqDZu4qmF0XlDNzb
NGLBccDwAQ+a1cK2RXVMDq9hoztjZRsEoqcFA1bNel2UXohOYp3At6gTZepS
UwgyZvYLrTXiS7GbLFnIYNMDHy8ehLxqEFLRbZRmGIzBeNSW5Vhxw+AYd30L
DGgzb9nlod1LFgqtXRO5WUik0AZBPZDorW2LqkgH43aDw74ZioEOXIUCJ6RQ
Az68EpFQBjGShwGvOirBEGdr43sMlRBBt0C2aHgw5oc9lhmTYLEGQVSLUZIm
vkinMC+sj6QKPw6cDGobn+UvxWWboqLyXiXwA2WDbpWKQbigJAJvXBE6QHJU
dcVKXPcxsHoC27BtV+0GDXt3aN8ojQqAw2h5jjmEzswWmXbSsQipE5SNly4+
RwQJzkteNaRLdJLGNVMxYsrF3jJtHd2tiHcyrR0GRKKpUKvnpAk5AkqGqI0d
Kg4b2ZSHJ4Tx5brEgBsAClwR0yRjhcSE1sAixTCWZ3EihjoglA0qMo4AJCpp
aNJIAFAwF2zSEz1ejNGMBOHxDlGsf1KDa/hjfDwA5BteZ+WDaR7ZZh5bvE5g
4hp4B8YO1zDPALdu4un5+8urKap5E1u1GOhGHYzHD5bmkgWYmbqzTl+EmLAj
STsrym2uy6kdJ45Jv5xwGPbYCek+RfB8fLhv1BEx2gR8AADnFEX1FIX0tC4b
UJ/bCAZTVrWaRrN4dHj0XITS8asT+QsDuFUNVm8tcY2xTKU/wZaBhXEGvP3E
mBv7v3J2Nx/O7mDpzD5E5yyYO62c2qE9Q1JRzML3Ie/F+BDQpzBrKVH7THPY
L2UBRGOF2iFUew71hlx7NmAOgul+HPz5ElTFUlDwt0r+qFA2prB4TaqLUY+p
4WpMGNk6Xd+CK1rxEU3xzfhrWPt9QOGq/ghqH1eMKR0B7/ry9OKPp/92/Pb8
zen45P3bLqCP9myexuH7JedCLCN158YQGEVzzi9OT84uURqiB2ND/mxxpxUK
W+J3eMGh3qS35ClM/9SKtB2gSvJBIJ2dSGglDJ0buKT8jJ+HWJl1gQQ/DnSZ
0NoPkloJxTnnAQI3ngNEGuMwCAqmMBKUhmjZZpyWgufLsllzamfLDrEU4qCh
zGKzO5yqpVSYF8REC41hRQbKKbVNaZvcZL5FgfHCYyQBTeDAeCZzYrnhCQtP
kNTn1/iPE6L7uNwadEXlT4/RR54dfMaWv9lyx9orBr+sZaqQWSaWtCdsh/1O
kriIf0ONYMKJsEzcfZvu8iD1oOmXuBwry+6iDStGnAR3kN+zFuZOVxUstB+u
rs7V9MWzZ+pVlJA7A0BNOU5r4kdoTjCcU/ThefXI5WkORJ0m5xGKCRFX0zX9
hcGQrkJju5tZLO/4nH78OxHDR6b4keSMC8m2/H1EACbxttjbLoCE4ROy1+4h
it4ttKwZJWDK1QAGPldqixtjU9t1ERYMQRMANnIEc+HPbATL/HcUzPbZxaZ7
PJIBgynZ9CvifY78uAEshdvgWyNJP9gd5wrTfjl32PIE1hbwey0eNg8Qtxsj
PfUi/t8TK5JlQ/vI/NmVxxXQ8nN65Pn4JVA1WyobBlyyGJJjT4y9sqLpOcaT
mKmI0vpmoIGPvMyrRONjLzOCSyH5sgnpkqJhOzGFc6cr+j3TYq3zBLlH9hzW
A4VQp6jeeVhvIhAuXlyCM9IUSIOHOGlugqGt0Hrvcg+PnJmfg++FBuqPjErE
IPJv4pklnqIMAgE2xQXKXYbhUUjTVs1iAcQII5lcE4edi7stOtXko6VcyL3I
BuyqpQfrdLFEBcHYNJaqR4YSRq4KfsKPfveE6helNvl/r3ZmWpMss1YlO6ZB
wKkTIBOITBA2MoMEkWNHB3EWVRVTNAa7Zc3AL2AWGDeDjSlUY+tlket3zWoG
QOPf6Yr+sQUB0/2tujjRMFXJ3i6jmEzJYIksSZA6Pcrrbu+anL2aPX7fEXey
tSWAyWDFfF44HUo7p1K3TyT76wM2Vmfz+97CWBIlDvv3AKhJr9b4XIklgZT2
6hXsS2IqQl8CvOpKJwpJw9tkKUZUcJnobvpLBXQ4qxAlRIAG9q8qsxxrKYOJ
h5Ur4PeCgxHbiEPPWiTyeG6SzQiUCS/2BSHtb5fg+8RYSrYjVldgPZ51U53W
tPUsfowt9EQMBR+gl0KkevAnrI0FQh2rC+3V77iqP05rOnW8JEsmd9ExFgR+
Rtbk64nMvMDGiICw0Y3vWE0WRe0WYSA0pWGeI0ElYQe3RwcYT2HNDkhnC01y
LwEQOWcixHgq/dXZ4kZeHNhCFEhgl9pBxZUvHXdxy74QPx18Nkv55eBzmvwy
NWlyyxZkSpCdzVKCJs29HHRg/chDHvgYd+VESqd+QBgXJ0Czzm33Z+Pv/IIb
HYgCgZpAxcoVxFeZ6luOdtzkWKViJvdSe00lgToOxEwlEkO5I42RGdiSrMAi
Bd8BCPJALfCNEqRw/fdU9EjTkcn7A2hwQDSZS1nGjo/+JD5XANCfL9+/U3N5
vd8w59iyjbxJOJf0dWX8EFw++Tc0VZDNBPF1UqALVo/Ytl4ScGIOrnSCgXHx
+6deQS7R7z//DUTOdHi/XfANuN3q3KCzMsrQDe+qMKYomCqNORBKLRl92Zv7
kpIf8qpZ7zhMSLY4WESwAgGey1eKDMcDg5gLnoGtCGEUTpPa7yxzlm9rcfvf
hXSIxF5qeL6Q2gdLauQAbEHkWFznKGW1BcIMCyuXwL3MV4kxHE3mKZbqxzAB
6bYWJePoeAG/2Y2lFWC5u7eCw2ewPy/3TWkXEWnofPHLj03QGrWbX3LH4HCw
XECsinl9Bzs4ZFHOkg95BmPatBZBtmGV700U1uZDt3GjCYE6QbbNLpEnmLn1
Tya+lifGLywodVegWl9RwXCr0nPY3VfkTfuycD8lHMIJkLC0/KhNhJe8FNy/
fLe8YQ/2T6dXU+t4FdYVIxdMfFxycvhtjAQdjCvw2eLltJdQn49fjJ9vD3kZ
ZLlwuGUhWppZNBI1u45O6OEeMyNRjltC5J3wswmht2PcaFq6IiSS3KFFxsUD
oYlFKAjsZfdbaN1KqHC/a7HH9kSEUK9TTeD9F9kti7TeMPrQhL8pmlQb551r
wswoZF+AZALViBaxidXzpuJiGZK+TaHxQgr24r5urRwNQxH4JTvoDxbmlcTM
5EEqzlFGiZcbmYSkWXlVXNsoWiIqjl5T63z5VGstJwu3YZxuFGLcZU0n+cLX
fIFmgh8uNkJ4bipyIzf8LMC8LJKAuWnFhqzI41dseP6B5/rdeDxGe0TsR2vE
d+zHPoDCKkxbz9deh8S3WizQjXT1M//L8dE+ipGegR8iUohIJFgqb0sdHw6f
urQWjd9vJe+y2cV0kdx4FQZDWkFSsrvmJj7tOQVYwcJeIgVku4G+3cG1LgPt
CEC3ApkYx+R4iYncuIAlemUSTWQ19xCjiYIpWyt+iN651Ej8UNkURiOB1uT8
HbtOGNfZZfK3RA2xUuJCNV0ttU3HHIEtgYBPaWu9vDpKWzFJAV5SIRkm5lVO
UQdyZjTFH0hSG/4WK89wdw9sv5PXpiytTBaayYNQQacmMfVBNbekpHKtEzEQ
6eVluja2yLk9WRJmM1gGZSlFN2y2AcDmZZB5DbZr9YD0dIQeWYSKPbf5fpcL
dUdbRBbJGSmwzriSxQljzsCd5Yn+NMKzOon/8gOIDPfrBaXWTpqyKsrOIH2k
imcqP/aUIwgJUVo99UAi27V/eJuBsWFGmz2Z5qCkGKrpsBN1B/XZaN/DM7FL
Vkdp3WNTaBNMSdKEOZ4C8uB18Cxt6qZ1Omwdkf3U0TucLPRWIG4yoAyrMSMg
DSE8rL7LE6l3BxJ3B+g6O46objDb8D2Zfn3bO/SCQy2kWPtiTYc2G/gh68Vx
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
OCrvdzNsy9j/AwYgAWHagAAA

-->

</rfc>
