<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-hunt-oauth-v2-user-a4c-02"
     ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="OAuth 2.0 User Authentication">Providing User Authentication Information to OAuth 2.0 Clients</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Phil Hunt" initials="P." role="editor" surname="Hunt">
      <organization>Oracle</organization>

      <address>
        <email>phil.hunt@yahoo.com</email>
      </address>
    </author>

    <author fullname="Tony Nadalin" initials="T." surname="Nadalin">
      <organization>Microsoft</organization>

      <address>
        <email>tonynad@microsoft.com</email>
      </address>
    </author>

    <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
      <organization abbrev="Microsoft">Microsoft</organization>
      <address>
        <email>mbj@microsoft.com</email>
        <uri>http://self-issued.info/</uri>
      </address>
    </author>

    <date day="14" month="May" year="2014"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Security Area</area>

    <workgroup>OAuth Working Group</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>Authentication</keyword>

    <keyword>Internet-Draft</keyword>

    <keyword>User</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>
	This specification defines a way for OAuth 2.0 clients to
	verify the identity of the End-User and obtain consent based
	upon the authentication performed by an Authorization Server.
	The interactions defined by this specification are
	intentionally compatible with the OpenID Connect protocol.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Section 4.1 of the OAuth 2.0 Authorization Framework <xref
      target="RFC6749"/> defines the Authorization Code Grant flow which
      defines a redirect flow, typically via a web browser, that enables
      confidential clients to obtain access and refresh tokens. As part of
      this flow, resource owners are authenticated via the user agent so that
      their consent may be obtained. This flow defines an Authentication
      Code Grant extension, which enables clients to request authentication
      of the End-User and makes information about the authentication
      that was performed available to the client in a standard format.</t>

      <t>This document extends the OAuth 2.0 authorization request and
      response messages for the Authorization Code flow to also
      request authentication of the End-User and
      to return information about the authentication performed.
      The interactions defined by this specification are
      intentionally compatible with the
      <xref target="OpenID.Core">OpenID Connect</xref> protocol.
      </t>
      <t>
      This specification does not define a
      resource owner profile information API. It is assumed that
      other APIs such as the SCIM API <xref target="I-D.ietf-scim-api"/> or
      the <xref target="OpenID.Core">OpenID Connect</xref> UserInfo Endpoint
      could be used for this purpose.
      </t>

      <section anchor="rnc" title="Requirements Notation and Conventions">
        <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>
      </section>


      <section anchor="Terminology" title="Terminology">
        <t>
	  This specification uses the terms "Access Token", "Authorization Code",
	  "Authorization Endpoint", "Authorization Grant", "Authorization Server",
	  "Client", "Client Authentication", "Client Identifier", "Client Secret",
	  "Grant Type", "Protected Resource", "Redirection URI", "Refresh Token",
	  "Resource Owner", "Resource Server", "Response Type", and "Token Endpoint"
	  defined by <xref target="RFC6749">OAuth 2.0</xref>,
	  the terms "Claim", "Claim Name", "Claim Value", and "JSON Web Token (JWT)"
	  defined by <xref target="I-D.ietf-oauth-json-web-token">JSON Web Token (JWT)</xref>,
	  the term "User Agent" defined by <xref target="RFC2616">RFC 2616</xref>.
        </t>
        <t>
          This specification also defines the following terms:
          <list style="hanging">
            <t hangText="Authentication Request">
	      <vspace/>
	      OAuth 2.0 Authorization Request using extension parameters and scopes
	      defined by this specification to request that the End-User be authenticated
	      by the Authorization Server to the Client.
	    </t>

            <t hangText="Authentication Context">
	      <vspace/>
              Information that the Relying Party can require before it makes an 
              entitlement decision with respect to an authentication response. 
              Such context can include, but is not limited to, the actual 
              authentication method used or level of assurance such as 
              <xref target="ISO29115">ISO/IEC 29115</xref> 
              entity authentication assurance level.
            </t>

            <t hangText="Authentication Context Class">
	      <vspace/>
              Set of authentication methods or procedures that are considered
	      to be equivalent to each other in a particular context.
            </t>

            <t hangText="Authentication Context Class Reference">
	      <vspace/>
              Identifier for an Authentication Context Class. 
            </t>

            <t hangText="Authentication Method">
	      <vspace/>
              Specific means by which authentication is performed.
	      In some cases, more than one authentication method may be used
	      for a single authentication event.
            </t>

            <t hangText="Authentication Method Reference">
	      <vspace/>
              Identifier for an Authentication Method. 
            </t>

            <t hangText="End-User">
	      <vspace/>
              Human participant.
            </t>

            <t hangText="ID Token">
	      <vspace/>
              <xref target="I-D.ietf-oauth-json-web-token">JSON Web Token (JWT)</xref>
	      that contains Claims about the Authentication event.
	      It MAY contain other Claims.
            </t>

            <t hangText="Issuer">
	      <vspace/>
	      Entity that issues a set of Claims.
	    </t>

          </list>
        </t>
      </section>
    </section>

    <section anchor="AuthenticateGrant" title="Authenticate Code Grant">
      <t>The Authentication Code Grant type is used in exactly the same manner
      as the Authorization Code Grant in <xref target="RFC6749">Section
      4.1</xref> and has the same features and conditions.
      This specification extends the features available by making it possible for
      clients to test and request authentication and authorization as well
      as to obtain information about the authentication performed
      via the Authorization Code flow.</t>

      <section anchor="Authentication_Request" title="Authentication Request">
        <t>In addition to the parameters defined in <xref
        target="RFC6749">Section 4.1.1</xref>, the following additional
        parameters are defined:
	  <list style="hanging">

            <t hangText="prompt">
	      <vspace/>
	      OPTIONAL. Space
            delimited, case sensitive list of ASCII string values that
            specifies whether the Authorization Server prompts the End-User
            for reauthentication and consent. The defined values are:
	      <list style="hanging">
                <t hangText="none">
		  <vspace/>
		  The authorization server MUST NOT display
                any authentication or consent user interface pages. An error
                is returned if the End-User is not already authenticated or
                the Client does not have pre-configured consent for the
                requested Claims or does not fulfill other conditions for
                processing. This can be used as a method to check for existing
                authentication and/or consent.</t>

                <t hangText="login">
		  <vspace/>
		  Regardless of the current user
                authentication state, the Authorization Server SHOULD prompt
                the End-User for reauthentication. If it cannot prompt the
                End-User, it MUST return an error.</t>

                <t hangText="select_account">
		  <vspace/>
		  The Authorization Server SHOULD
                prompt the End-User to select a user account. This allows an
                End-User who has multiple accounts at the Authorization Server
                to select amongst the multiple accounts that they might have
                current sessions for. If it cannot prompt the End-User, it
                MUST return an error.</t>
              </list></t>

            <!--

            <t hangText="display">
	    <vspace/>
	    OPTIONAL. ASCII string value that specifies
            how the Authorization Server displays the authentication and
            consent user interface pages to the End-User. The defined values
            are:
	      <list style="hanging">
                <t hangText="page">
		<vspace/>
		The Authorization Server SHOULD display
                authentication and consent UI consistent with a full
                User Agent page view. If the display parameter is not
                specified this is the default display mode.</t>

                <t hangText="popup">
		<vspace/>
		The Authorization Server SHOULD display
                authentication and consent UI consistent with a popup
                User Agent window. The popup User Agent window SHOULD be 450
                pixels wide and 500 pixels tall.</t>

                <t hangText="touch">
		<vspace/>
		The Authorization Server SHOULD display
                authentication and consent UI consistent with a device that
                leverages a touch interface. The Authorization Server MAY
                attempt to detect the touch device and further customize the
                interface.</t>

                <t hangText="wap">
		<vspace/>
		The Authorization Server SHOULD display
                authentication and consent UI consistent with a "feature
                phone" type display.</t>
              </list></t>

	    -->

	    <t hangText="acr_values">
	      <vspace/>
	      OPTIONAL.
	      Requested Authentication Context Class Reference values. 
	      Space-separated string that specifies the <spanx style="verb">acr</spanx>
	      values that the Authorization Server is being requested to use 
	      for processing this Authentication Request,
	      with the values appearing in order of preference.
	      The Authentication Context Class satisfied by the authentication
	      performed is returned as the <spanx style="verb">acr</spanx> Claim Value.
	    </t>

	    <t hangText="amr_values">
	      <vspace/>
	      OPTIONAL.
	      Requested Authentication Method Reference values. 
	      Space-separated string that specifies the <spanx style="verb">amr</spanx>
	      values that the Authorization Server is being requested to use 
	      for processing this Authentication Request,
	      with the values appearing in order of preference.
	      The Authentication Methods used for the authentication
	      performed are returned as the <spanx style="verb">amr</spanx> Claim Value.
	    </t>

            <t hangText="min_alv">
	      <vspace/>
	      OPTIONAL. A value of "1", "2", "3", or "4".
            The minimum requested authentication assurance level as defined by
            <xref target="ISO29115"/> (see also <xref
            target="NIST_SP-800-63-2"/>).
	    The value actually achieved is returned as the
	    <spanx style="verb">alv</spanx> claim value, or if no defined
	    authentication assurance level is achieved,
	    an <spanx style="verb">alv</spanx> claim SHOULD NOT be returned.
	    When the <spanx style="verb">min_alv</spanx> request parameter
            is not used, the authorization server MAY choose any
            authentication assurance level or use none.</t>

            <t hangText="ui_hint">
	      <vspace/>
	      OPTIONAL. A helpful
            text message that should be displayed to the End-User during the
            authentication process.
	    [[ NOTE:  It's not clear what the use case for this is
	    or how internationalization of the string would be performed. ]]
	    </t>

          </list></t>

        <t>For example, the client directs the User Agent to make the following
        HTTP request using TLS (with extra line breaks for display purposes
        only):<figure>
            <artwork>
  GET /authenticate?
    response_type=code
    &amp;client_id=s6BhdRkqt3
    &amp;redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
    &amp;state=af0ifjsldkj
    &amp;prompt=login
  Host: server.example.com
