Spec-Zone.ru › Web APIs

API управления федеративными учётными данными (FedCM)

Доступ ограничен

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная технология: Это экспериментальная технология.
Перед использованием в рабочей среде внимательно изучите таблицу совместимости браузеров.

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

Концепции FedCM

Федерация идентификации — это делегирование аутентификации пользователя от веб-сайта, требующего регистрации или входа пользователя, например, сайта электронной коммерции или социальной сети (также известного как доверенная сторона или RP), к доверенному поставщику удостоверений (IdP), например, Google, Facebook/Meta, GitHub и т.д.

Доверенные стороны (RP) могут интегрироваться с IdP, позволяя пользователям входить в систему с помощью учётных записей, которые они зарегистрировали в IdP. Федерация идентификации с помощью небольшого набора специализированных IdP улучшила веб-аутентификацию в отношении безопасности, доверия пользователей и удобства использования по сравнению со случаем, когда каждый сайт управляет своими потребностями ввода с помощью отдельных имен пользователей и паролей.

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

Это влияет на федеративный вход в систему в целом, а также на более специфические случаи использования федерации идентификации:

  • Выход из системы в переднем канале OIDC: Этот поток требует, чтобы IdP встроил несколько RP <iframe>s, которые полагаются на куки RP.
  • Социальные виджеты: Для предоставления социальных виджетов куки IdP стороннего сайта должны быть предоставлены из корневого происхождения RP.
  • Персонализированные кнопки: Отображение персонализированной информации о входе на <button> в происхождении RP реализуется как IdP <iframe> , который требует куки сторонних сайтов.
  • Обновление сессии без навигации по верхнему уровню или всплывающих окон.

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

Для использования API FedCM существуют две части, которые описаны в руководствах ниже:

  1. Интеграция IdP с FedCM — что должен предоставить поставщик удостоверений, чтобы RP смог с ним интегрироваться.
  2. Федеративный вход RP — функциональность FedCM, необходимая RP для входа пользователя с помощью его учётной записи IdP. Запрос на вход в FedCM инициируется с использованием метода navigator.credentials.get().

Примечание: Google Sign In — это пример IdP, который уже поддерживает FedCM. Переход на FedCM содержит инструкции для RP, которые хотят перевести существующие приложения с использованием Google Sign In на федеративный вход.

Интеграция с политикой разрешений и поддержка <iframe>

Можно использовать identity-credentials-get Политику разрешений для управления разрешением на использование FedCM, то есть использования метода get().

Разработчики могут явно предоставить разрешение фрейму <iframe> на использование FedCM с помощью атрибута allow:

<iframe src="3rd-party.example" allow="identity-credentials-get"></iframe>

Доступность FedCM внутри <iframe>s позволяет использовать несколько случаев:

  • Крупные сайты не захотят, чтобы скрипт входа стороннего поставщика получил контроль над фреймом верхнего уровня; вместо этого они захотят добавить этот скрипт и вызвать FedCM изнутри фрейма <iframe>.
  • Некоторые <iframes> могут сами потребовать федеративную аутентификацию.

Интерфейсы

IdentityCredential

Представляет учётные данные пользователя, полученные в результате успешной федеративной аутентификации. Успешный вызов navigator.credentials.get() с опцией identity завершается созданием экземпляра IdentityCredential.

IdentityProvider

Представляет IdP и предоставляет доступ к связанной информации и функциональности.

NavigatorLogin

Определяет функциональность входа для IdP, включая метод Navigator.login.setStatus() для обновления статуса входа IdP.

Расширения других интерфейсов

CredentialsContainer.get(), опция identity.

identity — это объект, содержащий данные о федеративных IdP, которые веб-сайт доверенной стороны (RP) может использовать для входа пользователей. Он вызывает вызов get() для инициирования запроса на вход пользователя в RP с помощью IdP.

Navigator.login

Предоставляет доступ к объекту браузера NavigatorLogin.

HTTP-заголовки

Set-Login

Предоставляет HTTP-механизм для обновления статуса входа через HTTP.

Примеры

  • Пример входа FedCM
    • Исходный код RP
    • Исходный код IdP
  • Вход FedCM в <iframe>
    • Исходный код страницы RP <iframe>
    • Исходный код IdP

Спецификации

Спецификация
API управления федеративными учётными данными
# browser-api-identity-credential-interface

Совместимость браузеров

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
FedCM_API 108 108 Нет 94 Нет 108 Нет 73 Нет 21.0 Нет
disconnect_static 122 122 Нет 108 Нет 122 Нет 81 Нет 26.0 Нет
isAutoSelected 120 120 Нет 106 Нет 120 Нет 80 Нет 25.0 Нет
token 108 108 Нет 94 Нет 108 Нет 73 Нет 21.0 Нет

См. также

  • API управления федеративными учетными данными

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API