<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='http://xml2rfc.tools.ietf.org/authoring/rfc2629.xslt' ?>
<!DOCTYPE rfc PUBLIC "-//IETF//DTD RFC 2629//EN" "http://xml2rfc.tools.ietf.org/authoring/rfc2629.dtd">
<!--
  NOTE:  This XML file is input used to produce the authoritative copy of an
  OpenID Foundation specification.  The authoritative copy is the HTML output.
  This XML source file is not authoritative.  The statement ipr="none" is
  present only to satisfy the document compilation tool and is not indicative
  of the IPR status of this specification.  The IPR for this specification is
  described in the "Notices" section.  This is a public OpenID Foundation
  document and not a private document, as the private="..." declaration could
  be taken to indicate.
-->
<rfc category="std" docName="openid-connect-frontchannel-1_0" ipr="none">

  <?rfc toc="yes" ?>
  <?rfc tocdepth="5" ?>
  <?rfc symrefs="yes" ?>
  <?rfc sortrefs="yes"?>
  <?rfc strict="yes" ?>
  <?rfc iprnotified="no" ?>
  <?rfc private="Final" ?>

  <front>
    <title abbrev="OpenID Connect Front-Channel Logout 1.0">OpenID Connect
    Front-Channel Logout 1.0</title>

    <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
      <organization abbrev="Microsoft">Microsoft</organization>
      <address>
        <email>mbj@microsoft.com</email>
	<uri>https://self-issued.info/</uri>
      </address>
    </author>

    <date day="12" month="September" year="2022" />

    <workgroup>OpenID Connect Working Group</workgroup>

    <abstract>
      <t>OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0
      protocol. It enables Clients to verify the identity of the End-User based
      on the authentication performed by an Authorization Server, as well as to
      obtain basic profile information about the End-User in an interoperable and
      REST-like manner.</t>

      <t>
	This specification defines a logout mechanism that uses front-channel
	communication via the User Agent between the OP and RPs being logged out
	that does not need an OpenID Provider iframe on Relying Party pages.
	Other protocols have used HTTP GETs to RP URLs that clear login state
	to achieve this.
	This specification does the same thing.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="Introduction" title="Introduction">

      <t>
	OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0
	<xref target="RFC6749"/>
	protocol. It enables Clients to verify the identity of the End-User based
	on the authentication performed by an Authorization Server, as well as to
	obtain basic profile information about the End-User in an interoperable and
	REST-like manner.
      </t>
      <t>
	This specification defines a logout mechanism that uses front-channel
	communication via the User Agent between the OP and RPs being logged out
	that does not need an OpenID Provider iframe on Relying Party pages,
	as <xref target="OpenID.Session">OpenID Connect Session Management 1.0</xref>
	does.
	Other protocols have used HTTP GETs to RP URLs that clear login state
	to achieve this;
	this specification does the same thing.
      </t>
      <t>
	In contrast, the
	<xref target="OpenID.BackChannel">OpenID Connect Back-Channel Logout 1.0</xref>
	specification uses direct back-channel
	communication between the OP and RPs being logged out;
	this differs from front-channel logout mechanisms,
	which communicate logout requests from the OP to RPs via the User Agent.
	The
	<xref target="OpenID.RPInitiated">OpenID Connect RP-Initiated Logout 1.0</xref>
	specification complements these specifications by defining a mechanism for a Relying Party
	to request that an OpenID Provider log out the End-User.
      </t>
      <t>
	This specification can be used separately from or in combination with
	OpenID Connect RP-Initiated Logout 1.0,
	OpenID Connect Session Management 1.0, and/or
	OpenID Connect Back-Channel Logout 1.0.
      </t>

      <section anchor="rnc" title="Requirements Notation and Conventions">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref>.</t>

	<t>
	  In the .txt version of this specification,
	  values are quoted to indicate that they are to be taken literally.
	  When using these values in protocol messages,
	  the quotes MUST NOT be used as part of the value.
	  In the HTML version of this specification,
	  values to be taken literally are indicated by
	  the use of <spanx style="verb">this fixed-width font</spanx>.
	</t>
      </section>

      <section anchor="Terminology" title="Terminology">
        <t>
	  This specification uses the terms
	  "Authorization Server",
	  "Client", "Client Identifier",
	  and "Redirection URI"
	  defined by <xref target="RFC6749">OAuth 2.0</xref>,
	  the term "User Agent" defined by <xref target="RFC7230">RFC 7230</xref>,
	  and the terms defined by
	  <xref target="OpenID.Core">OpenID Connect Core 1.0</xref>.
	</t>
	<t>
	  This specification also defines the following terms:
	  <list style="hanging">

	    <t hangText="Session">
	      <vspace/>
	      Continuous period of time during which an End-User
	      accesses a Relying Party relying on the Authentication
	      of the End-User performed by the OpenID Provider.
	    </t>

	    <t hangText="Session ID">
	      <vspace/>
	      Identifier for a Session.
	    </t>

	  </list>
	</t>
      </section>
    </section>

    <section anchor="RPLogout" title="Relying Party Logout Functionality">
      <t>
	RPs supporting HTTP-based logout register a logout URI
	with the OP as part of their client registration.
	The domain, port, and scheme of this URL MUST be the same as that of
	a registered Redirection URI value.
      </t>
      <t>
	The logout URI MUST be an absolute URI as defined by
	Section 4.3 of <xref target='RFC3986' />.
	The logout URI MAY include an
	<spanx style='verb'>application/x-www-form-urlencoded</spanx> formatted
	query component, per Section 3.4 of <xref target='RFC3986' />,
	which MUST be retained when adding additional query parameters.
	The logout URI MUST NOT include a fragment component.
      </t>
      <t>
	The OP renders <spanx style="verb">&lt;iframe src="frontchannel_logout_uri"&gt;</spanx>
	in a page with the registered logout URI as the source
	to trigger the logout actions by the RP.
	Upon receiving a request to render the logout URI in an iframe,
	the RP clears state associated with the logged-in session,
	including any cookies and HTML5 local storage.
	If the End-User is already logged out at the RP when the logout request
	is received, the logout is considered to have succeeded.
      </t>
      <t>
	The OP MAY add these query parameters when rendering the logout URI,
	and if either is included, both MUST be:
	<list style="hanging">

	  <t hangText="iss">
	    <vspace/>
	    Issuer Identifier for the OP issuing the front-channel logout request.
	  </t>

	  <t hangText="sid">
	    <vspace/>
	    Identifier for the Session.
	  </t>

	</list>
      </t>
      <t>
	The RP MAY verify that any <spanx style="verb">iss</spanx> and <spanx style="verb">sid</spanx> parameters
	match the <spanx style="verb">iss</spanx> and <spanx style="verb">sid</spanx> Claims in an ID Token issued
	for the current session or a recent session of this RP with the OP
	and ignore the logout request if they do not.
      </t>
      <t>
	The RP's response SHOULD include the <spanx style="verb">Cache-Control</spanx>
	HTTP response header field with a <spanx style="verb">no-store</spanx> value,
	keeping the response from being cached to prevent cached responses
	from interfering with future logout requests.
	An example of this is:
      </t>
      <figure><artwork><![CDATA[
  Cache-Control: no-store
]]></artwork></figure>
      <t>
	In the case that the RP is also an OP serving as an identity provider
	to downstream logged-in sessions, it is desirable for the logout request
	to the RP to likewise trigger downstream logout requests.
	This is achieved by having the RP serve content in the iframe
	that contains logout requests to the downstream sessions,
	which themselves are nested iframes rendering the downstream logout URIs.
      </t>
      <t>
	If the RP supports
	<xref target="OpenID.Registration">OpenID Connect Dynamic Client Registration 1.0</xref>,
	it uses this metadata value to register the logout URI:
      </t>
      <t>
	<list style="hanging">
	  <t hangText="frontchannel_logout_uri">
	    <vspace/>
	    OPTIONAL.
	    RP URL that will cause the RP to log itself out
	    when rendered in an iframe by the OP.
	    This URL SHOULD use the <spanx style="verb">https</spanx> scheme
	    and MAY contain port, path, and query parameter components;
	    however, it MAY use the <spanx style="verb">http</spanx> scheme,
	    provided that the Client Type is <spanx style="verb">confidential</spanx>,
	    as defined in Section 2.1 of <xref target="RFC6749">OAuth 2.0</xref>, and
	    provided the OP allows the use of <spanx style="verb">http</spanx> RP URIs.
	    An <spanx style="verb">iss</spanx> (issuer) query parameter and
	    a <spanx style="verb">sid</spanx> (session ID) query parameter
	    MAY be included
	    by the OP to enable the RP to validate the request and to determine
	    which of the potentially multiple sessions is to be logged out;
	    if either is included, both MUST be.
	  </t>
	</list>
      </t>
      <t>
	It SHOULD also register this related metadata value:
      </t>
      <t>
	<list style="hanging">
	  <t hangText="frontchannel_logout_session_required">
	    <vspace/>
	    OPTIONAL.
	    Boolean value specifying whether the RP requires that
	    <spanx style="verb">iss</spanx> (issuer)
	    and <spanx style="verb">sid</spanx> (session ID)
	    query parameters be included to identify the RP session with the OP
	    when the <spanx style="verb">frontchannel_logout_uri</spanx> is used.
	    If omitted, the default value is <spanx style="verb">false</spanx>.
	  </t>
	</list>
      </t>
    </section>

    <section anchor="OPLogout" title="OpenID Provider Logout Functionality">
      <t>
	OPs supporting HTTP-based logout need to keep track of
	the set of logged-in RPs so that they know what RPs to contact
	at their logout URIs to cause them to log out.
	Some OPs track this state using a "visited sites" cookie.
	OPs contact them in parallel using a dynamically constructed page
	with HTML <spanx style="verb">&lt;iframe src="frontchannel_logout_uri"&gt;</spanx> tags
	rendering each logged-in RP's logout URI.
      </t>
      <t>
	If the OP supports
	<xref target="OpenID.Discovery">OpenID Connect Discovery 1.0</xref>,
	it uses this metadata value to advertise its support for HTTP-based logout:
      </t>
      <t>
	<list style="hanging">
	  <t hangText="frontchannel_logout_supported">
	    <vspace/>
	    OPTIONAL.
	    Boolean value specifying whether the OP supports HTTP-based logout,
	    with <spanx style="verb">true</spanx> indicating support.
	    If omitted, the default value is <spanx style="verb">false</spanx>.
	  </t>
	</list>
      </t>
      <t>
	It SHOULD also register this related metadata value:
      </t>
      <t>
	<list style="hanging">
	  <t hangText="frontchannel_logout_session_supported">
	    <vspace/>
	    OPTIONAL.
	    Boolean value specifying whether the OP can pass
	    <spanx style="verb">iss</spanx> (issuer)
	    and <spanx style="verb">sid</spanx> (session ID)
	    query parameters to identify the RP session with the OP
	    when the <spanx style="verb">frontchannel_logout_uri</spanx> is used.
	    If supported, the <spanx style="verb">sid</spanx> Claim is also included
	    in ID Tokens issued by the OP.
	    If omitted, the default value is <spanx style="verb">false</spanx>.
	  </t>
	</list>
      </t>
      <t>
	The <spanx style="verb">sid</spanx> (session ID) Claim used in ID Tokens and
	as a <spanx style="verb">frontchannel_logout_uri</spanx> parameter has the following definition:
      </t>
      <t>
	<list style="hanging">
	  <t hangText="sid">
	    <vspace/>
	    OPTIONAL.
	    Session ID - String identifier for a Session.
	    This represents a Session of a User Agent or device
	    for a logged-in End-User at an RP.
	    Different <spanx style="verb">sid</spanx> values are used to identify
	    distinct sessions at an OP.
	    The <spanx style="verb">sid</spanx> value need only be unique
	    in the context of a particular issuer.
	    Its contents are opaque to the RP.
	    Its syntax is the same as an OAuth 2.0 Client Identifier.
	  </t>
	</list>
      </t>

      <section anchor="ExampleFrontchannel" title="Example Front-Channel Logout URL Usage">
	<t>
	  In this non-normative example,
	  the RP has registered the <spanx style="verb">frontchannel_logout_uri</spanx>
	  value <spanx style="verb">https://rp.example.org/frontchannel_logout"</spanx>
	  with the OP.
	  In the simple case,
	  in which <spanx style="verb">frontchannel_logout_session_required</spanx> is false,
	  the OP causes the front-channel logout to occur by rendering this URL in an iframe:
	</t>
	<figure><artwork><![CDATA[
  https://rp.example.org/frontchannel_logout
]]></artwork></figure>
	<t>
	  In a second example,
	  in which <spanx style="verb">frontchannel_logout_session_required</spanx> is true,
	  Issuer and Session ID values are also sent.
	  This example uses an Issuer value of <spanx style="verb">https://server.example.com</spanx>
	  and a Session ID value of <spanx style="verb">08a5019c-17e1-4977-8f42-65a12843ea02</spanx>.
	  In this case,
	  the OP causes the front-channel logout to occur by rendering this URL in an iframe
	  (with line breaks for display purposes only):
	</t>
	<figure><artwork><![CDATA[
  https://rp.example.org/frontchannel_logout
    ?iss=https%3A%2F%2Fserver.example.com
    &sid=08a5019c-17e1-4977-8f42-65a12843ea02
]]></artwork></figure>
      </section>
    </section>

    <section anchor="ImplementationConsiderations" title="Implementation Considerations">
      <t>
	This specification defines features used by both Relying Parties and
	OpenID Providers that choose to implement Front-Channel Logout.
	All of these Relying Parties and OpenID Providers
	MUST implement the features that are listed
	in this specification as being "REQUIRED" or are described with a "MUST".
      </t>

      <section anchor="ThirdPartyContent" title="User Agents Blocking Access to Third-Party Content">
	<t>
	  Note that at the time of this writing,
	  some User Agents (browsers) are starting to block access to third-party content by default
	  to block some mechanisms used to track the End-User's activity across sites.
	  Specifically, the third-party content being blocked is
	  website content with an origin different that the origin of the focused User Agent window.
	  Site data includes cookies and any web storage APIs (sessionStorage, localStorage, etc.).
	</t>
	<t>
	  This can prevent the ability for notifications from the OP at the RP
	  from being able to access the RP's User Agent state to implement local logout actions.
	  In particular, the <spanx style="verb">frontchannel_logout_uri</spanx> might not be able to access
	  the RP's login state when rendered by the OP in an iframe
	  because the iframe is in a different origin than the OP's page.
	  Therefore, deployments of this specification are recommended to include defensive code to detect this situation,
	  and if possible, notify the End-User that the requested RP logouts could not be performed.
	  The details of the defensive code needed are beyond the scope of this specification;
	  it may vary per User Agent and may vary over time,
	  as the User Agent tracking prevention situation is fluid and continues to evolve.
	</t>
	<t>
	  <xref target="OpenID.BackChannel">OpenID Connect Back-Channel Logout 1.0</xref> is not known to be affected by these developments.
	</t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>
	Collisions between Session IDs and the guessing of their values by attackers
	are prevented by including sufficient entropy in Session ID values.
      </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">

      <section anchor="ClaimsRegistration" title="JSON Web Token Claims Registration">
	<t>
	  This specification registers the following Claim in the IANA
	  "JSON Web Token Claims" registry <xref target="IANA.JWT.Claims"/>
	  established by <xref target="JWT"/>.
	</t>

	<section anchor='ClaimsContents' title='Registry Contents'>
	  <t> <?rfc subcompact="yes"?>
	  <list style='symbols'>
	    <t>
	      Claim Name: <spanx style="verb">sid</spanx>
	    </t>
	    <t>
	      Claim Description: Session ID
	    </t>
	    <t>
	      Change Controller: OpenID Foundation Artifact Binding Working Group - openid-specs-ab@lists.openid.net
	    </t>
	    <t>
	      Specification Document(s): <xref target="OPLogout"/> of this specification
	    </t>
	  </list>
	  </t>
	</section>
	<?rfc subcompact="no"?>
      </section>

      <section anchor="DynRegRegistration" title="OAuth Dynamic Client Registration Metadata Registration">
	<t>
	  This specification registers the following client metadata definitions
	  in the IANA "OAuth Dynamic Client Registration Metadata" registry
	  <xref target="IANA.OAuth.Parameters"/>
	  established by <xref target="RFC7591"/>:
	</t>

	<section anchor="DynRegContents" title="Registry Contents">
	  <t> <?rfc subcompact="yes"?>
	    <list style="symbols">
	      <t>
		Client Metadata Name: <spanx style="verb">frontchannel_logout_uri</spanx>
	      </t>
	      <t>
		Client Metadata Description:
		RP URL that will cause the RP to log itself out
		when rendered in an iframe by the OP
	      </t>
	      <t>
		Change Controller: OpenID Foundation Artifact Binding Working Group - openid-specs-ab@lists.openid.net
	      </t>
	      <t>
		Specification Document(s): <xref target="RPLogout"/> of this specification
	      </t>
	    </list>
	  </t>
	  <t>
	    <list style="symbols">
	      <t>
		Client Metadata Name: <spanx style="verb">frontchannel_logout_session_required</spanx>
	      </t>
	      <t>
		Client Metadata Description:
		Boolean value specifying whether the RP requires that
		a <spanx style="verb">sid</spanx> (session ID)
		query parameter be included to identify the RP session with the OP
		when the <spanx style="verb">frontchannel_logout_uri</spanx> is used
	      </t>
	      <t>
		Change Controller: OpenID Foundation Artifact Binding Working Group - openid-specs-ab@lists.openid.net
	      </t>
	      <t>
		Specification Document(s): <xref target="RPLogout"/> of this specification
	      </t>
	    </list>
	  </t>
	</section>
	<?rfc subcompact="no"?>
      </section>

      <section anchor="ASMetadataRegistry" title="OAuth Authorization Server Metadata Registry">
	<t>
	  This specification registers the following metadata name in the
	  IANA "OAuth Authorization Server Metadata" registry <xref target="IANA.OAuth.Parameters"/>
	  established by <xref target="RFC8414"/>.
	</t>

	<section anchor='MetadataContents' title='Registry Contents'>
	  <t>
	    <?rfc subcompact="yes"?>
            <list style='symbols'>
              <t>
                Metadata Name: <spanx style="verb">frontchannel_logout_supported</spanx>
              </t>
              <t>
                Metadata Description:
		Boolean value specifying whether the OP supports HTTP-based logout,
		with <spanx style="verb">true</spanx> indicating support
              </t>
              <t>
                Change Controller: OpenID Foundation Artifact Binding Working Group - openid-specs-ab@lists.openid.net
              </t>
              <t>
                Specification Document(s): <xref target="OPLogout"/> of this document
              </t>
	    </list>
	  </t>
	</section>
	<?rfc subcompact="no"?>

      </section>

    </section>

  </middle>

  <back>
    <references title="Normative References">
      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml -->

