<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-authors-datarightplus-admission-control-00" submissionType="independent" category="exp" xml:lang="en" indexInclude="true">

<front>
<title>DataRight+: Admission Control Baseline</title><seriesInfo value="draft-authors-datarightplus-admission-control-00" stream="independent" status="experimental" name="Internet-Draft"/>
<author initials="S." surname="Low" fullname="Stuart Low"><organization>Biza.io</organization><address><postal><street/>
</postal><email>stuart@biza.io</email>
</address></author><author initials="B." surname="Kolera" fullname="Ben Kolera"><organization>Biza.io</organization><address><postal><street/>
</postal><email>bkolera@biza.io</email>
</address></author><date/>
<area>Internet</area>
<workgroup>datarightplus</workgroup>

<abstract>
<t>The establishment of a shared model of trust is critical to any functioning technology ecosystem, particularly when it relates to the sharing of data and the execution of Consumer specific actions. Traditional models of trust have typically revolved around implicit trust established through bi-lateral arrangements (i.e. legal contracts) between participants. The issue with this approach is that, at scale, it is not possible for all participants to efficiently establish communication with all other participants. This leads to the requirement for a mechanism to establish trust across participants in a way that the business layer of an organisation has confidence in ensuring participant interaction is validated.</t>
</abstract>

<note><name>Notational Conventions</name>
<t>The keywords  "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>",  "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>
</note>

</front>

<middle>

<section anchor="scope"><name>Scope</name>
<t>This document specifies methods for the following:</t>

<ul spacing="compact">
<li>Participant management</li>
<li>Dynamic Client Registration</li>
<li>Transport level security</li>
</ul>
</section>

<section anchor="terms-definitions"><name>Terms &amp; Definitions</name>
<t>This specification utilises the various terms outlined within <xref target="DATARIGHTPLUS-ROSETTA"/>.</t>

<dl spacing="compact">
<dt>Ecosystem Policy</dt>
<dd>A policy document specific to the ecosystem presented by the Initiator. Within the Australian CDR this is referred to as a data recipients CDR Policy</dd>
<dt>Initiator Brand Identifier</dt>
<dd>A unique identifier for the brand name which is presented as the owner of the Initiator.</dd>
<dt>Initiator Entity Identifier</dt>
<dd>A unique identifier for the legal entity related to the Initiator.</dd>
<dt>Initiator Identifier</dt>
<dd>A unique identifier for the specific Initiator. <bcp14>SHALL NOT</bcp14> change throughout the life cycle of the Initiator.</dd>
<dt>Provider Registration Scope</dt>
<dd>A string value as defined by the relevant ecosystem profile.</dd>
<dt>SSA</dt>
<dd>Relates to a Software Statement Assertion</dd>
</dl>
</section>

<section anchor="introduction"><name>Introduction</name>
<t>Describes the operation of an ecosystem and other mechanisms for controlling admission of participants.</t>
<t>This specification describes a technical mechanism for a group of cooperating participants to establish a central source of truth of the permitted participants. In addition, it describes means and methods for participants to discover the existence of others, track the status of these participants and provide metadata of how to describe them to other participants.</t>
<t><em>Note:</em> This specification is heavily influenced by the original definition in the <xref target="CDS"/> but avoids ecosystem specific statements in favour of relying on the respective ecosystem and <xref target="DATARIGHTPLUS-ROSETTA"/> to provide elaboration.</t>
</section>

<section anchor="ecosystem-authority"><name>Ecosystem Authority</name>
<t>The Ecosystem Authority is considered the primary arbiter of trust within the established ecosystem. In order to provide multiple layers of trust the Ecosystem Authority <bcp14>SHALL</bcp14> operate a combination of:</t>

<ol spacing="compact">
<li>Ecosystem Certificate Authority ("Ecosystem CA"): An X.509 Public Key Infrastructure (PKI) compliant certificate authority</li>
<li>Ecosystem Directory ("Directory"): A set of APIs delivering metadata of participants</li>
<li>Ecosystem Signing Authority ("SSA Authority"): An X.509 JSON Web Signature (<xref target="JWS"/>) based signing authority</li>
</ol>

