>
> Cookie storage of tokens does leave one open to CSRF attacks so it's
> certainly a trade-off. But CSRF is much easier to defense against that XSS
> and cookies are a better choice if the specific risk of having tokens
> stolen via XSS matters to your threat model.


I would assume if we included cookie language, it would explicitly
specify *Secure;
HttpOnly; SameSite=Strict* as the recommendation, and then neither XSS nor
CSRF should be a problem (right?)


OAuth 2.1 isn't supposed to add new features that don't already exist, but
> this sounds like a good candidate to develop as an OAuth extension.


Is this really a *new feature* though?

Okay, I'll submit that RFC 6749 does state the cookie wouldn't be created
by the AS.

> 5.1.  Successful Response
> <https://tools.ietf.org/html/rfc6749#section-5.1>
> <https://tools.ietf.org/html/rfc6749#section-5.1>   The authorization
> server issues an access token and optional refresh
> <https://tools.ietf.org/html/rfc6749#section-5.1>   token, and constructs
> the response by
> *adding the following parameters*
> <https://tools.ietf.org/html/rfc6749#section-5.1>*   to the entity-body
> of the HTTP response* with a 200 (OK) status code:
> <https://tools.ietf.org/html/rfc6749#section-5.1>


However that wouldn't prevent a client using the password grant (I know I
said a bad word) or authorization code flow from creating the cookie to
contain that. Specifically

> 7.  Accessing Protected Resources
>    The client accesses protected resources by presenting the access
>    token to the resource server.  The resource server MUST validate the
>    access token and ensure that it has not expired and that its scope
>    covers the requested resource.
>
>
>
> *The methods used by the resource   server to validate the access token
> (as well as any error responses)   are beyond the scope of this
> specification but generally involve an   interaction or coordination
> between the resource server and the   authorization server*.
>    The method in which the client utilizes the access token to
>    authenticate with the resource server depends on the type of access
>    token issued by the authorization server.
> * Typically, it involves   using the HTTP "Authorization" request header*
> field [RFC2617] with an
>    authentication scheme defined by the specification of the access
>    token type used, such as [RFC6750].


So that's definitely some gray area. Although perhaps I'm missing a
relevant section. If we are going to go so far to detail a list of possible
RS bearer token possible locations (i.e. Header and Body), to what I assume
is to implicitly say *Don't use a query parameter*. It also suggests *Don't
use a cookie at all*, even with* SameSite=Strict*. Although maybe that is
the point.

For my reference, what makes a *new feature* and what makes *an OAuth
extension?*

Warren Parad

Founder, CTO
Secure your user data and complete your authorization architecture.
Implement Authress <https://bit.ly/37SSO1p>.


On Thu, Jul 30, 2020 at 6:46 PM Aaron Parecki <aa...@parecki.com> wrote:

> I haven't seen any OAuth drafts that talk about sending OAuth access
> tokens in HTTP cookies. OAuth 2.1 isn't supposed to add new features that
> don't already exist, but this sounds like a good candidate to develop as an
> OAuth extension.
>
> ---
> Aaron Parecki
> https://aaronparecki.com
> https://oauth2simplified.com
>
> On Thu, Jul 30, 2020 at 9:35 AM Jim Manico <j...@manicode.com> wrote:
>
>> In a browser, HTTPOnly cookies are the *only* location where an access
>> (or other) token can be stored in a way where it *cannot be stolen from
>> XSS*.
>>
>> It's a very strong place to store tokens from a security point of view.
>>
>> Cookie storage of tokens does leave one open to CSRF attacks so it's
>> certainly a trade-off. But CSRF is much easier to defense against that XSS
>> and cookies are a better choice if the specific risk of having tokens
>> stolen via XSS matters to your threat model.
>>
>> - Jim
>> On 7/30/20 11:43 AM, Warren Parad wrote:
>>
>> https://www.ietf.org/id/draft-ietf-oauth-v2-1-00.html#name-bearer-tokens
>>
>> It seems recently more and more common to pass the access_token to some
>> RS via a cookie, yet 7.2.1 says it defines two methods. I think we need
>> some RFC2119
>> <https://www.ietf.org/id/draft-parecki-oauth-v2-1-03.html#RFC2119> keywords
>> here, to suggest that either SHOULD use one of these two, or MUST. And then
>> optionally state whether or not we recommend or reject the use of cookies
>> as a place for access tokens. It's also possible that the language threw me
>> off, because would an access token in a cookie be a bearer token, but no
>> matter, if I'm having this thought, then surely others have it as well,
>> right?
>>
>> [image: image.png]
>>
>> Warren Parad
>>
>> Founder, CTO
>> Secure your user data and complete your authorization architecture.
>> Implement Authress <https://bit.ly/37SSO1p>.
>>
>> _______________________________________________
>> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>>
>> --
>> Jim Manico
>> Manicode Securityhttps://www.manicode.com
>>
>> _______________________________________________
>> 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