<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S" surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml -->

<reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T" surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R" surname="Fielding"/>
    <author fullname="L. Masinter" initials="L" surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>

      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml -->

<reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D" role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>

      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7230.xml -->

<reference anchor="RFC7230" target="https://www.rfc-editor.org/info/rfc7230">
  <front>
    <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
    <author fullname="R. Fielding" initials="R" role="editor" surname="Fielding"/>
    <author fullname="J. Reschke" initials="J" role="editor" surname="Reschke"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7230"/>
  <seriesInfo name="DOI" value="10.17487/RFC7230"/>
</reference>

      <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
        <front>
          <title>OpenID Connect Core 1.0</title>

          <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
	    <organization abbrev="NRI">Nomura Research Institute, Ltd.</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
	    <organization abbrev="Ping Identity">Ping Identity</organization>
          </author>

          <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
            <organization abbrev="Microsoft">Microsoft</organization>
          </author>

          <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
            <organization abbrev="Google">Google</organization>
          </author>

	  <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
	    <organization abbrev="Salesforce">Salesforce</organization>
	  </author>

          <date day="8" month="November" year="2014"/>
        </front>
      </reference>

      <reference anchor="OpenID.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0.html">
        <front>
          <title>OpenID Connect Discovery 1.0</title>

          <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
            <organization abbrev="NRI">Nomura Research Institute, Ltd.</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="Ping Identity">Ping Identity</organization>
          </author>

          <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
            <organization abbrev="Microsoft">Microsoft</organization>
          </author>

          <author fullname="Edmund Jay" initials="E." surname="Jay">
            <organization abbrev="Illumila">Illumila</organization>
          </author>

          <date day="8" month="November" year="2014"/>
        </front>
      </reference>

      <reference anchor="OpenID.Registration" target="https://openid.net/specs/openid-connect-registration-1_0.html">
        <front>
          <title>OpenID Connect Dynamic Client Registration 1.0</title>

          <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
            <organization abbrev="NRI">Nomura Research Institute, Ltd.</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="Ping Identity">Ping Identity</organization>
          </author>

          <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
            <organization abbrev="Microsoft">Microsoft</organization>
          </author>

          <date day="8" month="November" year="2014"/>
        </front>
      </reference>

      <reference anchor="OpenID.Session" target="https://openid.net/specs/openid-connect-session-1_0.html">
	<front>
	  <title>OpenID Connect Session Management 1.0</title>

	  <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
	    <organization>Google</organization>
	  </author>

	  <author fullname="Naveen Agarwal" initials="N." surname="Agarwal">
	    <organization>Microsoft</organization>
	  </author>

	  <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
	    <organization abbrev="NAT.Consulting">NAT.Consulting</organization>
	  </author>

	  <author fullname="John Bradley" initials="J." surname="Bradley">
	    <organization abbrev="Yubico">Yubico</organization>
	  </author>

	  <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
	    <organization abbrev="Microsoft">Microsoft</organization>
	  </author>

	  <date day="12" month="September" year="2022" />
	</front>
      </reference>

      <reference anchor="OpenID.RPInitiated" target="https://openid.net/specs/openid-connect-rpinitiated-1_0.html">
	<front>
	  <title>OpenID Connect RP-Initiated Logout 1.0</title>

	  <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
	    <organization abbrev="Microsoft">Microsoft</organization>
	  </author>

	  <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
	    <organization>Google</organization>
	  </author>

	  <author fullname="Naveen Agarwal" initials="N." surname="Agarwal">
	    <organization>Microsoft</organization>
	  </author>

	  <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
	    <organization abbrev="NAT.Consulting">NAT.Consulting</organization>
	  </author>

	  <author fullname="John Bradley" initials="J." surname="Bradley">
	    <organization abbrev="Yubico">Yubico</organization>
	  </author>

	  <date day="12" month="September" year="2022" />
	</front>
      </reference>

      <reference anchor="OpenID.BackChannel" target="https://openid.net/specs/openid-connect-backchannel-1_0.html">
	<front>
	  <title>OpenID Connect Back-Channel Logout 1.0</title>

	  <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
	    <organization abbrev="Microsoft">Microsoft</organization>
	  </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="Yubico">Yubico</organization>
          </author>

	  <date day="12" month="September" year="2022" />
	</front>
      </reference>

      <reference anchor="IANA.JWT.Claims" target="https://www.iana.org/assignments/jwt">
        <front>
          <title>JSON Web Token Claims</title>
          <author>
            <organization>IANA</organization>
          </author>
	  <date/>
        </front>
      </reference>

      <reference anchor="IANA.OAuth.Parameters" target="https://www.iana.org/assignments/oauth-parameters">
        <front>
          <title>OAuth Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
	  <date/>
        </front>
      </reference>

    </references>

    <references title="Informative References">
      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7591.xml -->

