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 and
>> 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
>>
>>
>> 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
>>
>> 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. 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. Recently, standards
>> position requests for smaller FedCM features have been closed, pointing to
>> the (unresolved) main FedCM one in https://github.com/WebKit/stan
>> dards-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
>> (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
>>
>> 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
>>
>> Link to entry on the Chrome Platform Status
>>
>> 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/ch
>> romium.org/d/msgid/blink-dev/1814484e-4a0c-4210-b936-29ead46
>> f32c5n%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/ch
>> romium.org/d/msgid/blink-dev/91c26d40-ccc9-4abe-bf97-38cd9e4
>> 8f684%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/ch
>> romium.org/d/msgid/blink-dev/a349c863-9904-491f-9e9d-3122768
>> 3d4ffn%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.

Reply via email to