Aktualizacje FedCM: interfejs Multi IdP API na komputerach, interfejs Button Mode API oraz pakiet kontynuacji dla Chrome w testach origin na urządzeniach z Androidem

Natalia Markoborodova
Natalia Markoborodova

Od Chrome 128 rozpoczynamy wersję próbną origin interfejsu Multi-IdP API na komputerach, a wersję próbną origin interfejsu Button Mode APIpakietu Continuation na Androidzie. Dzięki funkcji Multi IdP deweloperzy mogą określić tablicę wielu obsługiwanych dostawców tożsamości w jednym wywołaniu get(). Interfejs Button Mode API dodaje nowy interfejs. Dzięki interfejsowi Button Mode API dostawcy tożsamości mogą korzystać z interfejsu FedCM API nawet wtedy, gdy użytkownicy nie mają aktywnych sesji dostawcy tożsamości w momencie wywołania interfejsu API. Pakiet Continuation składa się z interfejsu Continuation API i interfejsu Parameters API, które umożliwiają korzystanie z procesu autoryzacji OAuth, w tym z okna uprawnień dostarczanego przez dostawcę tożsamości. Pakiet zawiera też inne zmiany, takie jak interfejs Fields API, wiele configURL i niestandardowe etykiety kont.

Testowanie origin: interfejs Multi IdP API

Umożliwia ona użytkownikom wybór konta z zestawu obsługiwanych dostawców tożsamości, a usługi RP mogą dzięki temu zwiększyć liczbę logowań i rejestracji. Jeśli użytkownik jest zalogowany u kilku dostawców tożsamości, zostanie poproszony o zalogowanie się w usłudze RP przy użyciu jednego z nich.

Użytkownik loguje się za pomocą różnych dostawców tożsamości przy użyciu interfejsu Multi-IdP API.

Dostawcy tożsamości są traktowani priorytetowo na podstawie istniejących kont użytkownika i powiązanych z nimi sygnatur czasowych.

  • Jeśli użytkownik zalogował się wcześniej w RP przy użyciu konkretnego dostawcy tożsamości (czyli ma „powracające konto”), ci dostawcy tożsamości będą wyświetlani jako pierwsi.
  • W przypadku kont powracających dostawcy tożsamości są dodatkowo sortowani według sygnatury czasowej ostatniego użycia, przy czym ostatnio używany dostawca tożsamości pojawia się na górze listy. W niektórych przypadkach Chrome może nie mieć danych o sygnaturze czasowej dla powracającego konta. Prawdopodobnie wynika to z faktu, że użytkownik zalogował się, zanim w FedCM wdrożono rejestrowanie sygnatur czasowych. Konta te są wymienione poniżej kont z sygnaturami czasowymi.
  • Jeśli użytkownik nie ma konta powracającego u żadnego dostawcy tożsamości, kolejność podana przez RP jest zachowywana.

FedCM umożliwia automatyczne ponowne uwierzytelnianie, jeśli deweloper o to poprosi i jeśli istnieje tylko jedno konto powracające. W przypadku wielu dostawców tożsamości, jeśli konta powracających użytkowników istnieją u kilku dostawców tożsamości, użytkownik nie zostanie automatycznie ponownie uwierzytelniony. Powracające konto jest ważnym wymogiem automatycznego ponownego uwierzytelniania. Przeglądarka zainicjuje automatyczne ponowne uwierzytelnianie tylko wtedy, gdy wyraźnie rozpozna konto. Oznacza to, że użytkownik musiał wcześniej używać FedCM z tym konkretnym kontem w tej usłudze RP.

Jeśli stan logowania użytkownika jest ustawiony na wylogowany w przypadku dostawcy tożsamości, wywołanie FedCM nie pobiera kont tego dostawcy tożsamości. Podobnie, jeśli użytkownik jest wylogowany u wszystkich dostępnych dostawców tożsamości, w trybie widżetu nie jest automatycznie wyświetlany monit o zalogowanie się za pomocą FedCM.

