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

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

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

Пробная версия Origin: API с несколькими поставщиками удостоверений

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

Пользователь входит в систему с разными IdP, используя API нескольких IdP.

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

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

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

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

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

Когда статус входа пользователя соответствует входу в систему, но срок действия сеанса истек, отображается несоответствующий пользовательский интерфейс.

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

Пробная версия Origin: API с несколькими поставщиками удостоверений

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

Попробуйте как пользователь

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

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

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

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

Если поставщик входа в систему имеет Javascript SDK, встроенный в RP (рекомендуется), вызов navigator.credentials.get() для включения нескольких IdP может быть реализован поставщиком, и разработчикам 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, зарегистрировавшись для участия в пробных версиях Origin, начиная с Chrome 128.

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

Шаги для участия в пробной версии Origin:

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

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

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

В Chrome 128 представлена ​​новая функция, которая позволяет поставщикам удостоверений включать официальный значок логотипа 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, используя URL login_url предоставленный IdP, через пользовательскую вкладку Chrome (CCT).

Пользователь входит в систему с помощью кнопки на мобильном устройстве.

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

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

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

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

Начиная с Chrome версии 128, пакет Continuation API будет доступен для Chrome на Android в рамках пробной версии Origin после первоначальной пробной версии на настольном компьютере. Пакет состоит из нескольких функций FedCM, включая API продолжения , API параметров , API полей , несколько URL-адресов configURL и пользовательские метки учетной записи .

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

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

Привлекайте и делитесь отзывами

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