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/blahblahblah> 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