<section anchor="general-topology"><name>General Topology</name>
<t>This specification outlines the requirements for the various components of a data sharing ecosystem.</t>

<artwork><![CDATA[                             +-------------------------+
      +--------------------->|      Ecosystem CA       <---------------------------+
      |Verify                +-------------------------+                     Verify|
      |                      +-------------------------+                           |
      |                      |        Directory        |-----------------+         |
      |          +---------->+-------------------------<-------+         |         |
      |          |           +-------------------------+       |         |         |
      |          | +---------|      SSA Authority      |<---+  |         |         |
      |          | |         +-------------------------+    |  |         |         |
      | Provider | | Software                      SSA JWKS |  |Initiator|Trigger  |
      | Metadata | | Statement                     Retrieval|  |Metadata |Directory|
      |          | | Assertion (SSA)                        |  |         |Refresh  |
      |          | |                                        |  |         |         |
      |          | |                                        |  |         |         |
      |          | |                                        |  |         |         |
      |          | v                                        |  |         v         |
   +-----------------------+                               +------------------------+
   |                       |   O------------------------O  |                        |
   |       Initiator       |   |    Mutual TLS Channel  |  |        Provider        |
                           |   |  incl SSA registration |  |                        |
   |                       |<--O------------------------O->|                        |
   +-----------------------+                               +------------------------+
]]>
</artwork>
<t>The components provided in this diagram are further stipulated in the sections that follow.</t>
</section>

<section anchor="ecosystem-ca"><name>Ecosystem CA</name>
<t>The Ecosystem Certificate Authority:</t>

<ol spacing="compact">
<li><bcp14>SHALL</bcp14> issue certificates of at least 2048 bits</li>
<li><bcp14>SHALL</bcp14> issue certificates using the RSA encryption suite</li>
<li><bcp14>SHALL</bcp14> enforce the certificate profile as specified for each participant</li>
<li><bcp14>SHALL NOT</bcp14> issue certificates exceeding 365 days</li>
<li><bcp14>SHALL</bcp14> issue participant certificates via an Intermediate CA</li>
<li><bcp14>SHALL</bcp14> manage, maintain and publish a <xref target="RFC5280"/> Certificate Revocation List</li>
<li><bcp14>SHALL</bcp14> support <xref target="RFC6960"/> OCSP endpoints</li>
<li><bcp14>SHALL</bcp14> manage and maintain a suitable Certificate Practice Statement</li>
</ol>
</section>

<section anchor="directory"><name>Directory</name>
<t>The Directory is a combination of protected and generally available endpoints.</t>

<section anchor="authorisation-server"><name>Authorisation Server</name>
<t>The Ecosystem Directory:</t>

<ol spacing="compact">
<li><bcp14>SHALL</bcp14> make available an OAuth 2.0 <xref target="RFC6749"/> authorisation server</li>
<li><bcp14>SHALL</bcp14> authenticate the confidential client using <tt>private_key_jwt</tt> specified in section 9 of <xref target="OIDC-Core"/></li>
<li><bcp14>SHALL</bcp14> support discovery, as defined in <xref target="OIDC-Discovery"/>;</li>
</ol>
<t>The means by which participants acquires their relevant <tt>client_id</tt> is outside the scope of this document.</t>
</section>

<section anchor="resource-endpoints"><name>Resource Endpoints</name>

<section anchor="authenticated-directory-endpoints"><name>Authenticated Directory Endpoints</name>
<t>The Ecosystem Directory <bcp14>SHALL</bcp14> make available MTLS and Bearer token authenticated endpoint secured with a <tt>scope</tt> value of <tt>cdr:register</tt> (or other value specified by the Ecosystem Authority).</t>
<t>As described further in <xref target="DATARIGHTPLUS-REDOCLY-ID1"/> the following authenticated endpoints <bcp14>SHALL</bcp14> be made available:</t>
<table>
<thead>
<tr>
<th>Resource Server Endpoint</th>
<th><tt>x-v</tt></th>
</tr>
</thead>

<tbody>
<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-holders/brands</tt></td>
<td><tt>2</tt></td>
</tr>
</tbody>
</table></section>

