This is how OAuth works: The client wants to access a protected resource. The 
resource requires authentication (that's the definition of protected). The 
client presents the access token to authenticate (using an HTTP authentication 
header). The access token has all the security characteristics of a password:

- Opaque to the client - just a string
- Client must store it in a way that provides access to the clear-text token
- Anyone holding the token can access - the bearer of the token is considered 
its rightful owner
- The token can be leaked or phished - which is sufficient for full access

I don't care much about the philosophical debate (authentication vs 
authorization) as I don't think it adds much value here. When it comes to using 
an access token, the client uses it just like a password, it serves as the 
authentication construct, and it has all the same problems passwords have.

I do recognize that unlike users' passwords, the tokens are not bound to a 
person's memory and therefore can be longer, short-lived, and client-specific 
which is an improvement over users' passwords. But that's just an 
implementation detail. There is little in the protocol today that enforces this.

My assumption is that for the most part, OAuth 2.0 will be used without any 
additional authentication. For example, my employer (whom I do not represents 
here in any way) intends to use access tokens over plain HTTP without SSL/TLS 
(current BBAuth deployment).

As soon as we add discovery, bearer token phishing will become an issue - mark 
my words. This is why I find bearer tokens so offensive (I consider discovery a 
required feature) - but I have lost that battle. All I can do now is use my 
editorial capacity to warn readers of what they are dealing with *in practice*, 
and in practice, bearer tokens are used just like passwords.

--

Either way, this is the new text:

        Clients access protected resources by presenting an access token to the 
resource server.
        Access tokens are bearer authentication tokens, such as passwords or 
capabilities (as
        defined by RFC2828). This requires treating the access token with the
        same care as other passwords. Access tokens SHOULD NOT be sent in the 
clear over an
        insecure channel.


EHL

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to