LGTM3

I'm also a bit concerned with the risk, but it sounds like you have it under control and will be able to handle the rollout appropriately.

/Daniel

On 2024-03-18 07:42, Yoav Weiss (@Shopify) wrote:
LGTM2 actually..

On Mon, Mar 18, 2024 at 7:40 AM Yoav Weiss (@Shopify) <yoavwe...@chromium.org> wrote:

    LGTM1 to ship the ID assertion endpoint CORS requirements.

    On Wed, Mar 13, 2024 at 3:11 PM Nicolás Peña <n...@chromium.org> wrote:


        On Wednesday, March 13, 2024 at 7:37:29 AM UTC-4 Yoav Weiss wrote:

            On Tuesday, March 12, 2024 at 3:11:24 PM UTC-4 Nicolás
            Peña wrote:

                Regarding risk: we are going to implement this and
                test the IDPs we know are currently using FedCM, but
                we do not anticipate them to break since they are
                currently already relying on using third-party cookies
                in iframes. We also plan to have developer
                outreach/blogpost for this change so developers
                currently testing out FedCM are not caught by surprise.

                Regarding vendor alignment: we have been working with
                Firefox and Apple to align on the correct behavior of
                the FedCM fetches: see
                https://github.com/fedidcg/FedCM/issues/320
                <https://github.com/fedidcg/FedCM/issues/320> and
                https://github.com/fedidcg/FedCM/issues/428
                <https://github.com/fedidcg/FedCM/issues/428>. This
                I2S is a result of a lot of discussions, and the small
                addition was a result of a very recent discussion
                occurring on our FedCM CORS breakout session
                
<https://www.w3.org/2024/03/breakouts-day-2024/#b-15220813-651d-4795-98ae-a17434c1e50f>.

                Regarding spec, during our breakout Anne also
                mentioned that the small addition is not possible to
                specify properly, as it depends on the ongoing cookie
                layering work. I will add a note
                <https://github.com/fedidcg/FedCM/pull/550> on the
                spec in that fetch so IDPs know which cookies should
                be sent.

                Anyways, I understand it is a bit late to add
                something to this I2S so if you prefer that we send a
                separate I2S/PSA for the SameSite change, we can do
                that instead.


            Is the accounts endpoint the same endpoint to which this
            intent applies? Or is it different from the ID assertion
            endpoint?
            If it's different, a separate I2S would be best. If it's
            the same, then I think we can probably fold it into this
            intent.


        This change is to the ID assertion endpoint, which is
        different from the accounts endpoint. Then based on your
        comment, we will keep those two in separate intents. Consider
        the small addition I suggested above removed.



                On Tuesday, March 12, 2024 at 1:34:56 PM UTC-4 Mike
                Taylor wrote:

                    On 3/12/24 11:33 AM, Nicolás Peña Moreno wrote:

                    Thanks for the suggestion, Yoav! It seems
                    something fetch experts have some concerns about,
                    so we do not plan to proceed with that suggestion
                    at the moment.

            Thanks for considering! Anne makes a good point that
            active defense here (by filtering requests based on
            destination) would work better against timing attacks than
            passive defense (where the responses are blocked by the
            browser). Please make sure that IDPs are aware of the
            destination filtering requirement, by having it emphasized
            in developer facing documentation.


        Yes, we will work with devrel to continue ensuring IDP best
        practices are easily discoverable.


                    I'd like to append a small addition to this I2S
                    (mainly to avoid having an additional PSA since
                    it is very related to this one): we would also
                    like approval to only send Same-Site=None cookies
                    in the accounts endpoint, instead of all cookies
                    (so not Same-Site=Lax or Same-Site=Strict). This
                    is also a breaking change but we do not
                    anticipate IDPs to break, and also plan to work
                    with them to ensure that they are aware of this
                    change and are not caught by surprise.
                    To my non-FedCM expert brain, this doesn't feel
                    like a small addition (happy to be wrong!), beyond
                    not understanding the scale of the risk, the
                    normal process questions come to mind i.e., is it
                    specced, do we have tests, what do other vendors
                    think about it?


                    On Monday, March 11, 2024 at 6:39:14 AM UTC-4
                    Yoav Weiss wrote:

                        <owner hat off>
                        I left a comment
                        
<https://github.com/fedidcg/FedCM/issues/428#issuecomment-1980469172> around
                        potentially adding a CORS mode that would
                        help IDP servers statically protect
                        themselves from destination-change attacks. I
                        don't *think* it's a blocker, but it's worth
                        considering something along those lines to
                        increase the solution's robustness to
                        configuration errors, and ensure it fails
                        closed. (and ask IDPs' security teams about
                        their thoughts)

                        On Wed, Mar 6, 2024 at 5:51 PM Nicolás Peña
                        <n...@chromium.org> wrote:

                            No, Sec-Fetch-Dest
                            
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest>
                            is not changing. Sec-Fetch-Mode
                            
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Mode>
                            is.

                            On Wednesday, March 6, 2024 at
                            11:31:35 AM UTC-5 Chris Harrelson wrote:

                                On Wed, Mar 6, 2024 at 8:28 AM
                                Nicolás Peña <n...@chromium.org> wrote:



                                    On Wednesday, March 6, 2024 at
                                    5:11:09 AM UTC-5 Yoav Weiss wrote:

                                        On Wed, Mar 6, 2024 at
                                        10:21 AM Yoav Weiss
                                        (@Shopify)
                                        <yoav...@chromium.org> wrote:



                                            On Mon, Mar 4, 2024 at
                                            9:36 PM Mike Taylor
                                            <mike...@chromium.org> wrote:

                                                LGTM1

                                                On 3/4/24 1:33 PM,
                                                Nicolás Peña wrote:
                                                Contact emails

                                                n...@chromium.org


                                                Explainer

                                                