</artwork>
          </figure></t>

        <t>The authorization server MUST:<list style="symbols">
            <t>Perform the normal OAuth 2.0 authorization process,</t>

            <t>MAY elect not to request consent if no access token is to be
            issued (i.e. this is an authentication only request),</t>

            <t>MUST re-authenticate the End-User if <spanx style="verb">prompt</spanx>
            contains the parameter <spanx style="verb">login</spanx>,</t>

            <t>MUST obtain consent from the End-User if <spanx style="verb">prompt</spanx>
            contains the parameter <spanx style="verb">consent</spanx>, and</t>

            <t>MUST return an error if <spanx style="verb">prompt</spanx>
            contains <spanx style="verb">none</spanx> and the End-User is not currently authenticated.</t>
          </list></t>
      </section>

      <section title="Authentication Response">
        <t>The response is identical to the one described in <xref
        target="RFC6749">Section 4.1.2</xref>.</t>

        <section title="Error Responses">
          <t>In addition to those defined in <xref target="RFC6749">Section
          4.1.2.1</xref>, an additional <spanx style="verb">error</spanx> type is defined.
          The error value <spanx style="verb">login_required</spanx>
	  MUST be returned after an authentication
          request parameter <spanx style="verb">prompt</spanx> is provided
          containing value <spanx style="verb">none</spanx> and the End-User is found to be currently
          unauthenticated.</t>
        </section>
      </section>

      <section title="Access Token Request">
        <t>The access token request is identical to the one described in <xref
        target="RFC6749">Section 4.1.3</xref>. In cases where there is no
        associated resource API and an access token is not to be issued, the
        normal OAuth 2.0 token request is still made.</t>
      </section>

      <section title="Access Token Response">
        <t>If the access token request is valid and authorized, the
        authorization server issues an access token and optional refresh token
        as described in <xref target="RFC6749">Section 5.1</xref> with the
        exception that the issuance of an access token is OPTIONAL. If the
        request client authentication failed or is invalid, the authorization
        server returns an error response as described in Section 5.2.</t>

        <t>In addition to the parameters described in Section 5, a <xref
        target="I-D.ietf-oauth-json-web-token">JSON Web Token (JWT)</xref>
        known as an ID Token is returned using the <spanx style="verb">id_token</spanx>
	parameter containing the following claims:
	  <list style="hanging">

            <t hangText="iss">
	      <vspace/>
	      REQUIRED. An identifier
            representing the issuer of the authentication. This MAY be the
            authorization endpoint URL.</t>

            <t hangText="sub">
	      <vspace/>
	      REQUIRED. An identifier for the
            authenticated subject. The same identifier MUST be returned for the
            same authenticated End-User on the same Client ID. The authenticated
            End-User's <spanx style="verb">sub</spanx> value MAY change for different Client ID values.</t>

            <t hangText="aud">
	      <vspace/>
	      REQUIRED. Contains the
            Client ID of the client receiving the assertion as an audience value.
	    Other audience values MAY also be present.
	    </t>

            <t hangText="auth_time">
	      <vspace/>
	      REQUIRED. The time at which the
            End-User was authenticated, expressed in number of seconds from
            1970-01-01T0:0:0Z as measured in UTC until the date/time. See
            <xref target="RFC3339"/> for details regarding date/times in
            general and UTC in particular.
	    <spanx style="verb">auth_time</spanx> MAY be a time earlier than
            when the ID Token was issued,
	    as defined by <spanx style="verb">iat</spanx>.</t>

            <t hangText="iat">
	      <vspace/>
	      REQUIRED. The time at which the 
            ID Token was issued, expressed in number of seconds from
            1970-01-01T0:0:0Z as measured in UTC until the date/time. See
            <xref target="RFC3339"/> for details regarding date/times in
            general and UTC in particular.</t>

            <t hangText="exp">
	      <vspace/>
	      REQUIRED. The time at which the
            ID Token expires, expressed in number of
            seconds from 1970-01-01T0:0:0Z as measured in UTC until the
            date/time. See <xref target="RFC3339"/> for details regarding
            date/times in general and UTC in particular. Note that <spanx style="verb">expires_in</spanx>
            refers to the access token lifespan whereas <spanx style="verb">exp</spanx> refers
            to the ID Token lifespan.</t>

	    <t hangText="acr">
	      <vspace/>
	      OPTIONAL.
	      Authentication Context Class Reference.
	      String specifying an Authentication Context Class Reference value
	      that identifies the Authentication Context Class that the
	      authentication performed satisfied.
	      The value "0" indicates the End-User authentication
	      did not meet the requirements of
	      <xref target="ISO29115">ISO/IEC 29115</xref> level 1.
	      Authentication using a long-lived browser cookie, for instance, is one 
	      example where the use of "level 0" is appropriate.
	      An absolute URI or an <xref target="RFC6711">RFC 6711</xref>
	      registered name
	      SHOULD be used as the <spanx style="verb">acr</spanx> value.
	      Parties using this claim will need to agree upon the meanings of
	      the values used, which may be context-specific.
	      The <spanx style="verb">acr</spanx> value is a case sensitive string.
	    </t>

            <t hangText="amr">
	      <vspace/>
	      OPTIONAL. Authentication Methods References.
            JSON array of strings that are identifiers for Authentication Methods
	    used in the authentication. For instance, values might
            indicate that both password and OTP authentication methods were
            used. The definition of particular values to be used in the amr
            Claim is beyond the scope of this specification. Parties using
            this claim will need to agree upon the meanings of the values
            used, which may be context-specific.
	    The <spanx style="verb">amr</spanx> value is an array of
            case sensitive strings.
	    The following is a list of defined Authentication Method Reference values:
	      <list style="hanging">
                <t hangText="pwd">
		  <vspace/>
		  Password authentication, either by user or
                service if client_secret is used.</t>

                <t hangText="rsa">
		  <vspace/>
		  If authentication was based on the proof of
                an rsa key. This includes if authentication was performed by a
                self-signed JWT with a service owned x509 certificate.</t>

                <t hangText="otp">
		  <vspace/>
		One time password.</t>

                <t hangText="mfa">
		  <vspace/>
		  Multiple factor authentication was used.
                When this is used the other authentication methods will also
                be included.</t>

                <t hangText="fed">
		  <vspace/>
		  A federated authentication assertion (e.g.
                JWT or SAML) was used.</t>

              </list></t>

            <t hangText="alv">
	      <vspace/>
	      OPTIONAL. The authentication assurance level as
            described by <xref target="ISO29115"/> (see also <xref
            target="NIST_SP-800-63-2"/>).</t>
 
            <t hangText="profile">
	      <vspace/>
	      OPTIONAL. A URL which can
            be used to access the authenticated subject user profile data. The
            URL MUST point to the same user profile as the one that was
            authenticated. The URL MUST be valid for the duration of the
            associated access token and refresh token lifetimes.
	    [[ NOTE:  This is data about the user, not about the authentication.
	    Therefore, this should probably be accessed as a protected resource
	    using the access token, rather than included as a claim here. ]]
	    </t>

         </list></t>

        <t>A non-normative example successful response with an ID Token follows
	(with line breaks within lines for readability):<figure>
            <artwork>
  HTTP/1.1 200 OK
  Content-Type: application/json;charset=UTF-8
  Cache-Control: no-store
  Pragma: no-cache

  {
   "access_token":"2YotnFZFEjr1zCsicMWpAA",
   "token_type":"example",
   "expires_in":3600,
   "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
   "id_token":"eyJhbGciOiJub25lIn0.
    eyJpc3MiOiJodHRwczovL3NlcnZlci5leGFtcGxlLmNvbSIsInN1YiI6IjVkZWRjYz
    hiLTczNWMtNDA1Zi1lMDI5ZiIsImF1ZCI6InM2QmhkUmtxdDMiLCJhdXRoX3RpbWUi
    OjEzNjc5NTYwOTYsImlhdCI6MTM2Nzk1NjA5OCwiZXhwIjoxMzY4MDQyNDk2LCJhbH
    YiOiIyIiwiZXhhbXBsZV9leHRlbnNpb25fcGFyYW1ldGVyIjoiZXhhbXBsZV92YWx1
    ZSJ9."
  }
