
Организации и разработчики сталкиваются со значительной проблемой при переходе пользователей от паролей к ключам доступа. Хотя ключи доступа обеспечивают важное повышение уровня безопасности, процесс их ручного создания часто создает неудобства. В условиях электронной коммерции с большим объемом транзакций каждая секунда задержки имеет значение, поскольку любое отклонение может нарушить процесс покупки и привести к отказу от покупки. Кроме того, синхронизация состояния учетных данных между сервером и устройством пользователя крайне важна для предотвращения ошибок входа в систему и разочарования пользователей.
Компания adidas столкнулась именно с этими проблемами. Их главная цель заключалась в устранении препятствий в процессе входа в систему и упрощении взаимодействия на веб-платформах, в приложениях и на различных устройствах. Хотя безопасность остается приоритетом, команда разработчиков сосредоточилась на том, чтобы сделать процессы регистрации и входа в систему максимально простыми, используя пароли.
Для решения этих проблем adidas внедрила функцию Conditional Create для автоматического преобразования паролей пользователей в ключи доступа, а также API Signal для обеспечения согласованности учетных данных. Кроме того, они развернули запросы Related Origin Requests для поддержки междоменного использования там, где это необходимо.
Результаты
Стратегия adidas по автоматизации создания паролей и поддержанию работоспособности учетных данных принесла немедленные, измеримые результаты как в плане внедрения, так и в плане надежности входа в систему:
- Высокий уровень внедрения: С момента запуска процесса авторизации с помощью пароля компания adidas достигла общего показателя создания паролей в 47% . Это включает как автоматическое создание паролей в зависимости от условий, так и инициированное пользователями согласие при запросе во время регистрации или входа в систему. Особенно высокий уровень внедрения был отмечен на мобильных устройствах, где коэффициент конверсии составил 52% (по сравнению с 34% на настольных компьютерах).
- Ускоренное обновление с помощью условного создания: помимо явных запросов, adidas добилась 8% увеличения количества созданных паролей за счет бесперебойного обновления существующих паролей пользователей в фоновом режиме, без необходимости ручного вмешательства пользователя.
- Практически идеальная надежность входа в систему: Passkeys обеспечили более 99% успешных попыток входа после начала авторизации. Это значительное улучшение безопасности по сравнению с историческим показателем успешности паролей adidas в 70%, который часто снижался из-за человеческих ошибок, таких как опечатки или забытые учетные данные.
- Сведение к минимуму проблем и ошибок: благодаря использованию API Signal для автоматической синхронизации учетных данных устройства и сервера, компания adidas успешно снизила количество ошибок
PASSKEY_NOT_FOUNDдо менее чем 0,3% от всех попыток входа в систему. Это эффективно устранило разочарование пользователей из-за потерянных паролей.
47 %
скорость создания паролей
8 %
Повышение эффективности создания паролей с помощью условного создания.
>99 %
Показатель успешности входа с помощью пароля после его активации
<0,3 %
частота ошибок при использовании «сиротского» пароля
Как компания adidas решила эту проблему
Вот как компания adidas решила эти проблемы:
1. Ускорьте внедрение с помощью условного создания.
Чтобы упростить использование паролей, adidas внедрила функцию Conditional Create . Эта функция позволяет веб-сайту автоматически создавать пароль, когда пользователь входит в систему, используя пароль, сохраненный в его менеджере паролей. Для обеспечения максимальной вероятности успеха система вызывает API сразу после успешного входа в систему, чтобы система распознала использование пароля как недавнее.
const cred = await navigator.credentials.create({
publicKey: options,
mediation: 'conditional' // Enables automatic passkey creation
});
Компания adidas интегрировала эту функцию с помощью собственной логики, которая сначала проверяет среду пользователя. В частности, система проверяет, поддерживается ли функция условного создания пароля браузером. Система также учитывает предпочтения пользователя, подавляя запрос, если пользователь уже трижды пропускал создание пароля за последние шесть месяцев.
Если среда совместима, система пытается создать пароль в фоновом режиме сразу после успешной аутентификации пользователя. Такой временной промежуток повышает вероятность выполнения необходимых условий. Важно отметить, что реализация обрабатывает исключения WebAuthn по принципу «открытие при сбое», всегда отдавая приоритет доступу пользователя. Если браузер сообщает об InvalidStateError , указывающей на то, что пароль, вероятно, уже существует, система останавливает фоновое создание и немедленно выполняет вход пользователя. И наоборот, если возникает NotAllowedError , означающая, что условия для автоматического создания не были выполнены, система обнаруживает это состояние и направляет пользователя на экран « Сборщик паролей », чтобы помочь ему пройти процесс ручной настройки. Различая эти технические ограничения и поведение пользователей, adidas гарантирует, что стремление к обновлению паролей улучшает процесс входа в систему, а не прерывает его.

