Обновления FedCM: API Multi IdP для настольных компьютеров, API режима кнопок и пакет продолжения для Chrome на пробных версиях Android.

Наталья Маркобородова
Natalia Markoborodova

Начиная с Chrome 128, API Multi-IdP запускается в тестовом режиме на настольных компьютерах, а API Button Mode и пакет Continuation — в тестовом режиме на Android. Функция Multi IdP позволяет разработчикам указывать массив из нескольких поддерживаемых поставщиков идентификации в одном вызове get() . API Button Mode добавляет новый пользовательский интерфейс. С помощью API Button Mode поставщики идентификации могут использовать API FedCM, даже если у их пользователей нет активных сессий IdP на момент вызова API. Пакет Continuation состоит из API Continuation и API Parameters, которые обеспечивают работу, аналогичную процессу авторизации OAuth, с диалогом разрешения, предоставляемым поставщиком идентификации. Пакет также включает другие изменения, такие как API Fields, Multiple configURL и Custom Account Labels.

Оригинальное исследование: API с поддержкой нескольких поставщиков идентификации

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

Пользователь входит в систему с использованием разных поставщиков идентификации (IdP) через API для работы с несколькими поставщиками идентификации (multi-IdP API).

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

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

FedCM позволяет автоматически повторно аутентифицироваться по запросу разработчика и при наличии одной возвращаемой учетной записи. В случае использования нескольких поставщиков идентификации (Multi IdP), если возвращаемые учетные записи существуют для нескольких поставщиков идентификации, пользователь не будет автоматически повторно аутентифицирован. Наличие возвращаемой учетной записи является обязательным условием для автоматической повторной аутентификации. Браузер инициирует автоматическую повторную аутентификацию только после того, как явно распознает учетную запись. Это означает, что пользователь должен был ранее использовать FedCM с этой конкретной учетной записью на этом поставщике идентификации.

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

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

Если пользователь авторизован, но сессия истекла, отображается сообщение о несоответствии.

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

Оригинальное исследование: API с поддержкой нескольких поставщиков идентификации

Вы можете протестировать Multi IdP API как пользователь на демонстрационной платформе RP или как разработчик, используя Chrome 128 или более позднюю версию.

Попробуйте сами, как пользователь.

Попробуйте сами, как пользователь. Убедитесь, что:

  • В настройках Chrome отсутствует возможность блокировки запросов на авторизацию от сторонних сервисов на этой странице: chrome://settings/content/federatedIdentityApi .
  • Вы авторизованы в нескольких демонстрационных системах идентификации (IdP). Следуйте инструкциям на демонстрационной странице.

Обратите внимание, что для тестирования Multi-IdP на сайтах, источник которых не зарегистрирован для пробного использования, необходимо включить соответствующий флаг функции по адресу chrome://flags/#fedcm-multi-idp .

Попробуйте это в качестве разработчика.

Если поставщик услуг авторизации имеет встроенный в RP JavaScript SDK (рекомендуется), то вызов navigator.credentials.get() для включения нескольких поставщиков идентификации может быть реализован самим поставщиком, и разработчикам RP не нужно будет менять свой код. В противном случае RP должен будет самостоятельно вызывать API FedCM.

Для тестирования работы нескольких поставщиков идентификации (Multi IdP) на точке доступа (RP) укажите массив поддерживаемых поставщиков следующим образом:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

Атрибут configURL в результирующем объекте хранит URL-адрес файла конфигурации поставщика идентификации (IdP), через который пользователь прошел аутентификацию. RP может определить, как обрабатывать полученный token поскольку это зависит от IdP.

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

Пробные версии Origin позволяют опробовать новые функции и оставить отзыв об их удобстве использования, практичности и эффективности. Для получения дополнительной информации ознакомьтесь с разделом «Начало работы с пробными версиями Origin» .

Вы можете опробовать функцию Multi IdP, зарегистрировавшись для участия в пробных версиях, начиная с Chrome 128.

Чтобы опробовать функцию Multi IdP, поставщик идентификации (RP) может зарегистрировать свой источник и запустить пробную версию для собственного источника. Также поставщик идентификации может зарегистрироваться для пробной версии для стороннего источника и сделать функцию Multi IdP доступной для всех своих RP с помощью JavaScript SDK.

Этапы участия в исследовании происхождения:

  1. 1. Перейдите на страницу регистрации пробной версии API с поддержкой нескольких поставщиков идентификации (Multi IdP API origin). 2. Нажмите кнопку «Зарегистрироваться» и заполните форму для запроса токена.
  2. Для регистрации в пробном режиме с использованием собственного источника, укажите источник RP в поле «Веб-источник». Для пробного режима с использованием стороннего источника , укажите источник JavaScript SDK поставщика идентификации и установите флажок «Сопоставление со сторонним источником».
  3. Нажмите «Отправить» .
  4. Введите выданный токен на странице RP:
    • Для участников пробного периода 1P: - В качестве метатега в <head> : <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE"> - В качестве HTTP-заголовка: Origin-Trial: TOKEN_GOES_HERE
    • Для участников пробного периода, созданных третьими лицами: - Путем программного предоставления токена.

API режима кнопок для Chrome на Android

Начиная с версии Chrome 128, на Android начнётся первоначальное тестирование API режима кнопок, после его тестирования на настольных компьютерах . С помощью API режима кнопок поставщики идентификации могут использовать API FedCM, даже если их пользователи вышли из системы поставщика идентификации на момент вызова API. Процесс входа в систему инициируется жестом пользователя, что лучше отражает намерение пользователя.

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

Аналогично настройке фирменной символики поставщика идентификации (IdP) в конфигурационном файле, значки поставщика услуг идентификации (RP) можно настроить на стороне IdP, и они будут возвращены в ответе client_metadata_endpoint следующим образом:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Иконки логотипов IdP и RP.
Иконки логотипов IdP и RP в пользовательском интерфейсе раскрытия информации на мобильных устройствах.

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

Если пользователь еще не вошел в систему, FedCM предлагает ему войти в IdP, используя предоставленный IdP login_url через пользовательскую вкладку Chrome (CCT).

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

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

Чтобы зарегистрироваться для участия в пробной версии, ознакомьтесь с инструкциями по использованию API режима кнопок на компьютере . Если вы уже зарегистрировались для участия в пробной версии на компьютере, эта функция автоматически станет доступна вам в Chrome на Android, начиная с версии Chrome 128.

Пакет API Continuation для Chrome на Android

Начиная с версии Chrome 128, пакет Continuation API станет доступен для Chrome на Android в рамках первоначального пробного периода, после его первоначального тестирования на настольных компьютерах. Пакет включает в себя множество функций FedCM, в том числе Continuation API , Parameters API , Fields API , Multiple configURLs и Custom Account Labels .

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

Чтобы узнать больше о пакете Continuation API, ознакомьтесь с публикацией в блоге о пакете Continuation API для настольных компьютеров . Чтобы зарегистрироваться для участия в пробной версии , следуйте этим инструкциям . Если вы уже зарегистрировались для участия в пробной версии на настольном компьютере, функции автоматически станут доступны вам в Chrome на Android, начиная с Chrome 128.

Принимайте участие и делитесь отзывами.

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