Лидеры отрасли в различных секторах понимают, насколько важно защищать конфиденциальность, обеспечивая при этом комфортный опыт для всех пользователей. Компания Seznam, стремящаяся обеспечить непревзойденный пользовательский опыт и конфиденциальность, успешно интегрировала систему федеративного управления учётными данными (FedCM).
Целевые профили: компании, получающие выгоду от FedCM
Организации из самых разных сфер интегрировали FedCM со своими решениями. Учитывая, что FedCM ориентирована на федеративное управление идентификацией, поставщики идентификационных данных (IdP) являются его основными бенефициарами, используя его для улучшения процесса входа в систему. Поставщики услуг электронной коммерции и платежные системы, многие из которых также выступают в качестве поставщиков идентификационных данных, также обнаружили возможности для улучшения пользовательского опыта благодаря внедрению FedCM.
Сезнам
Seznam — европейская технологическая компания и поставщик услуг идентификации, охватывающий 90% населения Чехии. Seznam выполняет функции социального, информационного и контент-центра. Seznam внедрила FedCM, чтобы позволить клиентам интернет-магазинов, работающих на платформах партнёров, входить в систему, используя свою учётную запись Seznam.

Благодаря FedCM компания Seznam добилась заметного увеличения показателей авторизации пользователей в сетях своих партнеров, улучшения пользовательского опыта и обеспечения единообразного потока идентификации независимо от доступности сторонних файлов cookie.
Мотивация
Решение компании Seznam внедрить FedCM было обусловлено рядом признанных ею преимуществ:
- FedCM разработан с учётом потребностей конечного пользователя, предоставляя ему контроль над информацией, предоставляемой поставщику удостоверений. Это соответствует видению Seznam о безопасной и конфиденциальной среде для своих пользователей.
- FedCM — это встроенная функция браузера, совместимая с существующим интерфейсом входа Seznam, который использует стандарт OAuth 2.0.
- FedCM разработан с учётом принципа конфиденциальности при федерации идентификационных данных. Например, информация о посещении пользователем проверяющей стороны (RP) сообщается IdP только в том случае, если пользователь решил войти в систему. Это соответствует взглядам Seznam на устойчивое развитие бизнеса.
Подробности реализации
Компания Seznam внедрила FedCM как надстройку над своим существующим решением OAuth. В этой архитектуре поток FedCM используется для безопасной передачи кода авторизации OAuth от поставщика удостоверений к поставщикам авторизации.

Усилия по внедрению
Компания Seznam подчеркнула, что внедрение FedCM было простым и соответствовало их текущему подходу. Исследование и внедрение API заняли месяц и потребовали усилий двух разработчиков. Запуск FedCM в эксплуатацию занял менее двух месяцев. Процесс был итеративным, и значительное время было потрачено на тщательное изучение API.
Проблемы
Будучи одним из первых пользователей, компания Seznam выявила несколько проблем и предоставила ценные отзывы, которые помогли усовершенствовать API.
Поддержка нескольких поставщиков удостоверений
Компания Seznam была заинтересована в поддержке FedCM нескольких поставщиков удостоверений. С помощью этой функции они хотели позволить пользователям выбирать между аккаунтами Seznam и Google на RP-платформах своих партнёров. Однако, когда Seznam впервые приступила к реализации FedCM, эта функция находилась на ранней стадии разработки, и разработчикам требовалось зарегистрироваться для участия в пробной версии Origin и использовать токен для её активации. По этой причине Seznam решила дождаться выхода функции в стабильной версии Chrome.
Эта функция доступна начиная с Chrome 136, и разработчики могут настроить поддержку нескольких поставщиков удостоверений. Например, для поддержки поставщиков удостоверений Seznam и Google поставщик удостоверений может включить обоих поставщиков в один вызов get()
, а поставщик удостоверений может сделать это независимо:
// Executed on the RP's side:
const credential = await navigator.credentials.get({
identity: {
providers: [
{
// IdP1: Seznam's config file URL
configURL: 'https://szn.cz/.well-known/web-identity',
clientId: '123',
},
{
// Also allow Google Sign-in
configURL: 'https://accounts.google.com/gsi/fedcm.json',
clientId: '456',
},
],
},
});
Seznam заявила, что эта функция станет частью их решения. Кроме того, команда FedCM реализует поддержку нескольких SDK , включая поддержку нескольких вызовов get()
.
Частный DNS
На этапе тестирования компания Seznam столкнулась с проблемой, связанной с конфигурацией сети. Их тестовый сервер IdP находился в частной сети и был доступен только через частный DNS. Такая конфигурация широко распространена во внутренних средах тестирования и разработки перед публикацией сервисов.
Однако такая настройка приводит к проблеме: поскольку well-known
файл должен обслуживаться из eTLD+1 , а частный домен разработки не зарегистрирован в списке публичных суффиксов , браузер не будет отправлять запросы на извлечение well-known
файла, размещенного в домене разработки:
-
login.idp.example
: пример производственного домена. -
idp.example/.well-known/web-identity
: пример известного файла в производстве. -
login.dev.idp.example
: пример домена разработки. -
login.dev.idp.example/.well-known/web-identity
: пример известного файла в среде разработки.
Если реализация FedCM размещена на частном домене, запросы браузера к well-known
файлу приводят к следующей ошибке:
The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED
Эту ошибку можно устранить, включив флаг Chrome #fedcm-without-well-known-enforcement
. При включении этого флага браузер пропускает загрузку well-known
файла для тестирования. Узнайте, как включить флаги тестирования в Chrome .
Раскрытие пользовательской информации
Seznam также сообщила, что они хотели включить дополнительную информацию в первоначальный дизайн пользовательского интерфейса FedCM. В стандартном диалоговом окне FedCM пользователю отображается фиксированное сообщение о том, что определённые данные — обычно изображение профиля, имя и адрес электронной почты пользователя — передаются RP.
Команда FedCM учла отзывы и расширила API, чтобы обеспечить возможность настройки информации, предоставляемой пользователю. Например, с помощью функции «Продолжить» поставщик удостоверений может перенаправить пользователя на специальную страницу для запроса дополнительной информации или разрешений. Функции настраиваемых параметров и полей , поддерживаемые начиная с Chrome 132, обеспечивают дополнительную настройку.