<section anchor="public-directory-endpoints"><name>Public Directory Endpoints</name>
<t>The Ecosystem Directory <bcp14>SHALL</bcp14> deliver the following unauthenticated and generally available endpoints, in accordance with <xref target="DATARIGHTPLUS-REDOCLY-ID1"/>:</t>
<table>
<thead>
<tr>
<th>Resource Server Endpoint</th>
<th><tt>x-v</tt></th>
</tr>
</thead>

<tbody>
<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-holders/brands/summary</tt></td>
<td><tt>1</tt></td>
</tr>

<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-holders/status</tt></td>
<td><tt>1</tt></td>
</tr>

<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-recipients/brands/software-products/status</tt></td>
<td><tt>2</tt></td>
</tr>

<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-recipients/status</tt></td>
<td><tt>2</tt></td>
</tr>

<tr>
<td><tt>GET /cdr-register/v1/{industry}/data-recipients</tt></td>
<td><tt>3</tt></td>
</tr>
</tbody>
</table></section>
</section>
</section>

<section anchor="ssa-authority"><name>SSA Authority</name>
<t>The SSA Authority issues JSON documents, signed using JWS, containing verified metadata sourced from the Ecosystem Authority.</t>
<t>In addition to <tt>scope</tt> values defined within relevant resource sets the SSA Authority shall also include the Provider Registration Scope.</t>

<section anchor="ssa-attributes"><name>SSA Attributes</name>
<t>The unsigned SSA is a JSON document containing the following attributes:</t>

<ul spacing="compact">
<li><tt>iss</tt>: <bcp14>REQUIRED</bcp14> Contains the iss (issuer) value of the SSA Authority. Unless specified otherwise this is set to <tt>cdr-register</tt></li>
<li><tt>iat</tt>: <bcp14>REQUIRED</bcp14> The time at which the request was issued by the SSA Authority, expressed as seconds since 1970-01-01T00:00:00Z</li>
<li><tt>jti</tt>: <bcp14>REQUIRED</bcp14> A unique identifier for the document</li>
<li><tt>legal_entity_id</tt>: <bcp14>OPTIONAL</bcp14> The Initiator Entity Identifier</li>
<li><tt>legal_entity_name</tt>: <bcp14>OPTIONAL</bcp14> Human-readable name of the Initiator Entity</li>
<li><tt>org_id</tt>: <bcp14>REQUIRED</bcp14> The Initiator Brand Identifier</li>
<li><tt>org_name</tt>: <bcp14>REQUIRED</bcp14> Human-readable name of the Initiator Brand</li>
<li><tt>client_name</tt>: <bcp14>REQUIRED</bcp14> Human-readable name of the Initiator</li>
<li><tt>client_description</tt>: <bcp14>REQUIRED</bcp14> Human-readable description of the Initiator</li>
<li><tt>client_uri</tt>: <bcp14>REQUIRED</bcp14> Website address of the Initiator</li>
<li><tt>redirect_uris</tt>: <bcp14>REQUIRED</bcp14> List of URI for use as <tt>redirect_uri</tt> values in <xref target="OIDC-Core"/> authorisation establishments</li>
<li><tt>sector_identifier_uri</tt>: <bcp14>OPTIONAL</bcp14> URI to be used as an input to the production of Pseudonymous Identifiers as described in section 8 of <xref target="OIDC-DCR"/></li>
<li><tt>logo_uri</tt>: <bcp14>REQUIRED</bcp14> URI referencing a logo of the Initiator</li>
<li><tt>tos_uri</tt>: <bcp14>OPTIONAL</bcp14> URI referencing the Terms of Service of the Initiator</li>
<li><tt>policy_uri</tt>: <bcp14>OPTIONAL</bcp14> URI referencing the Ecosystem Policy of the Initiator</li>
<li><tt>jwks_uri</tt>: <bcp14>REQUIRED</bcp14> URI referencing the JSON Web Key Set <xref target="RFC7517"/> used by the Initiator for authentication purposes</li>
<li><tt>revocation_uri</tt>: <bcp14>REQUIRED</bcp14> URI referencing the ICARE endpoint as specified within <xref target="DATARIGHTPLUS-SHARING-ARRANGEMENT-V1-00"/>, if <xref target="DATARIGHTPLUS-SHARING-ARRANGEMENT-V1-00"/> is supported by the Ecosystem</li>
<li><tt>recipient_base_uri</tt>: <bcp14>REQUIRED</bcp14> Base URI to use for Initiator provider endpoints</li>
<li><tt>software_id</tt>: <bcp14>REQUIRED</bcp14> The Initiator Identifier</li>
<li><tt>software_roles</tt>: <bcp14>REQUIRED</bcp14> Role identifier of the Ecosystem. The only permitted value is currently <tt>data-recipient-software-product</tt></li>
<li><tt>scope</tt>: <bcp14>REQUIRED</bcp14> A space-separated list of scope values permitted to be accessed by the Initiator</li>
</ul>

