Am 28.05.2011 20:25, schrieb Doug Tangren:
I just re-read draft 16 on this memorial day weekend :)

1. I had a comment on the suggested use of the authorization code flow for native clients [1].

Section 10.9 on auth code transmission [2] suggests users of the auth code flow should implement tls on it's redirect uri. This makes sense for web servers which may register something like "https://foo.com/i/got/authed"; but may not be possible on native clients.

It makes sense for all flows where the redirect_uri referes to a server resource. This holds true for web servers acting as OAuth client as well as any server-based resource used by other clients to obtain the authorization code. This should be clarified.


It's a common practice for android clients, for instance, to open a browser window to authorize a user via `Intent` and then register their redirect_uri to be a custom scheme registered with their android `activity`, something like "myapp://i/got/authed".

As pointed out by e.g. Marius in some postings, there are other techniques as well. Some of them are based on server resources the native app relies on.


2. With regards to resource owner creds flow security consideration mentioned [3], it really feels like this is dodging the whole idea of oauth asking for authorization on the site owning the resources.

The section clearly states our preference to use other grant types.

   "The authorization server and client SHOULD minimize use of this grant
   type and utilize other grant types whenever possible."

Apart from that, I would not limit OAuth 2.0 to "just" delegated authorization via end-user authorization. In my opinion, OAuth 2.0 is a generic token issuance framework. Such tokens can be issued based on delegation flows but also based on direct authentication on the tokens endpoint. Other examples of reasonable credentials are assertions of all kind. We at Deutsche Telekom also added a custom grant type to directly authenticate users based on their SIM card.

What I like the most, OAuth 2.0 combines the user involvement of OAuth 1.0 with architectural properties of Kerberos (trusted third-party authentication, scalability). Moreover, it is based on and integrated with HTTP(S) and allows to use different token formats (and even designs).


Is this mainly meant for `official` apps developed by the site owning the resource?

We use it for our own apps. Here, the decision to use web-based flows or username/password is typically met by product managers.

Otherwise, it feels like its no different than ye old basic http auth and gimme your login and password and trust me not to store them.

It clearly has the security advantages that refresh tokens instead of passwords are stored in order to provide a convenient login experience. The scope of such a token can (and must) be much less powerful than a password.

regards,
Torsten.


[1]: http://tools.ietf.org/html/draft-ietf-oauth-v2-16#section-9
[2]: http://tools.ietf.org/html/draft-ietf-oauth-v2-16#section-10.9
[3]: http://tools.ietf.org/html/draft-ietf-oauth-v2-16#section-10.12


-Doug Tangren
http://lessis.me


_______________________________________________
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