Проверка происхождения проверяющей стороны
Сервер поставщика удостоверений (IdP) должен проверить HTTP-заголовок Origin
во входящем запросе FedCM, чтобы убедиться, что запрос соответствует источнику, предварительно зарегистрированному RP в IdP. Это гарантирует, что запрос на подтверждение идентификатора FedCM исходит от авторизованного RP, а не от злоумышленника, использующего client_id
.
У Seznam есть особая ситуация: когда партнёрские RP регистрируются в Seznam, они не запрашивают данные о происхождении RP. Это означает, что происхождение RP невозможно проверить.
Интеграция FedCM от Seznam построена на основе существующего решения OAuth. Они пошли по альтернативному пути, проверяя как client_id
, так и client_secret
RP, чтобы гарантировать безопасность решения без необходимости проверки источника.
Домен поставщика удостоверений, доступный пользователю
Инфраструктура аутентификации пользователей Seznam в основном работает в домене szn.cz
, где размещены необходимые конечные точки IdP для FedCM. Однако основной корпоративный идентификатор компании и домен, благодаря которому пользователи широко узнают и доверяют её сервисам, — это seznam.cz
.
В диалоговом окне FedCM отображается фактический исходный домен конечных точек IdP — в данном случае szn.cz
Пользователи, знакомые с брендом seznam.cz
, могут испытывать затруднения, когда им предлагается войти в систему с менее знакомым доменом szn.cz
Начиная с версии Chrome 141, FedCM не допускает отображение домена, отличного от того, на котором размещена реализация IdP. Это ограничение является намеренным решением, призванным обеспечить прозрачность для пользователя. Тем не менее, команда FedCM осознаёт сложности, которые может создать это ограничение, и обсуждает возможные корректировки.
Влияние
Благодаря API FedCM компания Seznam теперь может предоставлять пользователям своих партнёров доступ к процедурам авторизации в одно касание. Они подчеркнули преимущества пользовательского интерфейса FedCM по сравнению с другими методами аутентификации.
Хотя компания Seznam отметила значительное увеличение вовлечённости пользователей на сайтах, перешедших на систему авторизации FedCM, компания не проводила комплексного анализа, чтобы отделить точное прямое влияние от других факторов. До интеграции с FedCM реализация допускала гостевые покупки, используя хешированные адреса электронной почты с согласия пользователя для идентификации. Задача такого анализа заключалась в оценке того, можно ли отнести конверсию пользователя к FedCM или пользователь совершил бы покупку, используя гостевую форму. Гипотеза Seznam предполагает, что более простое использование FedCM могло способствовать такому повышению конверсии.
Заключение
Seznam успешно внедрила FedCM, предоставив альтернативный процесс авторизации в дополнение к своему существующему решению OAuth. Хотя разработчики Seznam столкнулись с некоторыми сложностями, связанными с поддержкой поставщиков удостоверений, настройкой приватных DNS, настройкой текста раскрытия информации, проверкой происхождения проверяющей стороны и отображением домена пользователю, API значительно усовершенствовался с момента их внедрения. Команда FedCM учла отзывы Seznam и других первых пользователей, что позволило разработать более эффективные инструменты для решения этих задач. В качестве следующего шага Seznam планирует реализовать поддержку FedCM для нескольких поставщиков удостоверений.