<section anchor="example"><name>Example</name>
<t>A non-normative example of an unsigned SSA:</t>

<sourcecode type="json"><![CDATA[{
  "iss": "cdr-register",
  "iat": 1571808111,
  "exp": 2147483646,
  "jti": "3bc205a1ebc943fbb624b14fcb241196",
  "client_name": "Mock Software",
  "client_description": "A mock software product",
  "client_uri": "https://www.mockcompany.com.au",
  "legal_entity_id": "3B0B0A7B-3E7B-4A2C-9497-E357A71D07C7",
  "legal_entity_name": "Mock Company Pty Ltd.",
  "org_id": "3B0B0A7B-3E7B-4A2C-9497-E357A71D07C8",
  "org_name": "Mock Company Brand",
  "redirect_uris": [
    "https://www.mockcompany.com.au/redirects/redirect1",
    "https://www.mockcompany.com.au/redirects/redirect2"
  ],
  "sector_identifier_uri": "https://www.mockcompany.com.au/sector_identifier.json",
  "logo_uri": "https://www.mockcompany.com.au/logos/logo1.png",
  "tos_uri": "https://www.mockcompany.com.au/tos.html",
  "policy_uri": "https://www.mockcompany.com.au/policy.html",
  "jwks_uri": "https://www.mockcompany.com.au/jwks",
  "revocation_uri": "https://www.mockcompany.com.au/revocation",
  "recipient_base_uri": "https://www.mockcompany.com.au",
  "software_id": "740C368F-ECF9-4D29-A2EA-0514A66B0CDE",
  "software_roles": "data-recipient-software-product",
  "scope": "openid profile bank:accounts.basic:read bank:accounts.detail:read bank:transactions:read bank:payees:read bank:regular_payments:read datarightplus:registration"
}


]]>
</sourcecode>
</section>
</section>

<section anchor="authorisation-server-1"><name>Authorisation Server</name>
<t>The SSA Authority:</t>

<ol spacing="compact">
<li><bcp14>SHALL</bcp14> make available an OAuth 2.0 <xref target="RFC6749"/> authorisation server</li>
<li><bcp14>SHALL</bcp14> authenticate the confidential client using <tt>private_key_jwt</tt> specified in section 9 of <xref target="OIDC-Core"/></li>
<li><bcp14>SHALL</bcp14> support discovery, as defined in OpenID Connect Discovery 1.0 <xref target="OIDC-Discovery"/>;</li>
</ol>
<t>The means by which participants acquires their relevant <tt>client_id</tt> is outside the scope of this document.</t>
</section>

<section anchor="resource-endpoints-1"><name>Resource Endpoints</name>

<section anchor="ssa-retrieval-endpoint"><name>SSA Retrieval Endpoint</name>
<t>The SSA Authority <bcp14>SHALL</bcp14> make available an endpoint for Initiators to download a compliant, time limited and cryptographically signed SSA which describes the Initiator themselves while asserting the authority of the SSA Authority.</t>
<t>This endpoint will be available through an authenticated <tt>GET</tt> request to the path <tt>/cdr-register/v1/{industry}/data-recipients/brands/{initiatorBrandId}/software-products/{initiatorId}/ssa</tt> and <bcp14>SHALL</bcp14> return a JWS signed string of the document. Once provided to any participant, the Initiator ID contained within the <tt>software_id</tt> attribute, <bcp14>SHALL NOT</bcp14> change for the lifetime of the Initiator.</t>
</section>

