Contact emails

cbiesin...@chromium.org

Explainer

Use case we want to support: https://github.com/w3c-fedid/FedCM/issues/477

Derived explainers:

https://github.com/fedidcg/FedCM/issues/555

https://github.com/fedidcg/FedCM/issues/556

https://github.com/fedidcg/FedCM/issues/559

https://github.com/fedidcg/FedCM/issues/552

https://github.com/fedidcg/FedCM/issues/553

Specification

https://github.com/w3c-fedid/FedCM/pull/662 (continuation API)

https://github.com/w3c-fedid/FedCM/pull/661 (parameter API, merged)

https://github.com/w3c-fedid/FedCM/pull/668 (fields API)

https://github.com/w3c-fedid/FedCM/pull/667 (multiple configURLs)

https://github.com/w3c-fedid/FedCM/pull/669 (account labels)

Summary

This bundles a few features that we would like to launch at the same time.
We are bundling them together because they can be used by IdPs to implement
authorization flows such as letting a user grant access to a user’s
calendar to an RP. See also https://github.com/w3c-fedid/FedCM/issues/477.
Specifically:

   -

   The IdP needs to be able to show a custom prompt for the permission
   (continuation API)
   -

   The RP needs an extensible way to communicate to the IdP what it wants
   access to (parameters API)
   -

   The RP needs to be able to customize/suppress the text referring to the
   IdP sharing “name, email address and profile picture” because in this
   situation they are asking for different information (fields API)
   -

   The IdP may want to use a different endpoint to implement the
   authorization flow (multiple configURLs)
   -

   Certain accounts may only be eligible for one of the authentication and
   authorization flows and so there needs to be a way to show different
   accounts in the two flows (account labels API)


In addition, the APIs are solving a series of related FPWD blockers
<https://github.com/w3c-fedid/FedCM/wiki/Status-of-FPWD%E2%80%90identified-Issues>
identified
<https://lists.w3.org/Archives/Public/public-fedid-wg/2024Jul/0006.html> by
the FedID WG.

Continuation API:

https://github.com/fedidcg/FedCM/issues/555

This lets the IDP open a popup window to finish the sign-in flow after
potentially collecting additional information.

Parameters API:

https://github.com/fedidcg/FedCM/issues/556

This lets RPs pass additional data to the ID assertion endpoint

Fields API:

https://github.com/fedidcg/FedCM/issues/559

This lets RPs bypass the data sharing prompt in favor of the IDP prompting

Multiple configURLs:

https://github.com/fedidcg/FedCM/issues/552

This lets IDPs use different config files in different contexts without
weakening FedCM privacy properties, by allowing one accounts endpoint for
the eTLD+1 (instead of one config file, which is more limiting than
necessary)

Account labels:

https://github.com/fedidcg/FedCM/issues/553

Combined with the previous proposal, this allows filtering the account list
per config file without providing additional entropy to the IDP.


Blink component

Blink>Identity>FedCM
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EIdentity%3EFedCM>

TAG review

https://github.com/w3ctag/design-reviews/issues/945

TAG review status

Pending

Chromium Trial Name

FedCmContinueOnBundle

Link to origin trial feedback summary

What we learned during the origin trial:


   -

   This bundle works well for implementing an authorization flow for an
   identity provider
   -

   The parameter API needed to be refined to be easier to use for an IDP
   (allow nested objects; send the parameters as serialized JSON instead of
   individually prefixed parameters)
   -

   The fields API has gone through various iterations during the trial and
   is now easier and more flexible to use
   -

   We have identified a possible future extension to the continuation API
   (adding an IdentityProvider.reject function to mirror .resolve) but are not
   shipping it as part of this launch.




Origin Trial documentation link

https://developers.google.com/privacy-sandbox/blog/fedcm-chrome-126-updates#origin_trial_fedcm_continuation_api_bundle


WebFeature UseCounter name

kFedCmContinueOnResponse

Risks

Interoperability and Compatibility

No compatibility risk as this adds new parameters to dictionaries in a
function argument.

No concern about interoperability because other browser engines currently
do not ship FedCM.


Gecko: No signal. For incremental improvements to FedCM, Firefox has asked
us not to file standards position, and they will instead provide feedback
in the GitHub PR. They have interacted on the spec PRs (e.g. on
https://github.com/w3c-fedid/FedCM/pull/662) and on the explainers (e.g.
https://github.com/w3c-fedid/FedCM/issues/477) but have not expressed an
explicit positive signal.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/336)

Web developers: Positive (
https://github.com/fedidcg/FedCM/issues/488#issuecomment-1749682526) Also:
https://github.com/fedidcg/FedCM/issues/496#issuecomment-1781364610
https://github.com/fedidcg/FedCM/issues/533#issuecomment-1878581998

Other signals:

Ergonomics

This improves ergonomics for passing custom parameters to the IDP because
it now provides a structured way to do so instead of (ab)using the "nonce"
parameter.

Otherwise no impact on ergonomics either way.


Activation

No particular risks.


Security

We made sure that the popup from the continuation API is same-origin with
the IDP, and that it cannot communicate with the RP except through the
narrow IdentityProvider.resolve API. In particular, window.opener is null.

The additional parameters from the parameter and fields API are only sent
to the server after user interaction, and from a privacy perspective are
equivalent to the existing "nonce" field. However, from a developer
ergonomics perspective the additions are much easier to use.

Account labels were carefully designed not to add entropy and in particular
not to send additional data to the server.


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?

n/a


Debuggability

We show console messages to assist debugging where appropriate.

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

No

FedCM in general is not supported in webview


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

Yes

https://wpt.fyi/results/fedcm/fedcm-authz?label=experimental&label=master&aligned

We are investing why they are failing on wpt.fyi even though they pass in
our internal infrastructure (e.g.
https://ci.chromium.org/ui/test/chromium/ninja%3A%2F%2F%3Ablink_wpt_tests%2Fvirtual%2Ffedcm-authz%2Fexternal%2Fwpt%2Ffedcm%2Ffedcm-authz%2Ffedcm-continue-on-with-account.https.html
)



Flag name on chrome://flags

fedcm-authz

Finch feature name

FedCmAuthz

Requires code in //chrome?

True

Tracking bug

https://crbug.com/40262526

Launch bug

https://launch.corp.google.com/launch/4348692

Measurement

https://chromestatus.com/metrics/feature/timeline/popularity/4955 In
addition, we have several UMA metrics.

Estimated milestones

Shipping on desktop

132

Origin trial desktop first

127

Origin trial desktop last

131

Origin trial extension 1 end milestone

133

Shipping on Android

132

Origin trial Android first

128

Origin trial Android last

133


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).

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/6495400321351680?gate=4886628616372224

Links to previous Intent discussions

Intent to Prototype:
https://groups.google.com/a/chromium.org/g/blink-dev/c/qqrG6yn1u1Q?pli=1

Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPTJ0XEedt%2Bu2pS_2NHHfxtEV9JJ7wbuKNEnieeWr6w8FtwKLw%40mail.gmail.com

Intent to Extend Experiment 1:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/66ec74bf.2b0a0220.195547.03af.GAE%40google.com


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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPTJ0XHfrr2FvW4qP%2BsS3Jn7DoE5oyTZETyuJTgT9wSN46ao4Q%40mail.gmail.com.

Reply via email to