Перейти на FedCM

Это руководство поможет вам понять изменения в вашем веб-приложении, внесенные API федеративного управления учетными данными (FedCM).

Когда FedCM включен, браузер отображает запросы пользователя и сторонние файлы cookie не используются.

Обзор

FedCM обеспечивает более конфиденциальный вход в систему без необходимости использования сторонних файлов cookie. Браузер управляет настройками пользователя, отображает подсказки для пользователя и связывается с поставщиком удостоверений, например Google, только после получения явного согласия пользователя.

Для большинства веб-сайтов миграция происходит беспрепятственно благодаря обратно совместимым обновлениям библиотеки JavaScript Google Identity Services.

Обновления функции автоматического входа

Бета-версия Federated Credential Management (FedCM) для Google Identity Services была запущена в августе 2023 года. Многие разработчики протестировали API и предоставили ценные отзывы.

Один из ответов, который Google услышал от разработчиков, касается требования FedCM к автоматическому входу в систему с помощью жестов пользователя. Для повышения конфиденциальности Chrome требует, чтобы пользователи повторно подтверждали, что они хотят войти на веб-сайт с учетной записью Google в каждом экземпляре Chrome, даже если пользователь одобрил веб-сайт до развертывания FedCM. Это однократное повторное подтверждение выполняется одним щелчком мыши по подсказке One Tap, чтобы продемонстрировать намерение пользователя войти в систему. Это изменение может привести к первоначальному нарушению коэффициентов конверсии при автоматическом входе на некоторые веб-сайты.

Недавно в M121 Chrome внес изменения в пользовательский интерфейс автоматического входа в систему FedCM. Повторное подтверждение требуется только в том случае, если использование сторонних файлов cookie ограничено. Это означает:

  1. Автоматический вход в FedCM не требует повторного подтверждения для вернувшихся пользователей. Если пользователи повторно подтвердят использование пользовательского интерфейса FedCM, это повторное подтверждение будет учитываться при расчете требований к пользовательским жестам в эпоху после 3PCD.

  2. Автоматический вход FedCM проверит статус повторного подтверждения, если сторонние файлы cookie вручную ограничены пользователями сегодня или по умолчанию в будущем Chrome.

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

Что касается автоматического входа в систему, GIS JavaScript не запускает FedCM в более старой версии Chrome (до M121), даже если ваш веб-сайт решит включить FedCM.

Различия в пути пользователя

Опыт One Tap с использованием FedCM и без FedCM аналогичен лишь небольшим различиям.

Новый пользователь за один сеанс

Используя FedCM, One Tap отображает имя домена вместо имени приложения.

Использование FedCM Без FedCM
Новый пользователь за один сеанс с использованием FedCMНовый пользователь за один сеанс без FedCM

Возвращающийся пользователь за один сеанс (с отключенным автоматическим входом)

Используя FedCM, One Tap отображает имя домена вместо имени приложения.

Использование FedCM Без FedCM
Путешествие возвращающегося пользователя за один сеанс с использованием FedCM (с отключенным автоматическим входом)Путешествие возвращающегося пользователя за один сеанс без FedCM (с отключенным автоматическим входом)

Возвращающийся пользователь за один сеанс (с включенным автоматическим входом)

Используя FedCM, пользователи могут нажать X , чтобы отменить автоматический вход в систему в течение 5 секунд, вместо того, чтобы нажимать кнопку «Отмена» .

Использование FedCM Без FedCM
Путешествие возвращающегося пользователя за один сеанс с использованием FedCM (с включенным автоматическим входом в систему)Путешествие возвращающегося пользователя за один сеанс без FedCM (с включенным автоматическим входом в систему)

Многосессионный

Используя FedCM, One Tap отображает имя домена вместо имени приложения.

Использование FedCM Без FedCM
Пользователь с несколькими сеансами, использующий FedCMМногосессионный пользователь без FedCM

Прежде чем начать