</artwork>
          </figure><figure>
            <preamble>As per the JWT specification, the encoded ID Token
	    is separated into parts by the "." character.
            The first part (<spanx style="verb">eyJhbGciOiJub25lIn0</spanx>)
            contains the signature algorithm and in this case decodes
            as:</preamble>

            <artwork>{"alg":"none"}</artwork>
          </figure><figure>
            <preamble>The claim set is then decoded as:</preamble>

            <artwork>
  {
   "iss":"https://server.example.com",
   "sub":"5dedcc8b-735c-405f-e029f",
   "aud":"s6BhdRkqt3",
   "auth_time":1367956096,
   "iat":1367956098,
   "exp":1368042496,
   "alv":"2",
   "example_extension_parameter":"example_value"
  }
</artwork>
          </figure></t>

        <t>If the ID Token contains the claim
        <spanx style="verb">alv</spanx> and its value is higher than "2", the
        ID Token MUST be signed
	(have a signature <spanx style="verb">alg</spanx> value other than <spanx style="verb">none</spanx>)
	and its signature MUST be validated.</t>

        <t>All claims defined above MUST be understood before proceeding.
        Additional claims/parameters that are not understood MAY be
        ignored.</t>

        <t>The client MUST verify that the <spanx style="verb">auth_time</spanx> value is not future dated and
        <spanx style="verb">exp</spanx> is not a date currently in the past.</t>
      </section>
    </section>

    <section title="Privacy Considerations">
      <t>Profile URL values issued in the ID Token and MAY be directed
      identifiers. In other words, the identifier/URL returned is valid only
      for the <spanx style="verb">aud</spanx> indicated. This prevents multiple clients and non-OAuth
      clients from being able to gather and correlate information about
      individuals authenticated by the OAuth Authorization Server.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>No actions by IANA are requested by this specification.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This draft carries the same risk profiles as those outlined in the
      Security Considerations for <xref target="RFC6749"/> and OAuth 2.0 Threat
      Model <xref target="RFC6819"/>.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
	The authors wish to thank the members of the OAuth working
	for their contributions and comments.
      </t>
    </section>

  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <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.2616.xml"?>
      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.3339.xml'?>
      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.6711.xml'?>
      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.6749.xml'?>

      <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-oauth-json-web-token-20.xml'?>

      <reference anchor="ISO29115">
        <front>
          <title>ISO/IEC 29115:2013 Information technology -- Security
          techniques -- Entity authentication assurance framework</title>

          <author fullname="Dick Brackney" initials="D." role="editor"
                  surname="Brackney">
            <organization>ITU-T, Microsoft</organization>
          </author>

          <author fullname="Erika McCallister" initials="E." role="editor"
                  surname="NIST">
            <organization>ISO, NIST</organization>
          </author>

          <date/>
        </front>

        <format target="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=45138"
                type="TXT"/>
      </reference>
    </references>

    <references title="Informative References">

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

      <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-scim-api-05.xml'?>


      <reference anchor="OpenID.Core">
        <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="25" month="February" year="2014"/>
        </front>

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

      <reference anchor="NIST_SP-800-63-2">
        <front>
          <title>DRAFT NIST Special Publication 800-63-2: Electronic
          Authentication Guideline</title>

          <author fullname="William E. Burr" initials="W.E." surname="Burr">
            <organization>NIST Computer Security Division, Information
            Technology Laboratory</organization>
          </author>

          <author fullname="Donna F. Dodson" initials="D.F." surname="Dodson">
            <organization>NIST Computer Security Division, Information
            Technology Laboratory</organization>
          </author>

          <author fullname="Elaine M. Newton" initials="E.M." surname="Newton">
            <organization>NIST Computer Security Division, Information
            Technology Laboratory</organization>
          </author>

          <author fullname="Ray A. Perlner" initials="R.A." surname="Perlner">
            <organization>NIST Computer Security Division, Information
            Technology Laboratory</organization>
          </author>

          <author fullname="W. Timothy Polk" initials="W.T." surname="Polk">
            <organization>NIST Computer Security Division, Information
            Technology Laboratory</organization>
          </author>

          <author fullname="Sabari Gupta" initials="S." surname="Newton">
            <organization>Electrosoft Services, Inc.</organization>
          </author>

          <author fullname="Emad A. Nabbus" initials="E.A." surname="Nabbus">
            <organization>Electrosoft Services, Inc.</organization>
          </author>

          <date month="February" year="2013"/>
        </front>

        <format target="http://csrc.nist.gov/publications/drafts/800-63-2/sp800_63_2_draft.pdf"
                type="PDF"/>
      </reference>

    </references>

    <section anchor="History" title="Document History">
      <t>[[ to be removed by the RFC editor before publication as an RFC
      ]]</t>

      <t>
	-02
	<list style="symbols">
          <t>
	    Added the <spanx style="verb">amr_values</spanx> request parameter.
	  </t>
	  <t>
	    Added the <spanx style="verb">acr</spanx> claim and
	    the <spanx style="verb">acr_values</spanx> request parameter.
	  </t>
	  <t>
	    Added terminology section.
	  </t>
        </list>
      </t>

      <t>
	-01 - PJH 2013-08-15
	<list style="symbols">
          <t>
	    Added iat to contrast/clarify relation with lat attribute.
	  </t>
	  <t>
	    Now returning session information as id_token.
	    Removed "display" parameter as not needed for authn only.
	    Added "min_alv" parameter.
	  </t>
        </list>
      </t>

      <t>
	-00 - PJH 2013-04-09
	<list style="symbols">
          <t>
	    Initial version
	  </t>
        </list>
      </t>

    </section>

  </back>
</rfc>