<section anchor="ssa-authority-jwks"><name>SSA Authority JWKS</name>
<t>The SSA Authority <bcp14>SHALL</bcp14> make available the public signing keys, in JSON Web Key Set <xref target="RFC7517"/> format, used for signing the SSA at the unauthenticated and generally available endpoint of <tt>GET /cdr-register/v1/jwks</tt>.</t>
</section>
</section>
</section>
</section>

<section anchor="provider"><name>Provider</name>
<t>In order to provide streamlined registration of Initiators the Provider must make available a service to facilitate registration of new OAuth 2.0 clients.</t>

<section anchor="authorisation-server-2"><name>Authorisation Server</name>
<t>The Provider authorisation server is required to perform a number of prescribed functions.</t>

<section anchor="dynamic-client-registration-dcr"><name>Dynamic Client Registration (DCR)</name>
<t>The Provider authorisation server <bcp14>SHALL</bcp14> support <xref target="OIDC-DCR"/>.</t>
<t>In addition, the Provider authorisation server:</t>

<ol spacing="compact">
<li><bcp14>SHALL</bcp14> require SSA documents as part of the Client Registration Request outlined in Section 3.1 of <xref target="OIDC-DCR"/> and;</li>
<li><bcp14>SHALL</bcp14> validate provided SSA documents as per [SSA Attributes] and;</li>
<li><bcp14>SHALL</bcp14> verify the signature of the SSA using the [SSA Authority JWKS] endpoint;</li>
<li><bcp14>SHALL</bcp14> support client management endpoints described in Section 2 of <xref target="RFC7592"/>;</li>
<li><bcp14>SHALL</bcp14> authenticate Initiators using <tt>private_key_jwt</tt> and an Ecosystem Authority defined <tt>scope</tt> value (typically <tt>cdr:registration</tt>);</li>
<li><bcp14>SHALL</bcp14> require MTLS for all DCR related endpoints;</li>
<li><bcp14>SHALL NOT</bcp14> permit multiple client registrations per Initiator Identifier;</li>
<li><bcp14>SHALL</bcp14> supply <tt>client_id_issued_at</tt> in addition to the other <bcp14>REQUIRED</bcp14> fields outlined in section 3.2 <xref target="OIDC-DCR"/>;</li>
<li><bcp14>SHALL</bcp14> update Initiator statuses, at least every 5 minutes, by polling the <tt>GET /cdr-register/v1/{industry}/data-recipients/brands/software-products/status</tt> endpoint outlined in [Resource Endpoints]</li>
</ol>
<t>Where there are overlapping attributes between the dynamic registration request and the provided SSA, the content of the SSA <bcp14>SHALL</bcp14> take precedence.</t>
</section>
</section>
</section>

<section anchor="initiator"><name>Initiator</name>
<t>Initiators participating in the ecosystem:</t>

<ol spacing="compact">
<li><bcp14>SHALL</bcp14> support endpoint discovery as specified in <xref target="OIDC-Discovery"/></li>
<li><bcp14>SHALL</bcp14> support dynamic registration in accordance with <xref target="OIDC-DCR"/></li>
<li><bcp14>SHALL</bcp14> retrieve a time-limited SSA, from the [SSA Retrieval Endpoint] and use it as the <tt>software_statement</tt> attribute for dynamic registration requests</li>
<li><bcp14>SHALL</bcp14> support the client management provisions contained in Section 2 <xref target="RFC7592"/></li>
</ol>
</section>

<section anchor="implementation-considerations"><name>Implementation Considerations</name>
<t>The use of OCSP Stapling within the CDR ecosystem is <bcp14>NOT RECOMMENDED</bcp14>.</t>
<t>For MTLS endpoints, all participants <bcp14>MUST</bcp14> verify certificates used (client) and presented (server) are current and valid. This implicitly means all parties are required to utilise CRL or OCSP endpoints to maintain confidence in revocation status.</t>
</section>

</middle>

