<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="exp" docName="draft-openid-connect-SCR-0_1.xml"
     ipr="trust200902">
  <front>
    <title abbrev="Abbreviated-Title">OpenID Connect Simple Client
    Registration 1.0 - draft 02</title>

    <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
      <organization abbrev="NRI">Nomura Research Institute,
      Ltd.</organization>

      <address>
        <email>n-sakimura@nri.co.jp</email>
      </address>
    </author>

    <author fullname="John Bradley" initials="J." role="editor"
            surname="Bradley">
      <organization abbrev="Protiviti Government Services">Protiviti
      Government Services</organization>

      <address>
        <email>jbradley@mac.com</email>
      </address>
    </author>

    <author fullname="Mike Jones" initials="M." surname="Jones">
      <organization abbrev="Microsoft">Microsoft Corporation</organization>

      <address>
        <email>Michael.Jones@microsoft.com</email>
      </address>
    </author>

    <date day="16" month="June" year="2011" />

    <abstract>
      <t>OpenID Connect is an identity framework that provides authentication,
      authorization, and attribute transmition capability. It allows third
      party attested claims from distributed sources. The specification suite
      consists of Core, Protocol Bindings, Dynamic Registration, Discovery,
      and Extensions. This specification is the "Dynamic Registration" part of
      the suite that defines how clients register with openID providers.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>In order for an OpenID client to utilize OpenID services for a user,
      the client needs to register with the OpenID provider to aquire a client
      ID and shared secret. This document describes how a new client can
      register with the provider, and how a client allready in posetion of a
      client_id can retreve updated registration information.</t>

      <t>The Client Registration endpoint may be co-resident with the token
      endpoint as an optimization in some deplyments.</t>
    </section>

    <section anchor="terminology" title="Terminology">
      <t><list style="hanging">
          <t hangText="Client">An application obtaining authorization and
          making protected resource requests.</t>

          <t hangText="End-user">A human resource owner.</t>

          <t hangText="Principal">A human resource owner that is the target of
          a request in Simple Web Discovery.</t>

          <t hangText="OpenID Provider (OP)">Authorization Servers that are
          able to support OpenID Connect Messages.</t>

          <t hangText="Relying Party (RP)">Client and Resource Servers.</t>

          <t hangText="End-User Authorization Endpoint">The Authorization
          Server's endpoint capable of authenticating the End-User and
          obtaining authorization.</t>

          <t hangText="Client Identifier">An unique identifier that the client
          uses to identify itself to the OP.</t>

          <t hangText="Token Endpoint">The Authorization Server's HTTP
          endpoint capable of issuing tokens.</t>

          <t hangText="OP Endpoints">End-User Authentication, Authorization,
          and Token Endpoint.</t>

          <t hangText="RP Endpoints">The endpoint to which the OP responses
          are returned through redirect.</t>

          <t hangText="UserInfo Endpoint">A protected resource that when
          presented with a token by the client returns authorized information
          about the current user.</t>

          <t hangText="Identifier">An Identifier is either a "http" or "https"
          URI, (commonly referred to as a "URL" within this document), or an
          account URI. This document defines various kinds of Identifiers,
          designed for use in different contexts.</t>
        </list></t>
    </section>

    <section title="Discovery">
      <t>OpenID Connect uses the registration_endpoint from the Provider
      Configuration Response <xref target="OCD">Sec 4.2</xref>.</t>
    </section>

    <section title="Client Registration Endpoint">
      <t>The Client Registration Endpoint returns registration information for
      the client to configure itself for the openID provider.</t>

      <section title="Request">
        <t>Clients MAY send POST requests with the following parameters form
        encoded in the POST body to the Client Registration Endpoint.</t>

        <t><list style="hanging">
            <t hangText="type">REQUIRED values "client_associate",
            "client_update"</t>

            <t hangText="client_id">OPTIONAL. used with "client_update"</t>

            <t hangText="client_secret">OPTIONAL used with "client_update"</t>

            <t hangText="contact">OPTIONAL comma separated list email
            addresses for people allowed to administer the application.</t>

            <t hangText="application_type">OPTIONAL "native" or "web"</t>

            <t hangText="application_name to be ">OPTIONAL Name of the
            application to be presented to the user.</t>

            <t hangText="logo_url">OPTIONAL url that a logo for the
            application can be retreved from.</t>

            <t hangText="redirect_url">OPTIONAL comma separated list of
            redirect URL </t>

            <t hangText="js_origin_url">OPTIONAL comma separated list of Java
            Script Origins (used for Post Message flow)</t>

            <t hangText="jwk_url">OPTIONAL URL for the RP's <xref
            target="JWK">JSON Web Key</xref></t>
          </list><figure>
            <artwork><![CDATA[POST /oauth/token
type=client_associate&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2callback HTTP/1.1
Host: server.example.com
]]></artwork>
          </figure></t>
      </section>

      <section title="Response">
        <t>The response is returned as a JSON object with all the paramaters
        as top level elements.</t>

        <t><list style="hanging">
            <t hangText="client_id">REQUIRED The unique client identifier</t>

            <t hangText="client_secret">REQUIRED The client secret. This
            should change with each response.</t>

            <t hangText="expires_in">REQUIRED The number of seconds that this
            id and secret are good for or "0" if it does not expire.</t>
          </list></t>

        <t>The following is an example resp[onse.</t>

        <t><figure>
            <artwork><![CDATA[HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

     {
       "client_id":"SlAV32hkKG",
       "client_secret":"cf136dc3c1fd9153029bb9c6cc9ecead918bad9887fce6c93f31185e5885805d",
       "expires_in":3600
     }]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Other Items for Consideration">
      <t></t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Since requests to the client registration endpoint result in the
      transmission of clear-text credentials (in the HTTP request and
      response), the server MUST require the use of a transport-layer security
      mechanism when sending requests to the token endpoint. The server MUST
      support TLS 1.2 as defined in [RFC5246], and MAY support additional
      transport-layer mechanisms meeting its security requirements.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>

      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml'?>

      <reference anchor="OpenID.CC">
        <front>
          <title>OpenID Connect Connect Core 1.0</title>

          <author fullname="David Recordon" initials="D." surname="Recordon">
            <organization abbrev="">Facebook</organization>
          </author>

          <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="protiviti">Protiviti Government
            Service</organization>
          </author>

          <author fullname="Breno de Madeiros" initials="B."
                  surname="de Madeiros">
            <organization abbrev="GOOG">Google</organization>
          </author>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <date day="14" month="January" year="2011" />
        </front>

        <format target="http://openid4.us/specs/ab/openid-connect-core-1_0.html"
                type="HTML" />
      </reference>

      <reference anchor="OCD">
        <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="protiviti">Protiviti Government
            Service</organization>
          </author>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <date day="4" month="July" year="2011" />
        </front>

        <format target="http://openid4.us/specs/ab/draft-openid-connect-discovery-0_1"
                type="HTML" />
      </reference>

      <reference anchor="OpenID.AB">
        <front>
          <title>OpenID Connect Artifact Binding 1.0</title>

          <author fullname="Nat Sakimura" initials="N." role="editor"
                  surname="Sakimura">
            <organization abbrev="NRI">Nomura Research Institute,
            Ltd.</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="protiviti">Protiviti Government
            Service</organization>
          </author>

          <author fullname="Breno de Madeiros" initials="B."
                  surname="de Madeiros">
            <organization abbrev="GOOG">Google</organization>
          </author>

          <author fullname="Ryo Ito" initials="R." surname="Ito">
            <organization abbrev="YahooJ">Yahoo! Japan</organization>
          </author>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <date day="8" month="January" year="2011" />
        </front>

        <format target="http://openid4.us/specs/ab/openid-connect-ab-1_0.html"
                type="HTML" />
      </reference>

      <reference anchor="SWD">
        <front>
          <title>Simple Web Discovery</title>

          <author fullname="Mike Jones" initials="M." role="editor"
                  surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <author fullname="Yaron Goland" initials="Y." surname="Goland">
            <organization abbrev="protiviti">Protiviti Government
            Service</organization>
          </author>

          <date day="26" month="October" year="2010" />
        </front>

        <format target="http://self-issued.info/docs/draft-jones-simple-web-discovery-00.html"
                type="HTML" />
      </reference>

      <reference anchor="OpenID.2.0">
        <front>
          <title>OpenID Authentication 2.0</title>

          <author fullname="specs@openid.net" initials=""
                  surname="specs@openid.net">
            <organization abbrev="oidf"></organization>
          </author>

          <date year="2007" />
        </front>

        <format target="http://www.openid.net/specs/openid-authentication-2_0.txt"
                type="TXT" />

        <format target="http://www.openid.net/specs/openid-authentication-2_0.html"
                type="HTML" />
      </reference>

      <reference anchor="JWT">
        <front>
          <title>JSON Web Token</title>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <author fullname="Dirk Balfanz" initials="D." surname="Balfanz">
            <organization abbrev="goog">Google</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="pgs">rotivity Government
            Service</organization>
          </author>

          <author fullname="Yaron Goland" initials="Y." surname="Goland">
            <organization abbrev="msft">Microsoft</organization>
          </author>

          <author fullname="John Panzer" initials="J." surname="Panzer">
            <organization abbrev="goog">Google</organization>
          </author>

          <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
            <organization abbrev="nri">Nomura Research Institute,
            Ltd.</organization>
          </author>

          <author fullname="Paul Tarjan" initials="P." surname="Tarjan">
            <organization abbrev="fb">Facebook</organization>
          </author>

          <date day="28" month="March" year="2011" />
        </front>

        <format target="http://self-issued.info/docs/draft-jones-json-web-token-03.html"
                type="HTML" />
      </reference>

      <reference anchor="JWS">
        <front>
          <title>JSON Web Signatures</title>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization abbrev="MSFT">Microsoft</organization>
          </author>

          <author fullname="Dirk Balfanz" initials="D." surname="Balfanz">
            <organization abbrev="goog">Google</organization>
          </author>

          <author fullname="John Bradley" initials="J." surname="Bradley">
            <organization abbrev="pgs">rotivity Government
            Service</organization>
          </author>

          <author fullname="Yaron Goland" initials="Y." surname="Goland">
            <organization abbrev="msft">Microsoft</organization>
          </author>

          <author fullname="John Panzer" initials="J." surname="Panzer">
            <organization abbrev="goog">Google</organization>
          </author>

          <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
            <organization abbrev="nri">Nomura Research Institute,
            Ltd.</organization>
          </author>

          <author fullname="Paul Tarjan" initials="P." surname="Tarjan">
            <organization abbrev="fb">Facebook</organization>
          </author>

          <date day="28" month="March" year="2011" />
        </front>

        <format target="http://self-issued.info/docs/draft-jones-json-web-signature-01.html"
                type="HTML" />
      </reference>

      <reference anchor="JWK">
        <front>
          <title>JSON Web Key (JWK)</title>

          <author fullname="Mike Jones" initials="M." surname="Jones">
            <organization>M.</organization>
          </author>

          <date day="29" month="April" year="2011" />
        </front>
      </reference>

      <reference anchor="XRI_Syntax_2.0">
        <front>
          <title>Extensible Resource Identifier (XRI) Syntax V2.0</title>

          <author fullname="Drummond Reed " initials="D." surname="Reed">
            <organization></organization>
          </author>

          <author fullname="Dave McAlpin" initials="D." surname="McAlpin">
            <organization></organization>
          </author>

          <date day="14" month="November" year="2005" />
        </front>

        <format target="http://www.oasis-open.org/committees/download.php/15376/xri-syntax-V2.0-cs.html"
                type="HTML" />

        <format target="http://www.oasis-open.org/committees/download.php/15377/xri-syntax-V2.0-cs.pdf"
                type="PDF" />
      </reference>
    </references>
  </back>
</rfc>
