Federated Credential Management API updates

Published on

The Federated Credential Management API is shipping in Chrome 108, but it's expected to continue evolving until Q4 2023 at least to stabilize.

Who are these updates for?

These updates are for you if:

  • You are an IdP using the Federated Credential Management API—for example, you have run an origin trial.
  • You are an IdP or RP and interested in extending the API to fit your use case – e.g. you've been observing or participating in the discussions on the FedID CG repository and want to understand the changes made to the API.
  • You are a browser vendor and you want to catch up on the implementation status of the API.

If you're new to this API or have not experimented with it yet, read the introduction to the Federated Credential Management API.

Changelog

To stay updated on the FedCM API changes, please subscribe to our newsletter.

Chrome 108 (October 2022)

  • "top-level manifest" is now called "well-known file" in the document. No implementation changes are required.
  • "IdP manifest" is now called "config file" in the document. No implementation changes are required.
  • The id_token_endpoint in the "config file" is renamed to id_assertion_endpoint.
  • The requests to IdP now include a Sec-Fetch-Dest: webidentity header instead of a Sec-FedCM-CSRF: ?1 header.

Chrome 105 (August 2022)

  • Added important security information to the document. The identity provider (IdP) needs to check if the Referer header matches the origin the RP registered in advance on the ID token endpoint.
  • The top-level manifest is renamed from /.well-known/fedcm.json to /.well-known/web-identity and the URL specified in provider_urls should include the file name.
  • Methods login(), logout() and revoke() on FederatedCredential instances are no longer available.
  • The Federated Credential Management API now uses a new type IdentityCredential instead of FederatedCredential. This can be used for feature detection but is otherwise a largely invisible change.
  • Move login functionality from a combination of navigator.credentials.get() and FederatedCredential.prototype.login() to navigator.credentials.get().
  • The revocation endpoint in the manifest is no longer in effect.
  • Use an identity field instead of a federated field for navigator.credentials.get() calls.
  • url is now configURL and must be the full URL for the manifest JSON file instead of the path for a navigator.credentials.get() call.
  • nonce is now an optional parameter for navigator.credentials.get().
  • hint is no longer available as an option for navigator.credentials.get().
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;

Chrome 104 (June 2022)

Chrome 103 (May 2022)

  • Supports desktop environments.
  • Supports per-RP settings on desktop.
  • The client metadata endpoint is now optional. In this endpoint, the privacy policy URL is also optional.
  • Added a caveat about using CSP connect-src in the document.

Resources

Updated on Improve article

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.