Jeśli stan logowania zapisany w przeglądarce dla dostawcy tożsamości to „zalogowano”, ale żądanie pobierania nie zwróciło żadnych kont dla tego dostawcy (np. jeśli sesja użytkownika wygasła, ale stan logowania nie został jeszcze zaktualizowany przez przeglądarkę), wyświetla się interfejs użytkownika z informacją o niezgodności, który sugeruje użytkownikowi zalogowanie się za pomocą niezgodnego dostawcy tożsamości.

Gdy stan logowania użytkownika to zalogowany, ale sesja wygasła, wyświetla się interfejs niezgodności.

Więcej informacji o stanie logowania znajdziesz w dokumentacji. Więcej szczegółów dotyczących implementacji znajdziesz w przewodniku dla programistów.

Testowanie origin: interfejs Multi IdP API

Możesz wypróbować interfejs Multi IdP API jako użytkownik witryny demonstracyjnej lub jako deweloper, korzystając z Chrome w wersji 128 lub nowszej.

Wypróbuj jako użytkownik

Wypróbuj to jako użytkownik. Upewnij się, że:

  • Chrome nie jest skonfigurowany do blokowania na stronie potwierdzeń logowania się w usługach innych firm:chrome://settings/content/federatedIdentityApi.
  • Jesteś zalogowany(-a) w kilku demonstracyjnych dostawcach tożsamości. Postępuj zgodnie z instrukcjami na stronie wersji demonstracyjnej.

Pamiętaj, że aby wypróbować Multi-IdP w witrynach, których pochodzenie nie jest zarejestrowane w ramach testu pochodzenia, musisz włączyć flagę funkcji w sekcji chrome://flags/#fedcm-multi-idp.

Wypróbuj jako deweloper

Jeśli dostawca logowania ma w RP osadzony pakiet SDK JavaScript (zalecane), wywołanie navigator.credentials.get() umożliwiające włączenie wielu dostawców tożsamości może zostać zaimplementowane przez dostawcę, a deweloperzy RP nie muszą zmieniać kodu. W przeciwnym razie strona RP musi samodzielnie wywołać interfejs FedCM API.

Aby przetestować wielu dostawców tożsamości na stronie RP, określ tablicę obsługiwanych dostawców w ten sposób:

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);
}

Atrybut configURL w wynikowym obiekcie przechowuje adres URL pliku konfiguracyjnego dostawcy tożsamości, za pomocą którego użytkownik się uwierzytelnił. Usługa RP może określić, jak postępować z wynikowym elementem token, ponieważ różni się on w zależności od dostawcy tożsamości.

Udział w eksperymencie

Wersje próbne origin umożliwiają wypróbowanie nowych funkcji i przekazanie opinii na temat ich użyteczności, praktyczności i skuteczności. Więcej informacji znajdziesz w artykule Pierwsze kroki z testami pochodzenia.

Możesz wypróbować funkcję wielu dostawców tożsamości, rejestrując się w programach testów origin, które rozpoczną się w Chrome 128.

Aby wypróbować Multi IdP, RP może zarejestrować swoją domenę i przeprowadzić test własnej domeny. Dostawca tożsamości może też zarejestrować się w okresie próbnym dotyczącym pochodzenia zewnętrznego i udostępnić funkcję wielu dostawców tożsamości wszystkim podmiotom zależnym, które korzystają z pakietów SDK JavaScript.

Aby wziąć udział w eksperymencie Origin Trial:

  1. Otwórz stronę rejestracji w programie testów Multi IdP API. 2. Kliknij przycisk Zarejestruj się i wypełnij formularz, aby poprosić o token.
  2. Aby zarejestrować się w eksperymencie z pierwszej ręki, wpisz punkt początkowy dostawcy usług w polu „Web Origin” (Punkt początkowy w internecie). W przypadku pochodzenia zewnętrznego wersji próbnej wpisz pochodzenie pakietu SDK JavaScript dostawcy tożsamości i zaznacz pole „Dopasowywanie zewnętrzne”.
  3. Kliknij Prześlij.
  4. Podaj wydany token na stronie RP:
    • W przypadku uczestników testów pochodzenia 1P:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE"><head>- jako metatag w sekcji <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">Origin-Trial: TOKEN_GOES_HERE- jako nagłówek HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Uczestnicy testów pochodzenia zewnętrznego: – przez programowe udostępnianie tokena.

