Two thumbs up!

I would rather delay and get it right. Good things come to those who wait.

But; I am the least experienced standard author or advisor. I am an idealist and am ok stating my opinion and moving on so others with more experience in this area can make the decisions.

Aloha.

- Jim Manico

On 7/30/20 5:16 PM, Aaron Parecki wrote:
I have a draft from a coworker that defines a cookie response mode and cookie bearer token usage. It's something we've considered bringing to the working group but haven't actually proposed yet. Is this the kind of thing you're talking about?

https://github.com/jaredhanson/draft-oauth-cookie-response-mode/blob/master/spec.txt

This looks like a good starting point and I am happy to work with Jared on refining this.

---
Aaron Parecki
https://aaronparecki.com
https://oauth2simplified.com

On Thu, Jul 30, 2020 at 1:55 PM Dick Hardt <dick.ha...@gmail.com <mailto:dick.ha...@gmail.com>> wrote:

    I hear you Jim, but it is not so much rules, as expectations and
    expediency.

    There may be significant debate on how to do the feature. You
    would not want to hold up the OAuth 2.1 document for that would
    you? There are other documents already in flight -- which other
    ones should OAuth 2.1 wait for?

    Reducing the "20 standards" to one document was the goal of OAuth 2.1.

    Having said that, if members of the working group want to get
    working on this feature, and if it is completed quickly, it could
    be referenced or included in OAuth 2.1 depending on the relative
    timing.

    /Dick




    ᐧ

    On Thu, Jul 30, 2020 at 1:47 PM Jim Manico <j...@manicode.com
    <mailto:j...@manicode.com>> wrote:

        I politely encourage the rules to be bent and to integrate
        this basic but fundamental security control into the core
        standard.

        This is just basic security; we want as much basic security in
        the core of any standard. Dev’s now need to read 20 standards
        to get OAuth2 basics... and that’s a barrier to entry.

        --
        Jim Manico
        @Manicode

        On Jul 30, 2020, at 3:21 PM, Dick Hardt <dick.ha...@gmail.com
        <mailto:dick.ha...@gmail.com>> wrote:

        
        One of the constraints of the OAuth 2.1 document that aligned
        the WG was it would have no new features.

        I'd recommend a separate document for the cookie bearer token
        feature.

        ᐧ

        On Thu, Jul 30, 2020 at 12:15 PM Jim Manico <j...@manicode.com
        <mailto:j...@manicode.com>> wrote:

            Yea to cookie configuration suggestions!

            I suggest SameSite=LAX at least, which is actually the
            default behavior in chrome if you do not set the samesite
            value. LAX will not break links that originate from
            emails, STRICT will.

            Point being is that CSRF defense is easy. XSS defense is
            brutally hard in apps with complex UI’s!

            --
            Jim Manico
            @Manicode


            On Jul 30, 2020, at 1:13 PM, Warren Parad
            <wpa...@rhosys.ch <mailto:wpa...@rhosys.ch>> wrote:

            

                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 <mailto: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 <mailto: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.png>


                        

                    Warren Parad

                    Founder, CTO

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

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

-- Jim Manico
                    Manicode Security
                    https://www.manicode..com  <https://www.manicode.com>

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

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

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

--
Jim Manico
Manicode Security
https://www.manicode.com

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

Reply via email to