As I have told Phil off list.  

Discovery is the wrong place to try and provide security against man in the 
middle attacks on the RS.

This requires the client to know what the RS URI is before retrieving the 
information on the AS Configuration.

The proposal Mike and I have been working on requires the client to have a 
notion of what API it is looking for and retrieve the .well-known file for that 
API from the issuer.   That allows a protocol like Connect to register its own 
config file that can point to the RS.   

If the API specific well known is not available the client can try the default 
oauth-server one.

That then allows us to deal with restricting where AT are presented as part of 
the protocol rather then dragging discovery in as a requirement.

In my opinion the resource the token is targeted to should be separated from 
the scope and returned as part of the meta-data about the AT along with scopes 
granted and expiry time.   We should also have a input parameter for resources 
so that a client can restrict tokens issued to a subset of the ones granted by 
the refresh token.   It would then also be possible to ask a AS for a token for 
a unregistered RS and have the AS produce a JWT access token with the resource 
as an audience if policy allows.

That however was supposed to be dealt with as part of the mixed up client set 
of mitigations.  
In that the goal was to mitigate the attacks by returning meta-data about the 
tokens, and not to require discovery.

We intend to return “iss” and “cleint_id” for the code, and I intend to discuss 
at the F2F returning resource for AT as well.

Those mitigate the attack.  

I will continue to resist mixing up discovery of configuration meta-data with 
mitigation of the attacks.

We return meta-data about the tokens now, because AT are opaque to the client, 
we neglected to include some of the information for the client needs to be 
secure.   We just need to add that in to the existing flows.

While Phil’s proposal is easier for the AS to implement as an add on, it puts 
more of a burden on the client needing to potentially change how it stores the 
relationships between AS and RS to prevent compromise, I think the solution 
should be biased towards simplicity on the client side.

If we return the resources as part of the existing meta data the client checks 
that against the resource it intends to send the token to and if it is not in 
the list then it can’t send the token.  Simple check every time it gets a new 
AT, no optionality.

I am not saying anything new Nat has been advocating basically this for some 
time, and dis submit a draft.   I prefer to return the info in the existing 
format rather than as link headers,  but that is the largest difference between 
what Nat and I are saying with respect to resource.

That is the core of my problem with Phil’s draft.

I guess we will need to have a long conversation in BA.

Regards
John B.

> On Mar 13, 2016, at 8:12 PM, Phil Hunt <phil.h...@oracle.com> wrote:
> 
> This draft is a proposed alternate proposal for draft-ietf-oauth-discovery.  
> As such, it contains the same registry for OAuth Config Metadata as the 
> authors believe that both solutions are not required, or depending on WG 
> discussion they will be merged. The intent is to provide a simple complete 
> draft for consideration.
> 
> How it works...
> Given that a client has previously discovered an OAuth protected resource, 
> the bound configuration method allows a client to return the configuration 
> for an oauth authorization server that can issue tokens for the resource URI 
> specified by the client.  The AS is not required to be in the same domain.  
> The AS is however required to know if it can issue tokens for a resource 
> service (which presumes some agreement exists on tokens etc).
> 
> The draft does not require that the resource exist (e.g. for unconfigured or 
> new user based resources). It only requires that the AS service provider 
> agrees it can issue tokens.
> 
> From a security perspective, returning the OAuth service configuration for a 
> specified resource URI serves to confirm the client is in possession of a 
> valid resource URI ensuring the client has received a valid set of endpoints 
> for the resource and the associated oauth services.
> 
> I propose that the WG consider the alternate draft carefully as well as other 
> submissions and evaluate the broader discovery problem before proceeding with 
> WGLC on OAuth Discovery.
> 
> Thanks!
> 
> Phil
> 
> @independentid
> www.independentid.com <http://www.independentid.com/>phil.h...@oracle.com 
> <mailto:phil.h...@oracle.com>
> 
> 
>> Begin forwarded message:
>> 
>> From: internet-dra...@ietf.org <mailto:internet-dra...@ietf.org>
>> Subject: New Version Notification for draft-hunt-oauth-bound-config-00.txt
>> Date: March 13, 2016 at 3:53:37 PM PDT
>> To: "Phil Hunt" <phil.h...@yahoo.com <mailto:phil.h...@yahoo.com>>, "Anthony 
>> Nadalin" <tony...@microsoft.com <mailto:tony...@microsoft.com>>, "Tony 
>> Nadalin" <tony...@microsoft.com <mailto:tony...@microsoft.com>>
>> 
>> 
>> A new version of I-D, draft-hunt-oauth-bound-config-00.txt
>> has been successfully submitted by Phil Hunt and posted to the
>> IETF repository.
>> 
>> Name:                draft-hunt-oauth-bound-config
>> Revision:    00
>> Title:               OAuth 2.0 Bound Configuration Lookup
>> Document date:       2016-03-13
>> Group:               Individual Submission
>> Pages:               22
>> URL:            
>> https://www.ietf.org/internet-drafts/draft-hunt-oauth-bound-config-00.txt 
>> <https://www.ietf.org/internet-drafts/draft-hunt-oauth-bound-config-00.txt>
>> Status:         
>> https://datatracker.ietf.org/doc/draft-hunt-oauth-bound-config/ 
>> <https://datatracker.ietf.org/doc/draft-hunt-oauth-bound-config/>
>> Htmlized:       https://tools.ietf.org/html/draft-hunt-oauth-bound-config-00 
>> <https://tools.ietf.org/html/draft-hunt-oauth-bound-config-00>
>> 
>> 
>> Abstract:
>>   This specification defines a mechanism for the client of an OAuth 2.0
>>   protected resource service to obtain the configuration details of an
>>   OAuth 2.0 authorization server that is capable of authorizing access
>>   to a specific resource service.  The information includes the OAuth
>>   2.0 component endpoint location URIs and as well as authorization
>>   server capabilities.
>> 
>> 
>> 
>> 
>> Please note that it may take a couple of minutes from the time of submission
>> until the htmlized version and diff are available at tools.ietf.org 
>> <http://tools.ietf.org/>.
>> 
>> The IETF Secretariat
>> 
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to