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