Обновления FedCM: пробная версия Origin для автоматической повторной аутентификации

Представляем несколько обновлений FedCM, включая новую пробную версию источника для автоматической повторной аутентификации.

API федеративного управления учетными данными (FedCM) — это веб-API для федерации удостоверений, сохраняющей конфиденциальность. При федерации удостоверений RP (проверяющая сторона) полагается на IdP (поставщика удостоверений), чтобы предоставить пользователю учетную запись, не требуя нового имени пользователя и пароля.

FedCM — это специально созданный API, который позволяет браузеру понимать контекст, в котором RP и IdP обмениваются информацией, информировать пользователя о передаваемой информации и уровнях привилегий и предотвращать непреднамеренное злоупотребление.

Обновления

В реализации Chrome FedCM есть несколько обновлений:

Чтобы узнать обо всех последних обновлениях API, ознакомьтесь с обновлениями API Federated Credential Management API .

Последняя версия FedCM включает новую функцию автоматической повторной аутентификации, которая позволяет автоматически повторно аутентифицировать пользователей, когда они возвращаются после первоначальной аутентификации с помощью FedCM. Автоматическая повторная аутентификация доступна в качестве пробной версии, начиная с Chrome 112.

Автоматическая повторная аутентификация

В настоящее время после того, как пользователь создал федеративную учетную запись на RP с IdP через FedCM , при следующем посещении веб-сайта ему необходимо выполнить те же шаги в пользовательском интерфейсе. То есть им необходимо явно подтвердить и повторно аутентифицироваться, чтобы продолжить процесс входа. Поскольку одной из основных целей FedCM является предотвращение скрытого отслеживания, этот пользовательский интерфейс (UX) имеет смысл до того, как пользователь создал федеративную учетную запись, но он становится ненужным и громоздким после того, как пользователь прошел через него один раз. После того, как пользователь предоставляет разрешение на разрешение связи между RP и IdP, нет никаких преимуществ конфиденциальности или безопасности для принудительного подтверждения другого явного пользователя для чего-то, что он уже ранее подтвердил. Вот почему Chrome представляет более оптимизированный пользовательский интерфейс, который RP могут выбрать для своих вернувшихся пользователей.

Автоматическая повторная аутентификация FedCM («автоматическая повторная аутентификация» вкратце) автоматически повторно аутентифицирует пользователей (при согласии RP), когда они возвращаются после первоначальной аутентификации с использованием FedCM. «Первоначальная аутентификация» здесь означает, что пользователь создает учетную запись или входит на веб-сайт RP, впервые нажав кнопку «Продолжить как...» в диалоговом окне входа FedCM в одном и том же экземпляре браузера.

Диалоговое окно, на которое пользователь нажимает, чтобы создать учетную запись или пройти аутентификацию.
Диалоговое окно, на которое пользователь нажимает, чтобы создать учетную запись или пройти аутентификацию.

RP может запросить автоматическую повторную аутентификацию, вызвав navigator.credentials.get() с autoReauthn: true .

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

При этом вызове автоматическая повторная аутентификация происходит при следующих условиях:

  • FedCM доступен для использования. Например, пользователь не отключил FedCM ни глобально, ни для RP.
  • Пользователь использовал только одну учетную запись FedCM для входа на сайт в этом браузере.
  • Пользователь входит в IdP с этой учетной записью.
  • Автоматическая повторная аутентификация не произошла в течение последних 10 минут.

При выполнении вышеуказанных условий попытка автоматической повторной аутентификации пользователя начинается сразу после вызова FedCM navigator.credentials.get() .

Пользователь автоматически выполняет повторную аутентификацию на RP с помощью FedCM.

Попробуйте это

Вы можете попробовать выполнить автоматическую повторную аутентификацию FedCM локально, включив флаг Chrome chrome://flags#fedcm-auto-re-authn в Chrome 112 или более поздней версии.

В целях тестирования вы можете сбросить 10-минутный период молчания, удалив данные браузера.

  1. Перейдите по адресу chrome://history .
  2. В поле истории поиска введите происхождение RP.
  3. Нажмите значок с тремя точками ⋮ и выберите «Удалить из истории» .
  4. Перезапустите Хром.

Примите участие в испытании происхождения

Вы также можете включить эту функцию на своем веб-сайте, присоединившись к сторонней пробной версии , доступной для версий Chrome 112–114.

Пробные версии Origin позволяют вам опробовать новые функции и оставить отзыв об их удобстве использования, практичности и эффективности сообществу веб-стандартистов. Дополнительную информацию см. в Руководстве по пробным версиям Origin для веб-разработчиков . Чтобы подписаться на ту или иную пробную версию Origin, посетите страницу регистрации .

Чтобы зарегистрироваться для участия в пробной версии стороннего источника и активировать эту функцию на сторонних платформах:

  1. Перейдите на страницу регистрации пробной версии Origin .
  2. Нажмите кнопку «Зарегистрироваться» и заполните форму для запроса токена.
  3. Введите источник обслуживания как Web Origin .
  4. Установите флажок Стороннее сопоставление , чтобы внедрить токен с помощью JavaScript в другие источники.
  5. Нажмите «Отправить» .
  6. Встроить выданный токен на стороннее устройство.

Чтобы внедрить токен в стороннюю систему, добавьте следующий код в свою библиотеку JavaScript или SDK, обслуживаемый источником зарегистрированного веб-сайта.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Замените TOKEN_GOES_HERE своим собственным токеном.

Привлекайте и делитесь отзывами

Если у вас есть отзывы или вы столкнулись с какими-либо проблемами во время тестирования, вы можете поделиться ими на crbug.com в разделе Blink>Identity>FedCM .

Фото Алекса Перца на Unsplash