<reference anchor="RFC7591" target="https://www.rfc-editor.org/info/rfc7591">
  <front>
    <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
    <author fullname="J. Richer" initials="J" role="editor" surname="Richer"/>
    <author fullname="M. Jones" initials="M" surname="Jones"/>
    <author fullname="J. Bradley" initials="J" surname="Bradley"/>
    <author fullname="M. Machulak" initials="M" surname="Machulak"/>
    <author fullname="P. Hunt" initials="P" surname="Hunt"/>
    <date month="July" year="2015"/>
    <abstract>
      <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers.  Registration requests send a set of desired client metadata values to the authorization server.  The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client.  The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol.  This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7591"/>
  <seriesInfo name="DOI" value="10.17487/RFC7591"/>
</reference>

      <!-- Reference from https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml -->

<reference anchor="RFC8414" target="https://www.rfc-editor.org/info/rfc8414">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author fullname="M. Jones" initials="M" surname="Jones"/>
    <author fullname="N. Sakimura" initials="N" surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J" surname="Bradley"/>
    <date month="June" year="2018"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8414"/>
  <seriesInfo name="DOI" value="10.17487/RFC8414"/>
</reference>

      <reference anchor="JWT" target="https://tools.ietf.org/html/rfc7519">
	<front>
	  <title>JSON Web Token (JWT)</title>

	  <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
	    <organization abbrev="Microsoft">Microsoft</organization>
	  </author>

	  <author fullname="John Bradley" initials="J." surname="Bradley">
	    <organization abbrev="Ping Identity">Ping Identity</organization>
	  </author>

	  <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
	    <organization abbrev="NRI">Nomura Research Institute, Ltd.</organization>
	  </author>

	  <date month="May" year="2015" />
	</front>

	<seriesInfo name="RFC" value="7519"/>
	<seriesInfo name="DOI" value="10.17487/RFC7519"/>
      </reference>

    </references>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
	The OpenID Community would like to thank the following people for
	their contributions to this specification:
      </t>
      <t>
        <list style="empty">
          <t>John Bradley (ve7jtb@ve7jtb.com), Yubico</t>
	  <t>Brian Campbell (bcampbell@pingidentity.com), Ping Identity</t>
	  <t>Andrii Deinega (andrii.deinega@gmail.com), GlobalLogic</t>
	  <t>Jim des Rivieres (Jim_des_Rivieres@ca.ibm.com), IBM</t>
	  <t>Vladimir Dzhuvinov (vladimir@connect2id.com), Connect2id</t>
	  <t>Joseph Heenan (joseph@authlete.com), Authlete</t>
          <t>Michael B. Jones (mbj@microsoft.com), Microsoft</t>
	  <t>Torsten Lodderstedt (torsten@lodderstedt.net), yes.com</t>
	  <t>Nat Sakimura (nat@nat.consulting), NAT.Consulting</t>
	  <t>Filip Skokan (panva.ip@gmail.com), Auth0</t>
        </list>
      </t>
    </section>

    <section anchor="Notices" title="Notices">
      <t>Copyright (c) 2022 The OpenID Foundation.</t>

      <t>The OpenID Foundation (OIDF) grants to any Contributor, developer,
      implementer, or other interested party a non-exclusive, royalty free,
      worldwide copyright license to reproduce, prepare derivative works from,
      distribute, perform and display, this Implementers Draft or Final
      Specification solely for the purposes of (i) developing specifications,
      and (ii) implementing Implementers Drafts and Final Specifications based
      on such documents, provided that attribution be made to the OIDF as the
      source of the material, but that such attribution does not indicate an
      endorsement by the OIDF.</t>

      <t>The technology described in this specification was made available
      from contributions from various sources, including members of the OpenID
      Foundation and others. Although the OpenID Foundation has taken steps to
      help ensure that the technology is available for distribution, it takes
      no position regarding the validity or scope of any intellectual property
      or other rights that might be claimed to pertain to the implementation
      or use of the technology described in this specification or the extent
      to which any license under such rights might or might not be available;
      neither does it represent that it has made any independent effort to
      identify any such rights. The OpenID Foundation and the contributors to
      this specification make no (and hereby expressly disclaim any)
      warranties (express, implied, or otherwise), including implied
      warranties of merchantability, non-infringement, fitness for a
      particular purpose, or title, related to this specification, and the
      entire risk as to implementing this specification is assumed by the
      implementer. The OpenID Intellectual Property Rights policy requires
      contributors to offer a patent promise not to assert certain patent
      claims against other contributors and against implementers. The OpenID
      Foundation invites any interested party to bring to its attention any
      copyrights, patents, patent applications, or other proprietary rights
      that may cover technology that may be required to practice this
      specification.</t>
    </section>

  </back>
</rfc>