Убедитесь, что настройки и версия вашего браузера поддерживают API FedCM. Рекомендуется обновить его до последней версии.

  • API FedCM доступен в Chrome 117 или более поздней версии.

  • В Chrome включен параметр Сторонний вход .

  • Если ваша версия браузера Chrome 119 или более ранняя, откройте chrome://flags и включите экспериментальную функцию FedCmWithoutThirdPartyCookies . Этот шаг не требуется в браузере Chrome версии 120 или более поздней.

Перенесите свое веб-приложение

Выполните следующие действия, чтобы включить FedCM, оценить потенциальное влияние миграции и, при необходимости, внести изменения в существующее веб-приложение:

1. Добавьте логический флаг, чтобы включить FedCM при инициализации, используя:

2. Удалите использование методов isDisplayMoment() , isDisplayed() , isNotDisplayed() и getNotDisplayedReason() в вашем коде.

В целях повышения конфиденциальности пользователей обратный вызов google.accounts.id.prompt больше не возвращает уведомление о моменте отображения в объекте PromptMomentNotication . Удалите весь код, который зависит от методов, связанных с моментом отображения. Это методы isDisplayMoment() , isDisplayed() , isNotDisplayed() и getNotDisplayedReason() .

3. Удалите использование метода getSkippedReason() в вашем коде.

Хотя момент пропуска isSkippedMoment() по-прежнему будет вызываться из обратного вызова google.accounts.id.prompt в объекте PromptMomentNotication , подробная причина не будет указана. Удалите из своего кода весь код, который зависит от метода getSkippedReason() .

Обратите внимание, что уведомление о моменте отклонения isDismissedMoment() и связанный с ним метод подробной причины getDismissedReason() не изменяются, когда FedCM включен.

4. Удалите атрибуты стиля position из data-prompt_parent_id и intermediate_iframes .

Браузер контролирует размер и положение пользовательских подсказок, пользовательские позиции для One Tap на рабочем столе не поддерживаются.

5. При необходимости обновите макет страницы.

Браузер управляет размером и положением подсказок пользователю. В зависимости от макета отдельных страниц некоторый контент может накладываться, поскольку пользовательские позиции для One Tap на рабочем столе никак не поддерживаются, например атрибут style , data-prompt_parent_id , intermediate_iframes , настраиваемый iframe и другие творческие способы.

Измените макет страницы, чтобы улучшить взаимодействие с пользователем, когда важная информация скрыта. Не стройте свой UX вокруг подсказки One Tap, даже если вы предполагаете, что она находится в положении по умолчанию. Поскольку API FedCM осуществляется через браузер, разные поставщики браузеров могут размещать приглашение немного по-разному.

6. Добавьте allow="identity-credentials-get" в родительский фрейм, если ваше веб-приложение вызывает API One Tap из iframe с разными источниками.

