Обновления API федеративного управления учетными данными

API Federated Credential Management API включен в Chrome 108, но ожидается, что он будет продолжать развиваться. Критических изменений не запланировано.

Для кого эти обновления?

Эти обновления для вас, если:

  • Вы являетесь поставщиком удостоверений, использующим API федеративного управления учетными данными.
  • Вы являетесь IdP или RP и заинтересованы в расширении API в соответствии с вашим вариантом использования – например, вы наблюдали или участвовали в обсуждениях в репозитории FedID CG и хотите понять изменения, внесенные в API.
  • Вы являетесь поставщиком браузера и хотите быть в курсе статуса реализации API.

Если вы новичок в этом API или еще не экспериментировали с ним, прочтите введение в API Federated Credential Management API .

Журнал изменений

Чтобы быть в курсе изменений API FedCM, посетите наш блог или информационный бюллетень .

Chrome 132 (ноябрь 2024 г.)

Chrome 131 (октябрь 2024 г.)

Chrome 125 (апрель 2024 г.)

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 доступный IdP в контексте RP, Chrome будет доверять утверждению IdP о статусе учетной записи пользователя, указанному в списке approved_clients , и запускать автоматическую повторную аутентификацию, если это применимо. Сторонние файлы cookie могут быть доступны через: пользовательские настройки, корпоративные политики, эвристику ( Safari , Firefox , Chrome ) и другие API-интерфейсы веб-платформы (например, API доступа к хранилищу ). Обратите внимание, что когда IdP потеряет доступ к сторонним файлам cookie в будущем, если пользователь никогда раньше явно не предоставлял разрешение на использование пользовательского интерфейса FedCM (например, нажимая кнопку « Продолжить как »), он все равно будет рассматриваться как новый пользователь.
      Никаких действий со стороны разработчика не требуется. Обратите внимание, что с этим изменением процесс автоматической повторной аутентификации может активироваться в большей степени, если поставщик удостоверений имеет доступ к сторонним файлам cookie и утверждает, что пользователь уже создал учетную запись на RP в прошлом.

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.

Chrome 117 (сентябрь 2023 г.)

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

Chrome 103 (май 2022 г.)

  • Поддерживает среды рабочего стола.
  • Поддерживает настройки для каждого RP на рабочем столе.
  • Конечная точка метаданных клиента теперь необязательна. В этой конечной точке URL-адрес политики конфиденциальности также не является обязательным.
  • В документ добавлено предостережение по поводу использования CSP connect-src .

Ресурсы

,

API Federated Credential Management API включен в Chrome 108, но ожидается, что он будет продолжать развиваться. Критических изменений не запланировано.

Для кого эти обновления?

Эти обновления для вас, если:

  • Вы являетесь поставщиком удостоверений, использующим API федеративного управления учетными данными.
  • Вы являетесь IdP или RP и заинтересованы в расширении API в соответствии с вашим вариантом использования – например, вы наблюдали или участвовали в обсуждениях в репозитории FedID CG и хотите понять изменения, внесенные в API.
  • Вы являетесь поставщиком браузера и хотите быть в курсе статуса реализации API.

Если вы новичок в этом API или еще не экспериментировали с ним, прочтите введение в API Federated Credential Management API .

Журнал изменений

Чтобы быть в курсе изменений API FedCM, посетите наш блог или информационный бюллетень .

Chrome 132 (ноябрь 2024 г.)

Chrome 131 (октябрь 2024 г.)

Chrome 125 (апрель 2024 г.)

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 доступный IdP в контексте RP, Chrome будет доверять утверждению IdP о статусе учетной записи пользователя, указанному в списке approved_clients , и запускать автоматическую повторную аутентификацию, если это применимо. Сторонние файлы cookie могут быть доступны через: пользовательские настройки, корпоративные политики, эвристику ( Safari , Firefox , Chrome ) и другие API-интерфейсы веб-платформы (например, API доступа к хранилищу ). Обратите внимание, что когда IdP потеряет доступ к сторонним файлам cookie в будущем, если пользователь никогда раньше явно не предоставлял разрешение на использование пользовательского интерфейса FedCM (например, нажимая кнопку « Продолжить как »), он все равно будет рассматриваться как новый пользователь.
      Никаких действий со стороны разработчика не требуется. Обратите внимание, что с этим изменением процесс автоматической повторной аутентификации может активироваться в большей степени, если поставщик удостоверений имеет доступ к сторонним файлам cookie и утверждает, что пользователь уже создал учетную запись на RP в прошлом.

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.

Chrome 117 (сентябрь 2023 г.)

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

Chrome 103 (май 2022 г.)

  • Поддерживает среды рабочего стола.
  • Поддерживает настройки для каждого RP на рабочем столе.
  • Конечная точка метаданных клиента теперь необязательна. В этой конечной точке URL-адрес политики конфиденциальности также не является обязательным.
  • В документ добавлено предостережение по поводу использования CSP connect-src .

Ресурсы