<?xml version="1.0" encoding="US-ASCII"?>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc
  PUBLIC "" "rfc2629.dtd">
<rfc number="7615" obsoletes="2617" ipr="pre5378Trust200902" category="std"
     submissionType="IETF" consensus="yes">

	<front>
  <title abbrev="HTTP Authentication-Info">HTTP Authentication-Info and
  Proxy&nbhy;Authentication&nbhy;Info Response&nbsp;Header&nbsp;Fields</title>
  <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke">
    <organization abbrev="greenbytes">greenbytes GmbH</organization>
    <address>
      <postal>
        <street>Hafenweg 16</street>
        <city>Muenster</city><region>NW</region><code>48155</code>
        <country>Germany</country>
      </postal>
      <email>julian.reschke@greenbytes.de</email>
      <uri>http://greenbytes.de/tech/webdav/</uri>
    </address>
  </author>

  <date year="2015" month="September"/>

  <area>Applications</area>
  <workgroup>HTTP Working Group</workgroup>
  <keyword>HTTP</keyword>
  <keyword>authentication</keyword>

  <abstract>
    <t>
      This specification defines the "Authentication-Info" and
      "Proxy-Authentication-Info" response header fields for use in Hypertext
      Transfer Protocol (HTTP) authentication
      schemes that need to return information once the client's
      authentication credentials have been accepted.
    </t>
  </abstract>

  </front>

  <middle>

<section anchor="introduction" title="Introduction">
<t>
  This specification defines the "Authentication-Info" and
  "Proxy-Authentication-Info" response header fields for use in HTTP authentication
  schemes (<xref target="RFC7235"/>) that need to return
  information once the client's authentication credentials have been accepted.
</t>
<t>
  Both were previously defined in Section 3 of <xref target="RFC2617"/>, defining
  the HTTP "Digest" authentication scheme. This document generalizes
  the description for use not only in "Digest" (<xref target="RFC7616"/>), but
  also in other future schemes that might have the same requirements for carrying
  additional information during authentication.
</t>
</section>

<section anchor="notational.conventions" title="Notational Conventions">
  
<t>
   This specification uses the Augmented Backus-Naur Form (ABNF) notation of
   <xref target="RFC5234"/> with a list extension, defined in
   Section 7 of <xref target="RFC7230"/>, that allows for compact definition of
   comma-separated lists using a '#' operator (similar to how the '*' operator
   indicates repetition).
   The ABNF production for "auth-param" is defined in Section 2.1 of <xref target="RFC7235"/>.
</t>
</section>

<section anchor="authentication-info" title="The Authentication-Info Response Header Field">
  

<t>
  HTTP authentication schemes can use the Authentication-Info response header
  field to communicate information after the client's authentication credentials have been accepted.
  This information can include a finalization message from the server (e.g., it can contain the
  server authentication).
</t>
<t>
  The field value is a list of parameters (name/value pairs), using the "auth-param"
  syntax defined in Section 2.1 of <xref target="RFC7235"/>.
  This specification only describes the generic format; authentication schemes
  using Authentication-Info will define the individual parameters. The "Digest"
  Authentication Scheme, for instance, defines multiple parameters in
  Section 3.5 of <xref target="RFC7616"/>.
</t>
<figure><artwork type="abnf2616"><![CDATA[
  Authentication-Info = #auth-param
]]></artwork></figure>
<t>
  The Authentication-Info header field can be used in any HTTP response,
  independently of request method and status code. Its semantics are defined
  by the authentication scheme indicated by the Authorization header field
  (<xref target="RFC7235"/>, Section 4.2)
  of the corresponding request.
</t>
<t>
  A proxy forwarding a response is not allowed to modify the field value in any
  way. 
</t>
<t>  
  Authentication-Info can be used inside trailers
  (<xref target="RFC7230"/>, Section 4.1.2) when the
  authentication scheme explicitly allows this.
</t>

<section title="Parameter Value Format">
<t>
  Parameter values can be expressed either as "token" or as "quoted-string"
  (Section 3.2.6 of <xref target="RFC7230"/>).
</t>
<t>
  Authentication scheme definitions need to allow both notations, both for
  senders and recipients. This allows recipients to use generic parsing
  components, independent of the authentication scheme in use.
</t>
<t>
  For backwards compatibility, authentication scheme definitions can restrict
  the format for senders to one of the two variants. This can be important
  when it is known that deployed implementations will fail when encountering
  one of the two formats.
</t>
</section>
</section>

<section anchor="proxy-authentication-info" title="The Proxy-Authentication-Info Response Header Field">
  
<t>
   The Proxy-Authentication-Info response header field is equivalent to
   Authentication-Info, except that it applies to proxy authentication
   (<xref target="RFC7235"/>, Section 2) and its semantics are defined by the
   authentication scheme indicated by the Proxy-Authorization header
   field (<xref target="RFC7235"/>, Section 4.4) of the corresponding request:
</t>
<t>
<figure><artwork type="abnf2616"><![CDATA[
  Proxy-Authentication-Info = #auth-param
]]></artwork></figure>
</t>
<t>
  However, unlike Authentication-Info, the Proxy-Authentication-Info header
  field applies only to the next outbound client on the response chain. This is
  because only the client that chose a given proxy is likely to have the
  credentials necessary for authentication. However, when multiple proxies are
  used within the same administrative domain, such as office and regional
  caching proxies within a large corporate network, it is common for
  credentials to be generated by the user agent and passed through the
  hierarchy until consumed. Hence, in such a configuration, it will appear as
  if Proxy-Authentication-Info is being forwarded because each proxy will send
  the same field value.
</t>
</section>

<section anchor="security.considerations" title="Security Considerations">
<t>
  Adding information to HTTP responses that are sent over an unencrypted
  channel can affect security and privacy. The presence of the header fields
  alone indicates that HTTP authentication is in use. Additional information
  could be exposed by the contents of the authentication-scheme specific
  parameters; this will have to be considered in the definitions of these
  schemes.
</t>
</section>

<section anchor="iana.considerations" title="IANA Considerations">

<t>
   HTTP header fields are registered within the "Message Headers" registry
   located at <eref target="http://www.iana.org/assignments/message&nbhy;headers"/>,
   as defined by <xref target="BCP90"/>.
</t>
<t>
   This document updates the definitions of the "Authentication-Info" and
   "Proxy-Authentication-Info" header fields,
   so the "Permanent Message Header Field Names" registry has been updated
   accordingly:
</t>
<texttable align="left" suppress-title="true" anchor="iana.header.registration.table">
   <ttcol>Header Field Name</ttcol>
   <ttcol>Protocol</ttcol>
   <ttcol>Status</ttcol>
   <ttcol>Reference</ttcol>

   <c>Authentication-Info</c>
   <c>http</c>
   <c>standard</c>
   <c>
    <xref target="authentication-info"/> of this document
   </c>
   <c>Proxy-Authentication-Info</c>
   <c>http</c>
   <c>standard</c>
   <c>
    <xref target="proxy-authentication-info"/> of this document
   </c>
</texttable>
</section>

  </middle>
  <back>

<references title="Normative References">
<?rfc include="reference.RFC.5234"?>
<?rfc include="reference.RFC.7230"?>
<?rfc include="reference.RFC.7235"?>

</references>

<references title="Informative References">

<?rfc include="reference.RFC.2617"?>

<reference anchor="BCP90" target="http://www.rfc-editor.org/info/bcp90">
    <front>
    <title>Registration Procedures for Message Header Fields</title>
    <author initials='G.' surname='Klyne' fullname='G. Klyne'><organization /></author>
    <author initials='M.' surname='Nottingham' fullname='M. Nottingham'><organization /></author>
    <author initials='J.' surname='Mogul' fullname='J. Mogul'><organization /></author>
    <date year='2004' month='September' />
    <abstract><t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications.  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='90'/>
    <seriesInfo name='RFC' value='3864'/>
    <format type='ASCII' octets='36231'/>
    </reference>

<!-- draft-ietf-httpauth-digest: RFC 7616 -->
<reference anchor="RFC7616" target="http://www.rfc-editor.org/info/rfc7616">
  <front>
    <title>HTTP Digest Access Authentication</title>
    <author initials="R." surname="Shekh-Yusef" fullname="Rifaat Shekh-Yusef" role="editor"/>
    <author initials="D." surname="Ahrens" fullname="David Ahrens"/>
    <author initials="S." surname="Bremer" fullname="Sophie Bremer"/>
    <date month="September" year="2015"/>
  </front>
  <seriesInfo name="RFC" value="7616"/>
<seriesInfo name='DOI' value='10.17487/RFC7616'/>
</reference>

</references>


<section title="Acknowledgements" numbered="no">
<t>
  This document is based on the header field definitions in RFCs 2069 and 2617,
  whose authors are: John Franks, Phillip M.&nbsp;Hallam-Baker, Jeffery L.&nbsp;Hostetler,
  Scott D.&nbsp;Lawrence, Paul J.&nbsp;Leach, Ari Luotonen, Eric W.&nbsp;Sink, and
  Lawrence C.&nbsp;Stewart.
</t>
<t>
  Additional thanks go to the members of the HTTPAUTH and HTTPBIS
  Working Groups, namely, Amos Jeffries, Benjamin Kaduk, Alexey Melnikov,
  Mark Nottingham, Yutaka Oiwa, Rifaat Shekh-Yusef, and Martin Thomson.
</t>
</section>

  </back>

</rfc>