iframe считается перекрестным, если его происхождение не совпадает с родительским. Например:

  • Разные домены: https://example1.com и https://example2.com
  • Различные домены верхнего уровня: https://example.uk и https://example.jp
  • Субдомены: https://example.com и https://login.example.com

    Чтобы улучшить конфиденциальность пользователей, когда One Tap API вызывается из iframe с разными источниками, вы должны добавить allow="identity-credentials-get" в каждый тег iframe родительского фрейма:

    <iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>
    

    Если ваше приложение использует iframe, который содержит другой iframe, вы должны убедиться, что атрибут добавлен в каждый iframe, включая все вложенные iframe.

    Например, рассмотрим следующий сценарий:

  • Верхний документ ( https://www.example.uk ) содержит iframe с именем «Iframe A», в который встроена страница ( https://logins.example.com ).

  • Эта внедренная страница ( https://logins.example.com ) также содержит iframe с именем «Iframe B», который дополнительно встраивает страницу ( https://onetap.example2.com ), на которой размещен One Tap.

    Чтобы обеспечить правильное отображение One Tap, атрибут необходимо добавить как в теги Iframe A, так и в теги Iframe B.

    Приготовьтесь к тому, что запрос One Tap не отображается. Другие сайты другого происхождения могут встраивать ваши страницы, на которых размещен One Tap, в свои iframe. Вы можете получать увеличенное количество обращений в службу поддержки, связанных с тем, что One Tap не отображается, от конечных пользователей или других владельцев сайтов. Хотя обновления могут вноситься только владельцами сайтов на их страницах, вы можете сделать следующее, чтобы смягчить последствия:

  • Обновите документацию для разработчиков, указав, как правильно настроить iframe для вызова вашего сайта. Вы можете дать ссылку на эту страницу в своей документации.

  • Обновите страницу часто задаваемых вопросов для разработчиков, если это применимо.

  • Сообщите своей службе поддержки о предстоящем изменении и заранее подготовьтесь к ответу на запрос.

  • Активно связывайтесь с затронутыми партнерами, клиентами или владельцами сайтов, чтобы обеспечить плавный переход на FedCM.

7. Добавьте эти директивы в свою Политику безопасности контента (CSP).

Этот шаг не является обязательным, поскольку не все веб-сайты определяют CSP.

  • Если CSP не используется на вашем веб-сайте, никаких изменений не требуется.

  • Если ваш CSP работает для текущего One Tap и вы не используете connect-src , frame-src , script-src , style-src или default-src никаких изменений не требуется.

  • В противном случае следуйте этому руководству , чтобы настроить CSP. Без правильной настройки CSP FedCM One Tap не будет отображаться на сайте.

8. Удалите поддержку ускоренных мобильных страниц (AMP) для входа в систему.

Поддержка входа пользователей для AMP — это дополнительная функция ГИС, которую может реализовать ваше веб-приложение. Если это так,

Удалите все ссылки на:

  • пользовательский элемент amp-onetap-google и

  • <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
    

    Рассмотрите возможность перенаправления запросов на вход из AMP в процесс входа в HTML на вашем веб-сайте. Обратите внимание, что соответствующий Intermediate Iframe Support API не затрагивается.

Протестируйте и подтвердите свою миграцию

После внесения необходимых изменений на основе предыдущих шагов вы можете убедиться, что миграция прошла успешно.

  1. Убедитесь, что ваш браузер поддерживает FedCM и у вас есть существующий сеанс учетной записи Google.

  2. Перейдите на страницы One Tap в своем приложении.

  3. Убедитесь, что подсказка One Tap отображается и безопасно перекрывает основной контент.

  4. Подтвердите, что верные учетные данные возвращаются к вашей конечной точке или методу обратного вызова при входе в приложение с помощью One Tap.

  5. Если автоматический вход включен, убедитесь, что отмена работает, и исправьте правильные учетные данные, возвращаемые в вашу конечную точку или метод обратного вызова.

Период восстановления One Tap

Нажатие кнопки « в одно касание» в правом верхнем углу закроет подсказку и введет период восстановления, в результате которого подсказка в одно касание временно не будет отображаться. Если вы хотите, чтобы в Chrome снова отображалось приглашение One Tap до окончания периода восстановления, вы можете сбросить статус восстановления, щелкнув значок замка в адресной строке и нажав кнопку «Сбросить разрешение» .

Автоматический вход в тихий период

При тестировании автоматического входа в One Tap с помощью FedCM между каждой попыткой автоматического входа устанавливается 10-минутный период молчания. Период тишины не может быть сброшен. Вам придется подождать 10 минут или использовать другую учетную запись Google для тестирования, чтобы снова запустить автоматический вход.

Полезные ресурсы

Инструмент анализа изолированной программной среды конфиденциальности (PSAT) — это расширение Chrome DevTools, помогающее внедрить альтернативные API, такие как FedCM. Он сканирует ваш сайт на наличие затронутых функций и предоставляет список рекомендуемых изменений.