<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
For discussion in tomorrow's meeting, some further work in the end-to-end protocol flow.<BR>
<BR>
Continuing the protocol design with LRDD/XRD in place, it occurred to me that we can use this to allow OAuth profiles to be used for issuing tokens between host and requester (H-&gt;R) and AM and requester (A-&gt;R), making UMA an application of various OAuth profiles. I think this may create further alignment with Christian's work.<BR>
<BR>
The downside is again: more complexity. There's a higher number of XRDs now, which means more indirection. The upside: much stronger alignment with OAuth, and we get out of the authentication business, and get to focus on authorization.<BR>
<BR>
You'll note that I've pointed-out a MITM vector in step 3. Basically, step 3 is half-baked at the moment. I sense the way out of this problem is to have the host allocate an authorization resource in AM on behalf of the requester and pass this to requester for required claims negotiation. I was tempted to change it tonight, but feel like sleeping on it would be a good idea.<BR>
<BR>
Thanks Eve for providing some edits and an introductory section.<BR>
<BR>

<HR NOSHADE SIZE="1">
<BR>
<BR>
<TT><B>0. Introduction</B></TT><BR>
<BR>
<TT>In this example, the following access tokens are involved:</TT><BR>
<BR>
<TT>&nbsp; H-&gt;A access token representing the host's authentication to the AM (section 1.2)</TT><BR>
<BR>
<TT>&nbsp; R-&gt;H access token representing the requester's authentication to the host (section 2)</TT><BR>
<BR>
<TT>The following XRD descriptors are involved:</TT><BR>
<BR>
<TT>&nbsp; Host root resource descriptor, provided by the AM to help hosts begin the process of registration (section 1.1)</TT><BR>
<BR>
<TT>&nbsp; H-&gt;A authentication descriptor, provided by the AM to help hosts obtain an H-&gt;A access token (section 1.2)</TT><BR>
<BR>
<TT>&nbsp; Host resource descriptor, provided by the AM to a specific host to explain the unique interface it should use at the AM (section 1.4)</TT><BR>
<BR>
<TT>&nbsp; R-&gt;H authentication descriptor, provided by the host to help requesters obtain an R-&gt;H access token (section 2)</TT><BR>
<BR>
<TT>&nbsp; Protected resource descriptor, provided by the host to help requesters learn where to obtain access authorization (section 3)</TT><BR>
<BR>
<TT>XRD Type values stand for the following:</TT><BR>
<BR>
<TT>&nbsp; <A HREF="http://wg-uma.net/core/1.0/">http://wg-uma.net/core/1.0/</A>... represents UMA-related endpoints</TT><BR>
<TT>&nbsp; <A HREF="http://oauth.net/core/1.0/">http://oauth.net/core/1.0/</A>... represents Oauth-related endpoints</TT><BR>
<BR>
<TT>Other example domain names stand for the following:</TT><BR>
<BR>
<TT>&nbsp; <A HREF="http://copmonkey.com/">http://copmonkey.com</A> represents an UMA authorization manager (AM)</TT><BR>
<TT>&nbsp; <A HREF="http://schedewl.com/">http://schedewl.com</A> represents an UMA host</TT><BR>
<BR>
<BR>
<B><TT>1. User registers host at AM</TT></B><BR>
<BR>
<TT>Host registration is the act of an authorizing user introducing a host to an authorization manager. Once registered, a host can request access control decisions from the authorization manager for protected resources being accessed by requesting services. Host registration can be achieved through three-legged OAuth, with the host as the OAuth Consumer and the AM as the OAuth Service Provider (SP).</TT><BR>
<BR>
<BR>
<B><TT>1.1 User introduces host to AM</TT></B><BR>
<BR>
<TT>An authorizing user explicitly introduces a host to an AM via an identifier that the host can be resolve via LRDD to an XRD. The XRD is obtained by the host, and contains a link to the AM host root resource. Example descriptor (all examples herein have namespaces suppressed for brevity):</TT><BR>
<BR>
<TT>&nbsp; &lt;XRD&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Subject&gt;<A HREF="http://copmonkey.com/&lt;">http://copmonkey.com/&lt;</A>/Subject&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Expires&gt;2009-10-23T23:59:59Z&lt;/Expires&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Type&gt;<A HREF="http://wg-uma.net/core/1.0/am&lt;">http://wg-uma.net/core/1.0/am&lt;</A>/Type&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://wg-uma.net/core/1.0/host&lt;">http://wg-uma.net/core/1.0/host&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URI&gt;<A HREF="http://copmonkey.com/host/&lt;">http://copmonkey.com/host/&lt;</A>/URI&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; ...</TT><BR>
<TT>&nbsp; &lt;/XRD&gt;</TT><BR>
<BR>
<BR>
<B><TT>1.2 AM issues H-&gt;AM access token to host</TT></B><BR>
<BR>
<TT>The host resolves the URI of the AM host root resource, and sends an HTTP POST request to that resource, to request creation of a new host representing itself within AM. Example request:</TT><BR>
<BR>
<I><TT>&nbsp; (connects to copmonkey.com:80)</TT></I><BR>
<TT>&nbsp; POST /host/ HTTP/1.1</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<TT>Without any OAuth headers included in the request, AM responds with an OAuth challenge. Example response:</TT><BR>
<BR>
<TT>&nbsp; HTTP/1.1 401 Unauthorized</TT><BR>
<TT>&nbsp; WWW-Authenticate: OAuth realm=&quot;copmonkey&quot;, provider=&quot;<A HREF="https://copmonkey.com/oauth/">https://copmonkey.com/oauth/</A>&quot;</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<I><TT>&nbsp; (entity contains human-readable page describing authentication prerequisite)</TT></I><BR>
<BR>
<TT>The &quot;provider&quot; challenge (per OAuth discovery &quot;sneak-peek&quot;) parameter gives the URI of the OAuth provider used to authorize access to the host container. The host performs LRDD discovery on this resource to resolve its XRD, and it's obtained. Example descriptor:</TT><BR>
<BR>
<TT>&nbsp; &lt;XRD&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Subject&gt;<A HREF="https://copmonkey.com/oauth/&lt;">https://copmonkey.com/oauth/&lt;</A>/Subject&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;Expires&gt;2009-10-23T23:59:59Z&lt;/Expires&gt;</TT><BR>
<TT>&nbsp;</TT>&nbsp;&nbsp;<TT> &lt;Type&gt;<A HREF="http://oauth.net/core/1.0/signature/HMAC-SHA1&lt;">http://oauth.net/core/1.0/signature/HMAC-SHA1&lt;</A>/Type&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;Link&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/discovery/1.0/consumer-identity/static&lt;">http://oauth.net/discovery/1.0/consumer-identity/static&lt;</A>/Rel&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;LocalID&gt;53032297b44847ed&lt;/LocalID&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;/Link&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;Link&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp;</TT>&nbsp;&nbsp;<TT> &lt;Rel&gt;<A HREF="http://oauth.net/core/1.0/endpoint/initiate&lt;">http://oauth.net/core/1.0/endpoint/initiate&lt;</A>/Rel&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;URI&gt;<A HREF="https://copmonkey.com/oauth/initiate/&lt;">https://copmonkey.com/oauth/initiate/&lt;</A>/URI&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;/Link&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;Link&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/core/1.0/endpoint/authorize&lt;">http://oauth.net/core/1.0/endpoint/authorize&lt;</A>/Rel&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;URI&gt;<A HREF="https://copmonkey.com/oauth/authorize/&lt;">https://copmonkey.com/oauth/authorize/&lt;</A>/URI&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;/Link&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;Link&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/core/1.0/endpoint/token&lt;">http://oauth.net/core/1.0/endpoint/token&lt;</A>/Rel&gt;</TT><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<TT>&nbsp; &lt;URI&gt;<A HREF="https://copmonkey.com/oauth/token/&lt;">https://copmonkey.com/oauth/token/&lt;</A>/URI&gt;</TT><BR>
&nbsp;&nbsp;<TT>&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp; &lt;/XRD&gt;</TT><BR>
<BR>
<TT>In the descriptor, the consumer identity is statically allocated and endpoints are established for OAuth protocol initiation, user request authorization and access token issuance. How OAuth is negotiated is out-of-scope for the UMA protocol, except that OAuth service discovery is expected to be supported.</TT><BR>
<BR>
<TT>The host proceeds to negotiate the issuance of an access token by initiating OAuth protocol flow (issuance of request token), user request authorization (via authorization manager user interface to user), and access token request.</TT><BR>
<BR>
<BR>
<B><TT>1.3 Host requests creation of host resource (with signature)</TT></B><BR>
<BR>
<TT>Now that the host has an access token it can use to sign requests, it re-issues the POST request from 1.2 above (now signed) to create a new AM host resource:</TT><BR>
<BR>
<I><TT>&nbsp; (connects to copmonkey.com:80)</TT></I><BR>
<TT>&nbsp; POST /host/ HTTP/1.1</TT><BR>
<TT>&nbsp; Authorization: OAuth realm=&quot;copmonkey&quot;, oauth_consumer_key=&quot;53032297b44847ed&quot;,</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; oauth_token=&quot;2f5fa6f0613942d9&quot;, oauth_signature_method=&quot;HMAC-SHA1&quot;,</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; oauth_signature=&quot;...&quot;, oauth_timestamp=&quot;...&quot;, oauth_nonce=&quot;...&quot;,</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; oauth_version=&quot;1.0&quot;</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<TT>The AM indicates the resource has been successfully created, with a new identifier:</TT><BR>
<BR>
<TT>&nbsp; HTTP/1.1 201 Created</TT><BR>
<TT>&nbsp; Location: <A HREF="https://copmonkey.com/host/cbab2239-7528-4056-8aac-717d154e3972/">https://copmonkey.com/host/cbab2239-7528-4056-8aac-717d154e3972/</A></TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<BR>
<B><TT>1.4 Host retrieves host resource descriptor</TT></B><BR>
<BR>
<TT>The host can now perform discovery on this new host resource (via LRDD and GET request signed with OAuth) to get an XRD. Example descriptor:</TT><BR>
<BR>
<TT>&nbsp; &lt;XRD&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Subject&gt;<A HREF="https://copmonkey.com/host/75284056/&lt;">https://copmonkey.com/host/75284056/&lt;</A>/Subject&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Expires&gt;2009-11-22T23:59:59Z&lt;/Expires&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Type&gt;<A HREF="http://uma-wg.net/core/1.0/host/instance&lt;">http://uma-wg.net/core/1.0/host/instance&lt;</A>/Type&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://uma-wg.net/core/1.0/host/authorization/resource&lt;">http://uma-wg.net/core/1.0/host/authorization/resource&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URI&gt;<A HREF="http://copmonkey.com/host/75284056/authorization/&lt;">http://copmonkey.com/host/75284056/authorization/&lt;</A>/URI&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://uma-wg.net/core/1.0/host/decision/resource&lt;">http://uma-wg.net/core/1.0/host/decision/resource&lt;</A>/Type&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URI&gt;<A HREF="https://copmonkey.com/host/75284056/decision/&lt;">https://copmonkey.com/host/75284056/decision/&lt;</A>/URI&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp; &lt;/XRD&gt;</TT><BR>
<BR>
<TT>This descriptor contains an authorization resource that the host should advertise to requesters (via XRDs for protected resources, discussed in a later section) to use to acquire authorization. It also contains the resource that the host can use to request access control policy decisions.</TT><BR>
<BR>
<TT>The host can now report to the authorizing user that host registration was successful.</TT><BR>
<BR>
<BR>
<B><TT>2. Requester registers at host and gets R-&gt;H access token</TT></B><BR>
<BR>
<TT>In theory, any requester-to-host authentication token can be issued, for example, a session cookie. In this example, an OAuth access token is issued via a two-legged OAuth profile.</TT><BR>
<BR>
<TT>The requester attempts to access a protected resource at the host anonymously and is challenged for OAuth authentication:</TT><BR>
<BR>
<I><TT>&nbsp; (connects to schedewl.com:80)</TT></I><BR>
<TT>&nbsp; GET /calendar/ical/alice/public/travel.ics</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<TT>Without any OAuth headers included in the request, an OAuth challenge is returned. Example response:</TT><BR>
<BR>
<TT>&nbsp; HTTP/1.1 401 Unauthorized</TT><BR>
<TT>&nbsp; WWW-Authenticate: OAuth realm=&quot;schedewl&quot;, provider=&quot;<A HREF="https://schedewl.com/oauth/">https://schedewl.com/oauth/</A>&quot;</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<I><TT>&nbsp; (entity contains human-readable page describing authentication prerequisite)</TT></I><BR>
<BR>
<TT>The &quot;provider&quot; challenge parameter gives the URI of the OAuth provider used to authorize access to the resource. The requester performs LRDD discovery on this resource to resolve its XRD and it's obtained. Example descriptor:</TT><BR>
<BR>
<TT>&nbsp; &lt;XRD&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Subject&gt;<A HREF="https://schedewl.com/oauth/&lt;">https://schedewl.com/oauth/&lt;</A>/Subject&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Expires&gt;2009-10-23T23:59:59Z&lt;/Expires&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Type&gt;<A HREF="http://oauth.net/core/1.0/signature/HMAC-SHA1&lt;">http://oauth.net/core/1.0/signature/HMAC-SHA1&lt;</A>/Type&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/discovery/1.0/consumer-identity/static&lt;">http://oauth.net/discovery/1.0/consumer-identity/static&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LocalID&gt;86d2e3ae50f249c0&lt;/LocalID&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/discovery/1.0/request-token/static&lt;">http://oauth.net/discovery/1.0/request-token/static&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LocalID&gt;b73d827919874d58&lt;/LocalID&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://oauth.net/core/1.0/endpoint/token&lt;">http://oauth.net/core/1.0/endpoint/token&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URI&gt;<A HREF="https://schedewl.com/oauth/token/&lt;">https://schedewl.com/oauth/token/&lt;</A>/URI&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp; &lt;/XRD&gt;</TT><BR>
<BR>
<TT>The intent of this XRD is to represent two-legged OAuth, meaning that there is no authorization of the OAuth request token by a user. In this case, the host can issue an OAuth token to the requester by having the requester retrieve the access token resource with a static consumer key and request token. This is tantamount to a form of basic registration for access credentials.</TT><BR>
<BR>
<TT>[</TT><TT><I>Note: To my knowledge, there is not yet any 2-legged-OAuth XRD profile. The example above is based purely on imagination. If you are aware of such a profile, please let me know.</I></TT><TT>]</TT><BR>
<BR>
<TT>The requester requests an access token from the host and the host issues it. This access token is used to authenticate requests to the host by the requester, but does not constitute authorization to access the resource; authorization is provided by the AM in following steps.</TT><BR>
<BR>
<BR>
<B><TT>3. Host refers requester to AM for authorization</TT></B><BR>
<BR>
<TT>[</TT><TT><I>Note: An issue of possible MITM attack vector has been identified for this section. This scheme will likely need to undergo some major revision to mitigate it.</I></TT><TT>]</TT><BR>
<BR>
<TT>The requester, with its R-&gt;H access token, attempts to request access to the protected resource at the host:</TT><BR>
<BR>
<I><TT>&nbsp; (connects to schedewl.com:80)</TT></I><BR>
<TT>&nbsp; GET /calendar/ical/alice/public/travel.ics</TT><BR>
<TT>&nbsp; Authorization: OAuth realm=&quot;schedewl&quot;, oauth_consumer_key=&quot;86d2e3ae50f249c0&quot;,</TT><BR>
<TT>&nbsp;&nbsp; oauth_token=&quot;5cdd7b5c68e24908&quot;, oauth_signature_method=&quot;HMAC-SHA1&quot;,</TT><BR>
<TT>&nbsp;&nbsp; oauth_signature=&quot;...&quot;, oauth_timestamp=&quot;...&quot;, oauth_nonce=&quot;...&quot;,</TT><BR>
<TT>&nbsp;&nbsp; oauth_version=&quot;1.0&quot;</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<TT>The requester is authenticated by the host, but is not yet authorized by the AM. The host requests a policy decision from the AM (interaction documented in a following section), and the AM sends a &quot;deny&quot; decision, and host responds to requester with a 403 status:</TT><BR>
<BR>
<TT>&nbsp; HTTP/1.1 403 Forbidden</TT><BR>
<TT>&nbsp; ...</TT><BR>
<BR>
<I><TT>&nbsp; (entity contains human-readable page describing authorization prerequisite)</TT></I><BR>
<BR>
<TT>Using LRDD, the requester discovers the XRD descriptor for the protected resource and obtains the descriptor. [</TT><TT><I>Note: Whether a resource descriptor is obtainable without a R-&gt;H access token is at the discretion of the host.</I></TT><TT>]</TT><BR>
<BR>
<TT>Example descriptor:</TT><BR>
<BR>
<TT>&nbsp; &lt;XRD&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Subject&gt;<A HREF="http://schedewl.com/calendar/ical/alice/public/travel.ics&lt;">http://schedewl.com/calendar/ical/alice/public/travel.ics&lt;</A>/Subject&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Expires&gt;2009-10-23T23:59:59Z&lt;/Expires&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; ...</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rel&gt;<A HREF="http://uma-wg.net/core/1.0/requester/authorization/resource&lt;">http://uma-wg.net/core/1.0/requester/authorization/resource&lt;</A>/Rel&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URI&gt;<A HREF="http://copmonkey.com/host/75284056/authorization/5cdd7b5c68e24908/&lt;">http://copmonkey.com/host/75284056/authorization/5cdd7b5c68e24908/&lt;</A>/URI&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; &lt;/Link&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp; ...</TT><BR>
<TT>&nbsp; &lt;/XRD&gt;</TT><BR>
<BR>
<TT>In this descriptor, the requester discovers where it can obtain authorization for access to the protected resource. The location is the value that the AM originally provided to the host in the XRD for its host resource, with an appended path segment indicating the identifier that the host will use to identify the requester in access control decision requests. This requester identifier is generated by the host, and under the right conditions could simply be the access token the host issued to the requester.</TT><BR>
<BR>
<BR>
<B><TT>4. Host discovers required claims for access to resource</TT></B><BR>
<BR>
<I>TBD</I><BR>
<BR>
<BR>
<B><TT>5. Requester registers with AM (if it hasn't already)</TT></B><BR>
<BR>
<TT><I>TBD</I></TT><BR>
<BR>
<BR>
<B><TT>6. Host supplies required claims for access to resource</TT></B><BR>
<BR>
<I><TT>TBD</TT></I><BR>
<BR>
<BR>
<B><TT>7. Host checks authorization resource for state</TT></B><BR>
<BR>
<I><TT>TBD</TT></I><BR>
<BR>
<BR>
<B><TT>8. Host accesses resource</TT></B><BR>
<BR>
<I><TT>TBD</TT></I><BR>
<BR>
<BR>
<B><TT>n. References [excerpt]</TT></B><BR>
<BR>
<B><TT>[LRDD]</TT></B><TT> </TT><BR>
<TT>Hammer-Lahav</TT><BR>
<TT>&quot;Link-based Resource Descriptor Discovery 03&quot;, March 2009.</TT><BR>
<TT>http://tools.ietf.org/html/draft-hammer-discovery-03</TT><BR>
<BR>
<B><TT>[XRD]</TT></B><BR>
<TT>Hammer-Lahav, Noris</TT><BR>
<TT>&quot;Extensible Resource Descriptor (XRD) Version 1.0&quot;, October 2009</TT><BR>
<TT>http://www.oasis-open.org/committees/download.php/34724/xrd-1.0-wd09.html</TT><BR>
<BR>
<B><TT>[HTTP]</TT></B><BR>
<TT>Fielding, Gettys, Mogul, Frystyk, Masinter, Leach, Berners-Lee</TT><BR>
<TT>&quot;Hypertext Transfer Protocol &#8212; HTTP/1.1&quot;, RFC 2616, June 1999.</TT><BR>
<TT>http://tools.ietf.org/html/rfc2616</TT><BR>
<BR>

<HR NOSHADE SIZE="1">
<BR>
<BR>
Paul
</BODY>
</HTML>