2. Обеспечьте надежность с помощью API сигналов.
Поскольку пользователи управляют своими учетными данными на разных устройствах, могут возникать несоответствия. Например, пароль может быть удален с сервера, но остаться на устройстве пользователя. Чтобы предотвратить сбои при входе в систему, вызванные такими «фантомными» учетными данными, adidas внедрила API Signal . Этот API позволяет серверу передавать информацию о состоянии учетных данных поставщику пароля.
Для обеспечения этой согласованности adidas использует все три доступных метода Signal API. Вместо того чтобы гадать, какие учетные данные нужно удалить, adidas сопоставляет конкретные события жизненного цикла пользователя с соответствующим вызовом API:
- Сбои регистрации: Если на стороне клиента создан пароль, но он не регистрируется на стороне сервера, adidas использует
signalUnknownCredentialдля немедленного удаления "осиротевших" учетных данных. - Неверные входы в систему: Если пользователь пытается войти в систему с отозванным или устаревшим паролем,
signalUnknownCredentialподает сигнал поставщику услуг о необходимости скрыть его. - Управление пользователями: Когда пользователь явно удаляет пароль в настройках своей учетной записи,
signalAllAcceptedCredentialsсинхронизирует список разрешенных адресов. Это гарантирует, что удаленный пароль больше не будет предлагаться. - Обновление учетной записи: Когда пользователь меняет свой адрес электронной почты или имя пользователя,
signalCurrentUserDetailsобновляет метаданные на устройстве в соответствии с данными сервера.
// Detect authentication failure due to lack of the credential
if (result.status === 404) {
if (PublicKeyCredential.signalUnknownCredential) {
await PublicKeyCredential.signalUnknownCredential({
rpId: "adidas.com",
credentialId: "..." // base64url encoded credential ID
});
}
}


3. Унифицировать доступ с помощью запросов на доступ к связанным источникам и ссылок на цифровые активы.
Для дальнейшей поддержки своей многорегиональной архитектуры adidas внедрила запросы на основе связанных источников (Related Origin Requests ). Хотя большинство пользователей остаются на своем местном рынке (например, adidas.nl ), эта конфигурация позволяет пользователям, переключающимся между регионами, повторно использовать пароли на разных разрешенных доменах, используя один идентификатор зависимой стороны ( adidas.com ).
Для этого adidas размещает файл конфигурации webauthn в своем основном домене идентификатора проверяющей стороны (RP ID). Этот файл содержит явный список разрешенных источников, которым разрешено использовать adidas.com для регистрации и аутентификации с помощью паролей. Определив эти взаимосвязи, браузер может проверить, действителен ли пароль, созданный на одном региональном сайте, для использования на другом, обеспечивая бесперебойную работу для пользователей по всему миру.
// https://www.adidas.com/.well-known/webauthn
{
"origins": [
"https://www.adidas.fi",
"https://www.adidas.nl",
// ... abridged (the full file lists 50+ regional domains)
]
}
Важно отметить, что adidas также обеспечил бесперебойную поддержку паролей в своих мобильных приложениях для Android, используя цифровые ссылки на активы (Digital Asset Links). Поскольку приложения используют WebView, размещенный на idp.adidas.com , для аутентификации требовались цифровые ссылки на активы, чтобы установить доверительные отношения между приложением для Android и идентификатором проверяющей стороны ( adidas.com ). Эта проверка позволяет приложению использовать те же пароли, что и в веб-версии, создавая удобный и единый процесс входа в систему на разных платформах.
Для достижения этой цели adidas размещает файл Digital Asset Links ( assetlinks.json ) на своих веб-доменах. Этот файл публично объявляет о криптографической связи с их приложениями для Android. Аналогичным образом, для поддержки своей экосистемы iOS adidas использует ассоциированные домены . Размещая файл apple-app-site-association , они устанавливают защищенное соединение, которое позволяет их приложению для iOS безопасно использовать пароли в веб-представлении .
// https://www.adidas.fi/.well-known/assetlinks.json
[
{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.adidas.app",
"sha256_cert_fingerprints": [
"B2:55:43:78:89:F6:F6:FD:BB:16:5C:43:EE:66:14:18:D4:E8:33:6D:3A:1F:68:86:C3:A8:7C:89:2B:51:45:96",
"..."
]
}
},
// ... abridged
]



Что ждет adidas в будущем?
Благодаря надежной системе автоматических обновлений и синхронизированным учетным данным, работающим на adidas.fi и adidas.nl, adidas развернет эту бесшовную систему на всех остальных мировых рынках к концу апреля 2026 года. Кроме того, adidas изучает еще более удобные способы входа в систему, тестируя пробную версию мгновенного ввода пароля . В планах на будущее — предоставление пользователям возможности создавать учетные записи непосредственно с помощью паролей. Это устраняет текущую необходимость предварительной регистрации альтернативным способом. Команда также изучает возможность «умного запуска» для непосредственного вызова диалогового окна ввода пароля на втором шаге входа в систему. Это исключает необходимость дополнительного щелчка, когда есть высокая вероятность того, что у пользователя есть пароль на его текущем устройстве.
Почему это важно для вас
Переход к беспарольной аутентификации успешен, когда пользовательский опыт остается бесперебойным. Внедрение условного создания позволяет легко перевести пользователей с паролей на бесперебойную работу, не нарушая их привычный интерфейс. Использование запросов к связанным источникам позволяет обмениваться ключами доступа между доменами, обеспечивая пользователям беспрепятственный доступ ко всей экосистеме с помощью одного ключа. Наконец, сочетание этого с API Signal гарантирует надежность и безошибочность вашей единой беспарольной системы.