Interfejs Button Mode API w Chrome na Androida

W wersji 128 Chrome rozpocznie się testowanie origin interfejsu Button Mode API na Chrome na Androida. Wcześniej testowaliśmy go na komputerach. Dzięki interfejsowi Button Mode API dostawcy tożsamości mogą korzystać z interfejsu FedCM API, nawet jeśli użytkownicy są wylogowani z dostawcy tożsamości w momencie wywołania interfejsu API. Proces logowania jest inicjowany przez gest użytkownika, co lepiej odzwierciedla jego intencje.

W Chrome 128 wprowadziliśmy nową funkcję, która umożliwia dostawcom tożsamości umieszczanie oficjalnego logo RP bezpośrednio w odpowiedzi punktu końcowego metadanych klienta. Ulepsza to interfejs na urządzeniach mobilnych w trybie przycisku.

Podobnie jak w przypadku brandingu dostawcy tożsamości w pliku konfiguracyjnym, ikony dostawcy usług mogą być konfigurowane po stronie dostawcy tożsamości i zwracane w odpowiedzi client_metadata_endpoint w ten sposób:

  "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
   }]
Ikony logo dostawcy tożsamości i podmiotu polegającego na tożsamości.
Ikony logo dostawcy tożsamości i podmiotu polegającego na tożsamości w interfejsie ujawniania informacji na urządzeniach mobilnych.

Więcej informacji o obsłudze ikon znajdziesz w dokumentacji dla deweloperów.

Jeśli użytkownik nie jest jeszcze zalogowany, FedCM wyświetli prośbę o zalogowanie się u dostawcy tożsamości za pomocą login_url udostępnionego przez dostawcę tożsamości w niestandardowej karcie Chrome.

Jeśli użytkownik ponownie uwierzytelnia się za pomocą istniejącego konta, interfejs ujawniania informacji nie będzie wyświetlany.

Użytkownik loguje się przy użyciu konta, które było już używane. Interfejs ujawniania informacji nie jest wyświetlany.

Aby zarejestrować się w programie testów origin, zapoznaj się z instrukcjami dotyczącymi interfejsu Button Mode API na komputerach. Jeśli masz już zarejestrowaną wersję próbną origin na komputerze, funkcja będzie automatycznie dostępna w Chrome na Androidzie od wersji 128.

Pakiet interfejsu Continuation API dla Chrome na Androida

Od wersji 128 Chrome na Androida będzie dostępny pakiet Continuation API w ramach wersji próbnej origin. Wcześniej był on testowany na komputerach. Pakiet składa się z kilku funkcji FedCM, w tym interfejsu Continuation API, interfejsu Parameters API, interfejsu Fields API, wielu adresów URL konfiguracjiniestandardowych etykiet kont.

Interfejs Continuation API umożliwia wieloetapowe procesy logowania. Interfejs Parameters API umożliwia przekazywanie dodatkowych parametrów do dostawcy tożsamości. Interfejs Fields API umożliwia dostawcy tożsamości wysyłanie żądań dotyczących konkretnych atrybutów konta na potrzeby interfejsu ujawniania informacji w oknie FedCM. Dodatkowo funkcja Multiple configURL obsługuje wiele plików konfiguracyjnych dostawcy tożsamości, a etykiety kont niestandardowych umożliwiają dostawcom tożsamości dodawanie adnotacji do kont, dzięki czemu usługodawcy mogą je filtrować według tych etykiet.

Więcej informacji o pakiecie Continuation API znajdziesz w poście na blogu na temat pakietu Continuation API na komputerze. Aby zarejestrować się w okresie próbnym, postępuj zgodnie z tymi instrukcjami. Jeśli masz już zarejestrowany udział w testach origin na komputerze, funkcje będą automatycznie dostępne w Chrome na Androidzie od wersji 128.

Angażowanie się i przesyłanie opinii

Jeśli masz uwagi lub napotkasz problemy, możesz zgłosić problem. Będziemy na bieżąco aktualizować oficjalny przewodnik dla programistów dotyczący FedCM oraz stronę z dziennikami aktualizacji.