https://github.com/fedidcg/FedCM/issues/428
                                                
<https://github.com/fedidcg/FedCM/issues/428>


                                            A few lines summarizing
                                            this issue would be most
                                            useful when evaluating
                                            this and understanding
                                            what y'all want to ship.
                                            In particular, it'd be
                                            useful to understand the
                                            request flow, what is the
                                            request's origin (as
                                            IIUC, we're talking about
                                            requests issued from the
                                            browser), and what is the
                                            request destination that
                                            we may want IDPs to check.

                                            Examples of the checks
                                            IDPs would have to make
                                            would also be helpful.


                                    Sure! From the spec
                                    
<https://fedidcg.github.io/FedCM/#idp-api-id-assertion-endpoint>,
                                    here is a sample request:

                                    POST /fedcm_assertion_endpoint
                                    HTTP/1.1
                                    Host: idp.example
                                    Origin: https://rp.example/
                                    Content-Type:
                                    application/x-www-form-urlencoded
                                    Cookie: 0x23223
                                    Sec-Fetch-Dest: webidentity
                                    
account_id=123&client_id=client1234&nonce=Ct60bD&disclosure_text_shown=true
                                    With this change, Sec-Fetch-Mode
                                    will now be cors in this request
                                    and the IDP is expected to return
                                    the following in the response (no
                                    preflight is performed):


                                Do you mean Sec-Fetch-Dest?


                                    Access-Control-Allow-Origin:
                                    https://rp.example/
                                    Access-Control-Allow-Credentials:
                                    true


                                        Also, is the "identity
                                        assertion" endpoint the same
                                        as the token endpoint
                                        
<https://github.com/fedidcg/FedCM/blob/main/explainer.md#token_endpoint>?


                                    Yea. I think that explainer doc
                                    is not super up to date.


                                                Specification

                                                
https://github.com/fedidcg/FedCM/pull/547
                                                
<https://github.com/fedidcg/FedCM/pull/547>


                                                Summary

                                                The fetches in the
                                                FedCM API are hard
                                                to reason about
                                                because of the
                                                properties required
                                                of them. While there
                                                is ongoing
                                                discussion regarding
                                                the accounts
                                                endpoint, there is
                                                broad consensus that
                                                the ID assertion
                                                endpoint should use
                                                CORS. This aligns
                                                security properties
                                                of this fetch more
                                                closely to other
                                                fetches in the web
                                                platform.


                                                Blink component

                                                Blink>Identity>FedCM
                                                
<https://g-issues.chromium.org/issues?q=status:open%20componentid:1456331&pli=1&authuser=0>


                                                TAG review

                                                Not requesting a TAG
                                                review. We have
                                                already had
                                                extensive
                                                discussions with
                                                Fetch experts.


                                                TAG review status

                                                N/A


                                                Risks

                                                Interoperability and
                                                Compatibility

                                                This is a backwards
                                                incompatible
                                                feature, but one
                                                that is warranted
                                                due to consensus
                                                reached by our
                                                security reviewers
                                                as well as other
                                                browser vendor
                                                engineers. We have a
                                                manageable list of
                                                IDPs that we know
                                                are using the FedCM
                                                API and we have
                                                reached out to all
                                                IDPs that are
                                                currently deploying
                                                FedCM to make sure
                                                that they won’t
                                                break with this change.



                                                Gecko: Positive
                                                based on TPAC
                                                discussions and
                                                
https://github.com/fedidcg/FedCM/issues/428
                                                
<https://github.com/fedidcg/FedCM/issues/428>.
                                                Not filing a
                                                standards position
                                                request for small
                                                additions at the
                                                explicit request
                                                from Firefox (they
                                                prefer PRs).


                                                WebKit: Positive
                                                based on TPAC
                                                discussions and
                                                
https://github.com/fedidcg/FedCM/issues/428
                                                
<https://github.com/fedidcg/FedCM/issues/428>.
                                                Recently, standards
                                                position requests
                                                for smaller FedCM
                                                features have been
                                                closed, pointing to
                                                the (unresolved)
                                                main FedCM one in
                                                
https://github.com/WebKit/standards-positions/issues/309
                                                
