- From: Roy T. Fielding <fielding@avron.ICS.UCI.EDU>
- Date: Tue, 20 Feb 1996 06:41:21 -0800
- To: Peter J Churchyard <pjc@trusted.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
> Here I present a different mechanism for providing authentication point
> information. This allows WWW-Authenticate to be used by Proxies and
> Gateways to do authentication. I beleive this would remove the need for
> proxy-authenticate which can then be treated as a special case of WWW-Auth.
> It is compatible with current 1.0 practices.
Three observations:
1) Your proposal is not compatible with current 1.0 practices.
It would in fact break all current practice, since it changes
the syntax of a challenge in an incompatible fashion.
2) Proxy-Authenticate and Proxy-Authorization are already implemented
in current practice (see Netscape's proxy).
3) There is no reason whatsoever for a proxy to authenticate more
than the immediate connection, and so authentication points
are not useful.
Imagine the following transaction
UA -------> X --------> Y --------> Z --------> OS
where X, Y, and Z are proxies. The following is therefore true:
a) UA is responsible for initiating the request on OS and
the connection to X. Therefore, it is reasonable for
X to demand authentication for the connection and for
OS to demand authentication for servicing the request.
b) X is responsible for directing the request via a connection
to Y. It is therefore reasonable for Y to authenticate X.
UA is not even remotely responsible for the the connection
from X to Y, has no control over that connection, and may
not even be aware that the connection exists; it is therefore
impossible for Y to demand authentication of UA. What is
possible is that X may handle the demand for credentials by
relaying a corresponding authentication request to UA,
which could then send the credentials to X, which in turn would
send them to Y. However, it is more likely that X would know
what the appropriate credentials for accessing Y on behalf
of X, since that would be a normal relationship in a system
of hierarchical proxies.
c) Y is responsible for directing the request via a connection
to Z. It is therefore reasonable for Z to authenticate Y.
Neither UA nor X is responsible for that connection, and therefore
cannot be authenticated by Z. As with (b), an authentication
of Y may be achieved via relay if that is how Y needs to get
its credentials.
Authentication in HTTP allows the server to ask "Who is responsible for
sending this request?" For a proxy, the only entity capable of answering
that question is the one that directed the request to that proxy.
For an origin server, the only entity capable of answering that question
is the user that initiated the request.
...Roy T. Fielding
Department of Information & Computer Science (fielding@ics.uci.edu)
University of California, Irvine, CA 92717-3425 fax:+1(714)824-4056
http://www.ics.uci.edu/~fielding/
Received on Tuesday, 20 February 1996 06:45:50 UTC