API Federated Credential Management API включен в Chrome 108, но ожидается, что он будет продолжать развиваться. Критических изменений не запланировано.
Для кого эти обновления?
Эти обновления для вас, если:
- Вы являетесь поставщиком удостоверений, использующим API федеративного управления учетными данными.
- Вы являетесь IdP или RP и заинтересованы в расширении API в соответствии с вашим вариантом использования – например, вы наблюдали или участвовали в обсуждениях в репозитории FedID CG и хотите понять изменения, внесенные в API.
- Вы являетесь поставщиком браузера и хотите быть в курсе статуса реализации API.
Если вы новичок в этом API или еще не экспериментировали с ним, прочтите введение в API Federated Credential Management API .
Журнал изменений
Чтобы быть в курсе изменений API FedCM, посетите наш блог или информационный бюллетень .
Chrome 131 (октябрь 2024 г.)
- API доступа к хранилищу теперь использует FedCM в качестве сигнала доверия .
- Если пользователь проходит аутентификацию с помощью FedCM и дал согласие на использование RP, встроенный IdP может вызвать метод
requestStorageAccess()
, чтобы автоматически получить доступ к хранилищу своих собственных файлов cookie верхнего уровня без необходимости дополнительного запроса пользователя.
- Если пользователь проходит аутентификацию с помощью FedCM и дал согласие на использование RP, встроенный IdP может вызвать метод
Chrome 125 (апрель 2024 г.)
- Поскольку в спецификации имя «конечные точки списка учетных записей» изменено на «конечная точка учетных записей», наша документация приведена в соответствие соответствующим образом.
- Пробная версия Origin для API режима кнопок доступна на настольном компьютере Chrome 125. Подробную информацию об этом можно найти в обновлениях FedCM: пробная версия API режима кнопок, CORS и SameSite .
- CORS применяется к конечной точке утверждения идентификатора, начиная с Chrome 125.
- Chrome будет отправлять только файлы cookie, явно помеченные как
SameSite=None
в конечную точку утверждения идентификатора и конечную точку учетных записей, начиная с Chrome 125.
Chrome 123 (февраль 2024 г.)
- Добавлена поддержка API-интерфейса Domain Hint . API-интерфейс Domain Hint позволяет RP указывать свойство
domainHint
при вызове API FedCM, чтобы отображать для пользователя только соответствующие учетные записи.
Chrome 122 (январь 2024 г.)
- Добавлена поддержка Disconnect API . API Disconnect позволяет RP отключать своих пользователей от учетной записи IdP, не полагаясь на сторонние файлы cookie.
- Проверка
/.well-known/web-identity
теперь пропускается, если RP и IdP находятся на одном сайте. - Подресурсы теперь могут устанавливать статус входа на один и тот же сайт.
Chrome 121 (декабрь 2023 г.)
- Смягченное условие для запуска автоматической повторной аутентификации FedCM:
- Функция автоматической повторной аутентификации в FedCM срабатывает только тогда, когда пользователь возвращается. Это означает, что пользователю необходимо один раз войти в RP с помощью FedCM в каждом экземпляре браузера, прежде чем можно будет запустить автоматическую повторную аутентификацию. Первоначально это условие было введено для снижения риска того, что трекеры выдают себя за поставщика удостоверений (IdP) и обманом заставляют браузер автоматически повторно аутентифицировать пользователя без его ведома или согласия. Однако этот дизайн не может гарантировать преимущества конфиденциальности, если трекер имеет доступ к сторонним файлам cookie в контексте RP. FedCM предоставляет только часть возможностей, доступных через сторонние файлы cookie, поэтому, если у средства отслеживания уже есть доступ к сторонним файлам cookie в контексте RP, доступ к FedCM не представляет дополнительного риска для конфиденциальности.
Поскольку сторонние файлы cookie используются законно, и ослабление условия улучшит пользовательский интерфейс, это поведение меняется с Chrome 121. Мы решили ослабить ограничение условия, чтобы считать пользователя возвращающимся: если сторонние файлы cookie доступный поставщику удостоверений в контексте RP, Chrome будет доверять утверждению поставщика удостоверений о статусе учетной записи пользователя, указанному в спискеapproved_clients
, и запускать автоматическую повторную аутентификацию, если это применимо. Сторонние файлы cookie могут быть доступны через: пользовательские настройки, корпоративные политики, эвристику ( Safari , Firefox , Chrome ) и другие API-интерфейсы веб-платформы (например, API доступа к хранилищу ). Обратите внимание, что когда IdP потеряет доступ к сторонним файлам cookie в будущем, если пользователь никогда раньше явно не предоставлял разрешение на использование пользовательского интерфейса FedCM (например, нажимая кнопку « Продолжить как »), он все равно будет рассматриваться как новый пользователь.
Никаких действий со стороны разработчика не требуется. Обратите внимание, что с этим изменением процесс автоматической повторной аутентификации может активироваться в большей степени, если поставщик удостоверений имеет доступ к сторонним файлам cookie и утверждает, что пользователь уже создал учетную запись на RP в прошлом.
- Функция автоматической повторной аутентификации в FedCM срабатывает только тогда, когда пользователь возвращается. Это означает, что пользователю необходимо один раз войти в RP с помощью FedCM в каждом экземпляре браузера, прежде чем можно будет запустить автоматическую повторную аутентификацию. Первоначально это условие было введено для снижения риска того, что трекеры выдают себя за поставщика удостоверений (IdP) и обманом заставляют браузер автоматически повторно аутентифицировать пользователя без его ведома или согласия. Однако этот дизайн не может гарантировать преимущества конфиденциальности, если трекер имеет доступ к сторонним файлам cookie в контексте RP. FedCM предоставляет только часть возможностей, доступных через сторонние файлы cookie, поэтому, если у средства отслеживания уже есть доступ к сторонним файлам cookie в контексте RP, доступ к FedCM не представляет дополнительного риска для конфиденциальности.
Chrome 120 (ноябрь 2023 г.)
- Добавлена поддержка следующих трех функций в Chrome 120:
- API статуса входа : API статуса входа — это механизм, с помощью которого веб-сайт, особенно IdP, сообщает браузеру статус входа пользователя. С помощью этого API браузер может сократить количество ненужных запросов к IdP и смягчить потенциальные атаки по времени. API статуса входа является обязательным требованием для FedCM. Благодаря этому изменению флаг
chrome://flags/#fedcm-without-third-party-cookies
больше не требуется для включения FedCM, когда сторонние файлы cookie заблокированы. - API ошибок : API ошибок уведомляет пользователя, показывая пользовательский интерфейс браузера с информацией об ошибке, предоставленной IdP.
- API с автоматически выбранным флагом . API с автоматически выбранным флагом сообщает, было ли получено явное разрешение пользователя путем нажатия кнопки « Продолжить как» как с IdP, так и с RP, всякий раз, когда происходила автоматическая повторная аутентификация или происходило явное посредничество. Совместное использование происходит только после того, как пользователю будет предоставлено разрешение на связь с IdP и RP.
- API статуса входа : API статуса входа — это механизм, с помощью которого веб-сайт, особенно IdP, сообщает браузеру статус входа пользователя. С помощью этого API браузер может сократить количество ненужных запросов к IdP и смягчить потенциальные атаки по времени. API статуса входа является обязательным требованием для FedCM. Благодаря этому изменению флаг
Chrome 117 (сентябрь 2023 г.)
- Пробная версия Origin для API статуса входа в систему IdP доступна на Android из Chrome 117. Подробнее об этом читайте в обновлениях FedCM: API статуса входа в систему IdP, подсказка для входа и многое другое .
Chrome 116 (август 2023 г.)
- Добавлена поддержка следующих трех функций в Chrome 116:
- API подсказки для входа : укажите предпочитаемую учетную запись пользователя для входа.
- API информации о пользователе : получение информации о возвращающемся пользователе, чтобы поставщик удостоверений (IdP) мог отображать персонализированную кнопку входа в iframe.
- RP Context API : используйте заголовок, отличный от «Вход» в диалоговом окне FedCM.
- Доступна пробная версия Origin для API статуса входа в систему IdP. Узнайте больше об этом в обновлениях FedCM: API статуса входа в систему IdP, подсказка для входа и многое другое .
Chrome 115 (июнь 2023 г.)
- Добавлена поддержка автоматической повторной аутентификации, которая позволяет пользователям автоматически проходить повторную аутентификацию, когда они возвращаются после первоначальной аутентификации с помощью FedCM. Это улучшает взаимодействие с пользователем и обеспечивает более упрощенную повторную аутентификацию на RP после первоначальной аутентификации. Узнайте больше об автоматической повторной аутентификации FedCM .
Chrome 110 (февраль 2023 г.)
- Для конечной точки утверждения идентификатора поставщикам удостоверений необходимо проверить заголовок
Origin
(вместо заголовкаReferer
), чтобы увидеть, соответствует ли значение источнику идентификатора клиента. - Теперь доступна поддержка iframe из разных источников для FedCM. Разработчик должен указать Permissions-Policyidentity
identity-credentials-get
, чтобы разрешить API FedCM во встроенном iframe с перекрестным происхождением. Вы можете посмотреть пример iframe с перекрестным происхождением. - Добавлен новый флаг Chrome
chrome://flags/#fedcm-without-third-party-cookies
. С помощью этого флага вы можете протестировать функциональность FedCM в Chrome, заблокировав сторонние файлы cookie. Узнайте больше из документации FedCM .
Chrome 108 (октябрь 2022 г.)
- «Манифест верхнего уровня» теперь называется в документе «общеизвестным файлом». Никаких изменений реализации не требуется.
- «Манифест IdP» теперь называется в документе «файлом конфигурации». Никаких изменений реализации не требуется.
-
id_token_endpoint
в «файле конфигурации» переименован вid_assertion_endpoint
. - Запросы к IdP теперь включают заголовок
Sec-Fetch-Dest: webidentity
вместо заголовкаSec-FedCM-CSRF: ?1
.
Chrome 105 (август 2022 г.)
- В документ добавлена важная информация о безопасности. Поставщик удостоверений (IdP) должен проверить, соответствует ли заголовок
Referer
источнику, который RP заранее зарегистрировал в конечной точке токена идентификатора . - Манифест верхнего уровня переименовывается с
/.well-known/fedcm.json
на/.well-known/web-identity
, а URL-адрес, указанный вprovider_urls
должен включать имя файла. - Методы
login()
,logout()
иrevoke()
в экземплярахFederatedCredential
больше недоступны. - API Federated Credential Management теперь использует новый тип
IdentityCredential
вместоFederatedCredential
. Это можно использовать для обнаружения функций, но в остальном это практически незаметное изменение. - Переместите функцию входа из комбинации
navigator.credentials.get()
иFederatedCredential.prototype.login()
вnavigator.credentials.get()
. - Конечная точка отзыва в манифесте больше не действует.
- Используйте поле
identity
вместоfederated
поля для вызововnavigator.credentials.get()
. -
url
теперь являетсяconfigURL
и должен быть полным URL-адресом JSON-файла манифеста, а не путем для вызоваnavigator.credentials.get()
. -
nonce
теперь является необязательным параметром дляnavigator.credentials.get()
. -
hint
больше не доступна в качестве опции дляnavigator.credentials.get()
.
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
Chrome 104 (июнь 2022 г.)
- Параметр
consent_acquired
, отправляемый в конечную точку токена идентификатора, теперь имеетdisclosure_text_shown
. Значение не меняется. - значки фирменного оформления в манифесте IdP перестали поддерживать изображения SVG, но больше не должны быть разрешены Политикой безопасности контента RP.
Chrome 103 (май 2022 г.)
- Поддерживает среды рабочего стола.
- Поддерживает настройки для каждого RP на рабочем столе.
- Конечная точка метаданных клиента теперь необязательна. В этой конечной точке URL-адрес политики конфиденциальности также не является обязательным.
- В документ добавлено предостережение по поводу использования CSP
connect-src
.