<back>
<references><name>Normative References</name>
<reference anchor="CDS" target="https://consumerdatastandardsaustralia.github.io/standards">
  <front>
    <title>Consumer Data Standards (CDS)</title>
    <author>
      <organization>Data Standards Body (Treasury)</organization>
    </author>
  </front>
</reference>
<reference anchor="DATARIGHTPLUS-REDOCLY-ID1" target="https://datarightplus.github.io/datarightplus-redocly/?v=ID1">
  <front>
    <title>DataRight+: Redocly (ID1)</title>
    <author fullname="Stuart Low" initials="S." surname="Low">
      <organization>Biza.io</organization>
    </author>
    <author fullname="Ben Kolera" initials="B." surname="Kolera">
      <organization>Biza.io</organization>
    </author>
    <author fullname="Wei Cai" initials="W." surname="Cai">
      <organization>Biza.io</organization>
    </author>
  </front>
</reference>
<reference anchor="DATARIGHTPLUS-ROSETTA" target="https://datarightplus.github.io/datarightplus-rosetta/draft-authors-datarightplus-rosetta.html">
  <front>
    <title>DataRight+ Rosetta Stone</title>
    <author fullname="Stuart Low" initials="S." surname="Low">
      <organization>Biza.io</organization>
    </author>
  </front>
</reference>
<reference anchor="DATARIGHTPLUS-SHARING-ARRANGEMENT-V1-00" target="https://datarightplus.github.io/datarightplus-sharing-arrangement-v1/draft-authors-datarightplus-sharing-arrangement-v1-00/draft-authors-datarightplus-sharing-arrangement-v1.html">
  <front>
    <title>CDR: Sharing Arrangement V1 (00)</title>
    <author fullname="Stuart Low" initials="S." surname="Low">
      <organization>Biza.io</organization>
    </author>
  </front>
</reference>
<reference anchor="JWS" target="https://datatracker.ietf.org/doc/html/rfc7515">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones">
      <organization>Microsoft</organization>
    </author>
    <author fullname="John Bradley" initials="J." surname="Bradley">
      <organization>Ping Identity</organization>
    </author>
    <author fullname="N. Sakimura">
      <organization>Nomura Research Institute</organization>
    </author>
    <date year="2015" month="May"/>
  </front>
</reference>
<reference anchor="OIDC-Core" target="http://openid.net/specs/openid-connect-core-1_0.html">
  <front>
    <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
    <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
      <organization>NRI</organization>
    </author>
    <author fullname="John Bradley" initials="J." surname="Bradley">
      <organization>Ping Identity</organization>
    </author>
    <author fullname="Mike Jones" initials="M." surname="Jones">
      <organization>Microsoft</organization>
    </author>
    <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
      <organization>Google</organization>
    </author>
    <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
      <organization>Salesforce</organization>
    </author>
    <date year="2014" month="Nov" day="8"/>
  </front>
</reference>
<reference anchor="OIDC-DCR" target="https://openid.net/specs/openid-connect-registration-1_0.html">
  <front>
    <title>OpenID Connect Dynamic Client Registration 1.0 incorporating errata set 2
</title>
    <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
      <organization>NRI</organization>
    </author>
    <author fullname="John Bradley" initials="J." surname="Bradley">
      <organization>Ping Identity</organization>
    </author>
    <author fullname="Mike Jones" initials="M." surname="Jones">
      <organization>Microsoft</organization>
    </author>
    <date year="2023" month="Dec" day="15"/>
  </front>
</reference>
<reference anchor="OIDC-Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0.html">
  <front>
    <title>OpenID Connect Discovery 1.0 incorporating errata set 1</title>
    <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
      <organization>NRI</organization>
    </author>
    <author fullname="John Bradley" initials="J." surname="Bradley">
      <organization>Ping Identity</organization>
    </author>
    <author fullname="Mike Jones" initials="M." surname="Jones">
      <organization>Microsoft</organization>
    </author>
    <author initials="E." surname="Jay">
      <organization>Illumila</organization>
    </author>
    <date year="2014" month="Nov" day="8"/>
  </front>
</reference>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6960.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7592.xml"/>
</references>

</back>

</rfc>
