So, if we go with the Link approach and we are thinking in the context of the MAC token draft, how is realm used in some sane way? Am I right that a server might know of multiple ways to obtain a MAC token? Should we define the realm "oauth2" and then have that imply the link relationship names? This would mean we can support:
WWW-Authenticate: MAC realm="oauth2" WWW-Authenticate: MAC realm="x-newspec" Link: <http://login.example.com/token?grant_type=MAC> rel="oath2-token" Link: <http://login.example.com/auth> rel="oath2-auth" Link: <http://login.example.com/newauth/MAC> rel="x-newspec" If we do define the realm this way, should this go into the core spec? -bill > -----Original Message----- > From: Eran Hammer-Lahav [mailto:e...@hueniverse.com] > Sent: Monday, February 07, 2011 3:07 PM > To: William Mills; Torsten Lodderstedt > Cc: OAuth WG > Subject: RE: [OAUTH-WG] Discovery RE: Bearer token type and scheme name > (deadline: 2/10) > > I'm a strong advocate of the Link approach, given that authorization > information does not belong on the authentication headers. > > EHL > > > -----Original Message----- > > From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] On > Behalf > > Of William Mills > > Sent: Monday, February 07, 2011 2:50 PM > > To: Torsten Lodderstedt > > Cc: OAuth WG > > Subject: [OAUTH-WG] Discovery RE: Bearer token type and scheme name > > (deadline: 2/10) > > > > OK. > > > > So then the question is the right way to communicate token endpoints. > Is it > > cleaner/preferred to have everything in the WWW-Authenticate header, > or > > to break things out so we're not stuffing a lot into those headers > and > > repeating outselves? So, all in one would be: > > > > WWW-Authenticate: MAC realm="somerealm" > > token_url="http://login.example.com/token" > > auth_url="http://login.example.com/webauth" > > > > Broken out might be: > > > > WWW-Authenticate: MAC realm="OAuth2" > > Link: <http://login.example.com/token?grant_type=MAC> rel="oath2- > > token" > > Link: > > > <http://login.example.com/auth?.done=http://foo.service.come/blahblahbl > > ah> rel="oath2-auth" > > > > -bill > > > > > -----Original Message----- > > > From: Torsten Lodderstedt [mailto:tors...@lodderstedt.net] > > > Sent: Saturday, February 05, 2011 10:21 AM > > > To: William Mills > > > Cc: Phil Hunt; OAuth WG > > > Subject: Re: [OAUTH-WG] Bearer token type and scheme name > (deadline: > > > 2/10) > > > > > > that's not the way WWW-Authenticate headers are used today. Instead > > > the resource server should return a single WWW-Authenticate header > > > _per_ supported authentication scheme, such as > > > > > > WWW-Authenticate: MAC realm="somerealm" > > > WWW-Authenticate: BEARER realm="somerealm" > > > > > > furthermore, I think interdependencies among WWW-Authenticate > > headers > > > as suggested by Phil > > > > > > WWW-Authenticate: OAuth > > > token="MAC;BEARER",authorizationUrl="xxxxx",tokenUrl="yyyyy > > > > > > could be rather fragile. > > > > > > I would expect the WWW-Authenticate header to return all the data > > > required to obtain the credentials/tokens, such as > > > > > > WWW-Authenticate: MAC realm="somerealm", > > > tokenUrl="yyyyy&token_secret=yes" > > > WWW-Authenticate: BEARER realm="somerealm", tokenUrl=""yyyyy" > > > > > > Which raises the question whether the coupling between > authentication > > > schemes and the OAuth2 core protocol is stronger than assumed. > > > > > > please als see http://www.ietf.org/mail- > > > archive/web/oauth/current/msg04988.html > > > > > > regards, > > > Torsten. > > > > > > Am 04.02.2011 22:39, schrieb William Mills: > > > > > > > I was thinking along the lines of simply returning the HTTP > > > Authorization header schemes that are supported. In the OAuth 2 > > > context that would be > > > > > > > > WWW-Authenticate: 401 error="blah blah blah" > auth_types="Bearer > > > MAC Basic" > > > > > > > > The client has to be aware of the authentication scheme names. > > > > > > > > -bill > > > > > > > >> -----Original Message----- > > > >> From: Phil Hunt [mailto:phil.h...@oracle.com] > > > >> Sent: Friday, February 04, 2011 1:14 PM > > > >> To: William Mills > > > >> Cc: Marius Scurtescu; OAuth WG > > > >> Subject: Re: [OAUTH-WG] Bearer token type and scheme name > > (deadline: > > > >> 2/10) > > > >> > > > >> I agree, that is still to be defined. There seems to be some > push > > > back > > > >> on discovery, but this is likely warranted. If only because web > > > sites > > > >> may have both browser clients and app clients. > > > >> > > > >> In a previous message, I did suggest the web site return HTTP > 401 > > > >> as below... > > > >>>> 401 Unauthorized > > > >>>> WWW-Authenticate: Basic realm="tokenSvc" > > > >>>> WWW-Authenticate: Digest realm="tokenSvc" > > > >>>> WWW-Authenticate: Form > > > >> url="/clientAuthenticate.jsp",realm="tokenSvc" > > > >> > > > >> It could also include other items for "MAC", etc. > > > >> > > > >> The only other issue would be determining whether the token is > > > obtained > > > >> via an OAuth profile or via some default profile. That could be > > > >> handled with something like: > > > >> > > > >> WWW-Authenticate: Basic realm="somerealm" > > > >> WWW-Authenticate: MAC realm="somerealm" > > > >> WWW-Authenticate: OAuth > > > >> token="MAC;BEARER",authorizationUrl="xxxxx",tokenUrl="yyyyyy" > > > >> > > > >> The above would suggest that MAC tokens could be used alone as > > > >> described in some specification for "MAC". However, the > presence > > > >> of the OAuth header indicates that MAC and BEARER tokens can be > > > >> used in the OAuth pattern. > > > >> > > > >> I think this allows both de-coupling of tokens from OAuth but > also > > > >> informs clients what tokens can be used with OAuth. > > > >> > > > >> There may be other ways to do this. But it does help with the > > > >> decoupling. > > > >> > > > >> Phil > > > >> phil.h...@oracle.com > > > >> > > > >> > > > >> > > > >> > > > >> On 2011-02-04, at 11:44 AM, William Mills wrote: > > > >> > > > >>> I was thinking more about how the client knows what to use. > The > > > >> ubiquitous "service documentation" may come in to play here. > Some > > > form > > > >> of serv ice discovery/webfinger thing could also be used. > > > >>>> -----Original Message----- > > > >>>> From: Phil Hunt [mailto:phil.h...@oracle.com] > > > >>>> Sent: Friday, February 04, 2011 11:37 AM > > > >>>> To: William Mills > > > >>>> Cc: Marius Scurtescu; OAuth WG > > > >>>> Subject: Re: [OAUTH-WG] Bearer token type and scheme name > > > (deadline: > > > >>>> 2/10) > > > >>>> > > > >>>> Yes. This should be defined in each token type specification. > > > >>>> > > > >>>> Phil > > > >>>> phil.h...@oracle.com > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> On 2011-02-04, at 11:29 AM, William Mills wrote: > > > >>>> > > > >>>>> The only challenge is to know what scheme to use and what the > > > >> nuances > > > >>>> are of how to present the credential. > > > >>>>>> -----Original Message----- > > > >>>>>> From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] > > On > > > >>>> Behalf > > > >>>>>> Of Phil Hunt > > > >>>>>> Sent: Friday, February 04, 2011 9:42 AM > > > >>>>>> To: Marius Scurtescu > > > >>>>>> Cc: OAuth WG > > > >>>>>> Subject: Re: [OAUTH-WG] Bearer token type and scheme name > > > >> (deadline: > > > >>>>>> 2/10) > > > >>>>>> > > > >>>>>> OAuth should be able to support other token schemes. > > > >>>>>> > > > >>>>>> Or conversely you don't have to have OAuth to use MAC, JWT, > or > > > >>>>>> whatever. > > > >>>>>> > > > >>>>>> Phil > > > >>>>>> phil.h...@oracle.com > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> On 2011-02-04, at 9:39 AM, Marius Scurtescu wrote: > > > >>>>>> > > > >>>>>>> On Thu, Feb 3, 2011 at 11:39 AM, Eran Hammer-Lahav > > > >>>>>> <e...@hueniverse.com> wrote: > > > >>>>>>>> Hey Marius, > > > >>>>>>>> > > > >>>>>>>>> -----Original Message----- > > > >>>>>>>>> From: Marius Scurtescu [mailto:mscurte...@google.com] > > > >>>>>>>>> Sent: Thursday, February 03, 2011 10:36 AM > > > >>>>>>>>> To: Eran Hammer-Lahav > > > >>>>>>>>> Cc: OAuth WG > > > >>>>>>>>> Subject: Re: [OAUTH-WG] Bearer token type and scheme > > name > > > >>>>>> (deadline: > > > >>>>>>>>> 2/10) > > > >>>>>>>>> > > > >>>>>>>>> On Thu, Feb 3, 2011 at 12:34 AM, Eran Hammer-Lahav > > > >>>>>>>>> <e...@hueniverse.com> wrote: > > > >>>>>>>>> > > > >>>>>>>>>> 2. Single OAuth2 scheme with sub-schemes > > > >>>>>>>>>> > > > >>>>>>>>>> Define a single authentication scheme for all token > types > > > with > > > >>>>>> some > > > >>>>>>>>>> attribute used to detect which scheme is actually being > > > used. > > > >>>>>>>>>> > > > >>>>>>>>>> Benefits: > > > >>>>>>>>>> > > > >>>>>>>>>> - single scheme, reuse of the 1.0 pattern. > > > >>>>>>>>>> > > > >>>>>>>>>> Downsides: > > > >>>>>>>>>> > > > >>>>>>>>>> - requires a new registry for authentication header > > > >> parameters. > > > >>>>>>>>> How is this different from option 1? Wouldn't that need > some > > > >>>>>> registry? > > > >>>>>>>> #1 relies on the existing practice of creating HTTP scheme > > > names > > > >>>> (no > > > >>>>>> current registry but httpbis might be creating one), as well > as > > > >> the > > > >>>> -12 > > > >>>>>> token type registry. Using a sub-scheme means you also need > a > > > >>>> registry > > > >>>>>> for the header attributes that each token type will need > > > >>>>>> (unless > > > >> you > > > >>>>>> just don't care about using the same attribute name for > > > different > > > >>>>>> needs). > > > >>>>>>> Sure, there is no registry for schemes yet, but we would > still > > > >> need > > > >>>>>>> some coordination. The fact that a sub-scheme needs a > registry > > > >> that > > > >>>>>> we > > > >>>>>>> control is a benefit not a downside IMO. > > > >>>>>>> > > > >>>>>>> > > > >>>>>>>>>> - schemes are not easily reusable outside OAuth. > > > >>>>>>>>> Sure. But I really don't see this group trying to create > > > >> generic > > > >>>>>> authentication > > > >>>>>>>>> schemes. > > > >>>>>>>> MAC is exactly that. > > > >>>>>>> May or may not be. My point is that this group is not > focused > > > on > > > >>>>>>> creating generic authentication schemes. Are you aware of > any > > > >> other > > > >>>>>>> protocols that might use MAC or BEARER? Are we willing to > put > > > in > > > >>>> the > > > >>>>>>> effort to create generic schemes? Is it our charter? > > > >>>>>>> > > > >>>>>>> > > > >>>>>>>>>> - existing frameworks usually switch on scheme name, not > on > > > >> sub > > > >>>>>>>>>> scheme, which will cause difficulty in some deployments. > > > >>>>>>>>> I can see this as a potential problem. But considering > that > > > >> there > > > >>>>>> wasn't much > > > >>>>>>>>> objection to use "OAuth" as a scheme name before (total > > > overlap > > > >>>>>> with > > > >>>>>>>>> OAuth 1, and the suggested solution was to look for the > > > >> signature > > > >>>>>>>>> parameter) I don't see how this is suddenly an issue. > > > >>>>>>>> There was pretty strong objection to reusing OAuth. > > > >>>>>>> Yes, because there was no sub-scheme nor version (and the > > > grammar > > > >>>> was > > > >>>>>>> totally broken). Even so, lots of implementations went > ahead > > > and > > > >>>> did > > > >>>>>>> it. Were there any scheme switching issues we are aware of? > > > >>>>>>> > > > >>>>>>> > > > >>>>>>>>> Do we have a concrete problem here or this is just > > > theoretical? > > > >>>>>>>> This came up during the review of > > > >>>>>>>> draft-hammer-http-token-auth > > > >>>> [1]. > > > >>>>>> There was a long thread about it where people posted actual > > > >>>> framework > > > >>>>>> issues. > > > >>>>>>>>>> - potential to produce a very complicated scheme once > many > > > sub > > > >>>>>> schemes > > > >>>>>>>>>> are added. > > > >>>>>>>>> Why? I would argue that this option actually produces > more > > > >>>> uniform > > > >>>>>>>>> schemes because it forces all of them to be name/value > pairs. > > > >>>>>> Beyond > > > >>>>>>>>> token_type everything is scheme specific. I really don't > see > > > >> what > > > >>>>>> is very > > > >>>>>>>>> complicate here. > > > >>>>>>>> It is still a single scheme with many different sub- > schemes, > > > >> each > > > >>>>>> with different key-value pairs that may have conflicting > > > meaning. > > > >>>> The > > > >>>>>> way I look at it is that if I try to fully implement this > mega > > > >>>> scheme > > > >>>>>> (which means all its sub-schemes), it will likely be a > > > complicated > > > >>>>>> task. On the other hand, if you split it across scheme name, > we > > > >>>> already > > > >>>>>> have a well-established system in place to pick and choose > HTTP > > > >>>>>> authentication schemes. > > > >>>>>>> No one has to implement a mega scheme. All schemes must use > > > >>>>>> name/value > > > >>>>>>> pairs and that's where the common part stops. > > > >>>>>>> > > > >>>>>>> > > > >>>>>>>>>> - requires its own discovery method for which schemes > are > > > >>>>>> supported. > > > >>>>>>>>> Why is this a downside only for this option? > > > >>>>>>>> Because the other options get this for free by using the > WWW- > > > >>>>>> Authenticate header (since each scheme has a unique name). > You > > > can > > > >>>> list > > > >>>>>> multiple headers in the 401 response. > > > >>>>>>> I thought we dropped WWW-Authenticate. Why cannot WWW- > > > >> Authenticate > > > >>>>>>> work for sub-schemes as well? > > > >>>>>>> > > > >>>>>>> > > > >>>>>>>> Should I record your vote for #2? > > > >>>>>>> #2 or #3 > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> Thanks, > > > >>>>>>> Marius > > > >>>>>>> _______________________________________________ > > > >>>>>>> OAuth mailing list > > > >>>>>>> OAuth@ietf.org > > > >>>>>>> https://www.ietf.org/mailman/listinfo/oauth > > > >>>>>> _______________________________________________ > > > >>>>>> OAuth mailing list > > > >>>>>> OAuth@ietf.org > > > >>>>>> https://www.ietf.org/mailman/listinfo/oauth > > > > _______________________________________________ > > > > OAuth mailing list > > > > OAuth@ietf.org > > > > https://www.ietf.org/mailman/listinfo/oauth > > _______________________________________________ > > OAuth mailing list > > OAuth@ietf.org > > https://www.ietf.org/mailman/listinfo/oauth _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth