On 06/06/2013 10:48 AM, Manger, James H wrote:

John,

Why is the circularity of registration any different for a non-bearer scheme?

A developer browsing a service portal can grab an id & secret, just as easily as grabbing a bearer token, to configure into an app as the initial access token.


That's true -- and in that case, they're not doing dynamic registration and this spec doesn't apply. They're doing static registration, which is still of course an option.

But there are cases where you want to pre-authorize a developer or tie together a set of clients, and the Initial Access Token gives you a mechanism for starting that work. (Though, importantly, it doesn't specify everything that you'd need in order to do that.)

A client registration endpoint can return an id & secret, just as easily as returning a bearer token, for the client to use as the registration access token.


It does, for clients that use them. But not all clients use client_secret, and forcing all clients to have a client_secret just to talk to the registration endpoint doesn't fly. OpenID Connect already tried that approach, and failed, and we need to learn from that mistake instead of repeating it. What's tricky about this is that it seems like a perfectly reasonable thing to do on the surface but it falls apart quickly in implementation.

OAuth 2 defines a JSON format for conveying an access token [RFC6749 "OAuth 2.0" section 5.1. "Issuing an access token: Successful Response"]. That might be a better syntax for an app to expect when receiving an initial access token and a registration access token, given it needs to understand that format for "real" access tokens anyway.


How you get the initial access token is out of scope. You *can* do a plain old OAuth 2.0 flow and get the Initial Access Token back from the Token Endpoint with the syntax mentioned here. We didn't adopt that syntax for the registration endpoint's Registration Access Token response because it was argued that as a simple bearer token with no explicit scopes or other properties, a simple string would be preferable. While I would personally prefer to use the structure from the Token Endpoint, the Working Group decided (and convinced me) that locking it down to a simple bearer token in this case (just the Registration Access Token) is simpler for clients and servers to deal with.

> Having a mandatory-to-implement mechanism in place is certainly useful

Registration supporting the same mechanism an app will use with "real" access tokens (whatever that is for this AS) would be even more useful.


But what if the app doesn't authenticate to the token endpoint at all? We can't just throw out an entire class of clients.

 -- Justin

--

James Manger

*From:*John Bradley [mailto:ve7...@ve7jtb.com]
*Sent:* Thursday, 6 June 2013 7:22 PM
*To:* Tschofenig, Hannes (NSN - FI/Espoo)
*Cc:* ext Tim Bray; Manger, James H; oauth@ietf.org
*Subject:* Re: [OAUTH-WG] draft-ietf-oauth-dyn-reg and bearer tokens

On the face of it I think adding proof of possession aught to be possible. The hard part will be that those mechanisms assume a registered client.

I think the trick will be not crating a circular registration problem. Adding the other token types to the RS will be simple in comparison.

John B.

On 2013-06-06, at 10:57 AM, "Tschofenig, Hannes (NSN - FI/Espoo)" <hannes.tschofe...@nsn.com <mailto:hannes.tschofe...@nsn.com>> wrote:



That's fair, John.

Having a mandatory-to-implement mechanism in place is certainly useful. Pushing stronger security mechanisms to other specifications is also fine. It would be good to re-read the document to see whether we can actually fit the currently worked on security mechanisms into the spec at a later stage or whether there are some problems with the extensibility story.

Ciao

Hannes

*From:*ext John Bradley [mailto:ve7...@ve7jtb.com <http://ve7jtb.com>]
*Sent:*Thursday, June 06, 2013 11:54 AM
*To:*Tschofenig, Hannes (NSN - FI/Espoo)
*Cc:*ext Tim Bray; Manger, James H; oauth@ietf.org <mailto:oauth@ietf.org>
*Subject:*Re: [OAUTH-WG] draft-ietf-oauth-dyn-reg and bearer tokens

There are a couple of reasons.

One criticism Hannes and others make of OAuth specs is they are not tightly profiled enough to be interoperable without further out of band configuration and profiling.

Making registration work with minimal ambiguity was a priority for Connect and that has carried over.

I am not opposed to having this extended at some point in the future, once we have a second token type. The new token type should be available to do updates as well.

The problem is that starting down the HoK route potentially requires a registered client that may need to be registered to do the registration.

I think that is best left to another spec to sort out the possible turtles.

So the default needs to be bearer tokens unless registration is extended by another profile.

John B.

On 2013-06-06, at 10:15 AM, "Tschofenig, Hannes (NSN - FI/Espoo)" <hannes.tschofe...@nsn.com <mailto:hannes.tschofe...@nsn.com>> wrote:




Because bearer tokens have a stable RFC-numbered spec and are widely implemented and the registration flow as documented seems like it should work? -T

That's the answer for why there is support for bearer tokens but it is not the answer to why that's the only supported mechanism.

If we want to support stronger security mechanisms (which the group has decided to work on already) then we need to have a story on how to support the other mechanisms as well .



_______________________________________________
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

Reply via email to