<https://github.com/WebKit/standards-positions/issues/309>so
                                                not filing one for this.


                                                Web developers: No
                                                signals


                                                Other signals:


                                                Ergonomics

                                                N/A



                                                Activation

                                                N/A



                                                Security

                                                By adding CORS, we
                                                add a check that the
                                                IDP explicitly
                                                agrees for the
                                                browser to share the
                                                ID assertion
                                                response to the RP.
                                                In addition, having
                                                this fetch align
                                                with most other
                                                credentialed fetches
                                                in the browser means
                                                that any future
                                                protections are
                                                received by default,
                                                and we do not have
                                                to special case this
                                                fetch.



                                                WebView application
                                                risks

                                                Does this intent
                                                deprecate or change
                                                behavior of existing
                                                APIs, such that it
                                                has potentially high
                                                risk for Android
                                                WebView-based
                                                applications?

                                                None



                                                Debuggability

                                                We surface errors
                                                when there is a
                                                network problem with
                                                the ID assertion
                                                fetch. This will
                                                help developers
                                                understand when this
                                                feature introduces a
                                                problem in their
                                                FedCM calls.



                                                Will this feature be
                                                supported on all six
                                                Blink platforms
                                                (Windows, Mac,
                                                Linux, ChromeOS,
                                                Android, and Android
                                                WebView)?

                                                No. FedCM is not
                                                supported on Android
                                                WebView.


                                                Is this feature
                                                fully tested by
                                                web-platform-tests
                                                
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?


                                                
https://wpt.fyi/results/credential-management/fedcm-identity-assertion-nocors.https.html?label=experimental&label=master&aligned
                                                
<https://wpt.fyi/results/credential-management/fedcm-identity-assertion-nocors.https.html?label=experimental&label=master&aligned>(will
                                                pass on Chrome once
                                                we ship)


                                                Flag name on
                                                chrome://flags

                                                None


                                                Finch feature name

                                                FedCmIdAssertionCORS


                                                Requires code in
                                                //chrome?

                                                True (because FedCM
                                                API does)


                                                Tracking bug

                                                
https://issues.chromium.org/issues/40284123
                                                
<https://issues.chromium.org/issues/40284123>


                                                Estimated milestones

                                                DevTrial on desktop


                                                120



                                                DevTrial on Android


                                                120


                                                We want to ship on M124


                                                Anticipated spec
                                                changes

                                                Open questions about
                                                a feature may be a
                                                source of future web
                                                compat or interop
                                                issues. Please list
                                                open issues (e.g.
                                                links to known
                                                github issues in the
                                                project for the
                                                feature
                                                specification) whose
                                                resolution may
                                                introduce web
                                                compat/interop risk
                                                (e.g., changing to
                                                naming or structure
                                                of the API in a
                                                non-backward-compatible
                                                way).

                                                
https://github.com/whatwg/fetch/issues/1637
                                                
<https://github.com/whatwg/fetch/issues/1637>


                                                Link to entry on the
                                                Chrome Platform Status

                                                
https://chromestatus.com/feature/5094763339710464
                                                
<https://chromestatus.com/feature/5094763339710464>


                                                This intent message
                                                was generated by
                                                Chrome Platform
                                                Status
                                                <https://chromestatus.com/>.


-- You received this
                                                message because you
                                                are subscribed to
                                                the Google Groups
                                                "blink-dev" group.
                                                To unsubscribe from
                                                this group and stop
                                                receiving emails
                                                from it, send an
                                                email to
                                                
blink-dev+unsubscr...@chromium.org.
                                                To view this
                                                discussion on the
                                                web visit
                                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1814484e-4a0c-4210-b936-29ead46f32c5n%40chromium.org
                                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1814484e-4a0c-4210-b936-29ead46f32c5n%40chromium.org?utm_medium=email&utm_source=footer>.
-- You received this
                                                message because you
                                                are subscribed to the
                                                Google Groups
                                                "blink-dev" group.
                                                To unsubscribe from
                                                this group and stop
                                                receiving emails from
                                                it, send an email to
                                                
blink-dev+unsubscr...@chromium.org.
                                                To view this
                                                discussion on the web
                                                visit
                                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/91c26d40-ccc9-4abe-bf97-38cd9e48f684%40chromium.org
                                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/91c26d40-ccc9-4abe-bf97-38cd9e48f684%40chromium.org?utm_medium=email&utm_source=footer>.

-- You received this message because
                                    you are subscribed to the Google
                                    Groups "blink-dev" group.

                                    To unsubscribe from this group
                                    and stop receiving emails from
                                    it, send an email to
                                    blink-dev+...@chromium.org.

                                    To view this discussion on the
                                    web visit
                                    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a349c863-9904-491f-9e9d-31227683d4ffn%40chromium.org
                                    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a349c863-9904-491f-9e9d-31227683d4ffn%40chromium.org?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BpVCGJ-mtXpG1oT7VWPv9YhQqh%2BpPipFDhBwmoiTBLsQ%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BpVCGJ-mtXpG1oT7VWPv9YhQqh%2BpPipFDhBwmoiTBLsQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9869119c-cbf5-495e-8a53-fd9fc1abd142%40gmail.com.

Reply via email to