Obsługa automatycznego ponownego uwierzytelniania w FedCM

Chrome obsługuje automatyczne ponowne uwierzytelnianie w FedCM

Interfejs Federated Credential Management API (FedCM) to interfejs web API do federacji tożsamości z zachowaniem prywatności. W przypadku federacji tożsamości RP (usługa) korzysta z dostawcy tożsamości (IdP), aby udostępnić użytkownikowi konto bez konieczności podawania nowej nazwy użytkownika i hasła.

FedCM pozwala przeglądarce zrozumieć kontekst, w którym RP i IdP wymieniają informacje. Informuje użytkownika o udostępnianych informacjach i poziomach uprawnień oraz zapobiega niezamierzonemu nadużyciu. FedCM jest dostępny w Chrome od wersji 108.

W Chrome 115 FedCM obsługuje automatyczną ponowną uwierzytelnianie, co zwiększa wygodę użytkowników i umożliwia bardziej płynną ponowną uwierzytelnianie w RP po początkowej zgodzie.

Automatyczne ponowne uwierzytelnianie

Obecnie, gdy użytkownik utworzy konto zaufane w usługach dostawcy usług w ramach interfejsu FedCM API z usługą dostawcy tożsamości, przy następnej wizycie na stronie musi wykonać te same czynności w interfejsie użytkownika. Oznacza to, że użytkownik będzie musiał ręcznie potwierdzić uwierzytelnienie i kontynuować proces logowania.

Chociaż wyświetlanie wyraźnego komunikatu ma sens, zanim użytkownik utworzy konto federacyjne, aby zapobiec śledzeniu (co jest jednym z głównych celów FedCM), jest ono niepotrzebnie uciążliwe, gdy użytkownik już raz je przeczytał. Po udzieleniu przez użytkownika zgody na komunikację między RP a IdP nie ma już potrzeby wymuszania kolejnego wyraźnego potwierdzenia przez użytkownika czegoś, co zostało już wcześniej zaakceptowane. Dlatego wprowadzamy bardziej ulepszony interfejs użytkownika, który RP mogą wybrać dla powracających użytkowników.

FedCM automatyczne ponowne uwierzytelnianie (w skrócie „auto-reauthn”) może umożliwiać użytkownikom automatyczne ponowne uwierzytelnianie, gdy po początkowym uwierzytelnieniu za pomocą FedCM wrócą oni do aplikacji. „Pierwsze uwierzytelnianie” oznacza, że użytkownik tworzy konto lub loguje się na stronie RP, klikając przycisk „Dalej jako…” w oknie logowania FedCM po raz pierwszy w tym samym wystąpieniu przeglądarki.

Okno, które użytkownik musi kliknąć, aby utworzyć konto lub uwierzytelnić się.
Okno, które użytkownik klika, aby utworzyć konto lub uwierzytelnić się.

Wybierz opcję automatycznego ponownego uwierzytelniania

Wprowadzamy automatyczne ponowne uwierzytelnianie, aby zapewnić lepsze wrażenia użytkowników i zgodność ze specyfikacją. Domyślne wrażenia użytkowników będą inne bez konieczności wprowadzania zmian w kodzie. Gdy automatyczna ponowna autoryzacja jest dostępna, przeglądarka zmienia swoje działanie w zależności od opcji wybranej w opcji mediation, którą udostępniają deweloperzy.navigator.credentials.get()

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

mediation to właściwość w interfejsie API do zarządzania danymi uwierzytelniania, która zachowuje się w taki sam sposób jak w przypadku danych PasswordCredentialFederatedCredential, a także jest częściowo obsługiwana przez PublicKeyCredential. Właściwość ta akceptuje 4 wartości:

  • 'required': zawsze wymaga interwencji, np. kliknięcia przycisku „Dalej” w interfejsie. Wybierz tę opcję, jeśli użytkownicy mają przyznawać uprawnienia w prosty sposób za każdym razem, gdy trzeba ich uwierzytelnić.
  • 'optional' (domyślnie): automatyczne ponowne uwierzytelnianie (jeśli to możliwe) lub wymaganie uwierzytelniania (w przeciwnym razie). Zalecamy wybranie tej opcji na stronie logowania.
  • 'silent': automatyczne ponowne uwierzytelnianie (jeśli to możliwe) lub bezproblemowe niepowodzenie (jeśli nie jest możliwe) bez konieczności interwencji. Zalecamy wybranie tej opcji na stronach innych niż strona logowania, na których chcesz, aby użytkownicy pozostawali zalogowani. Może to być na przykład strona produktu w witrynie firmy spedycyjnej lub strona artykułu w witrynie z wiadomościami.
  • 'conditional': służy do uwierzytelniania w ramach WebAuthn i obecnie nie jest dostępna w przypadku FedCM.

W ramach tego wywołania automatyczna ponowna autoryzacja odbywa się w tych warunkach:

  • Dostępna jest usługa FedCM. Użytkownik nie wyłączył FedCM ani globalnie, ani w ustawieniach RP.
  • Użytkownik zalogował się na stronie w tym przeglądarce tylko za pomocą jednego konta z FedCM API.
  • Użytkownik jest zalogowany w systemie dostawcy tożsamości przy użyciu tego konta.
  • Automatyczna ponowna autoryzacja nie nastąpiła w ciągu ostatnich 10 minut.
  • RP nie zadzwonił navigator.credentials.preventSilentAccess() po poprzednim zalogowaniu się.

Gdy powyższe warunki są spełnione, próba automatycznego ponownego uwierzytelnienia użytkownika rozpoczyna się, gdy tylko wywołano usługę FedCM navigator.credentials.get().

Użytkownik automatycznie uwierzytelnia się za pomocą FedCM.

Wymuś zapośredniczenie za pomocą preventSilentAccess()

Automatyczne uwierzytelnianie użytkowników zaraz po wylogowaniu nie jest wygodne dla użytkowników. Dlatego FedCM ma 10-minutowy okres ciszy po automatycznym uwierzytelnieniu, aby zapobiec takiemu zachowaniu. Oznacza to, że automatyczne ponowne uwierzytelnianie odbywa się maksymalnie raz na 10 minut, chyba że użytkownik zaloguje się ponownie w ciągu 10 minut. RP powinien wywołać navigator.credentials.preventSilentAccess(), aby wyraźnie poprosić przeglądarkę o wyłączenie automatycznego ponownego uwierzytelniania, gdy użytkownik wyloguje się z RP, na przykład przez kliknięcie przycisku wylogowania.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Użytkownicy mogą zrezygnować z automatycznej autoryzacji w ustawieniach

Użytkownicy mogą zrezygnować z automatycznego ponownego autoryzowania w menu ustawień:

  • W Chrome na komputerze kliknij chrome://password-manager/settings > Zaloguj się automatycznie.
  • W Chrome na Androidzie otwórz Ustawienia > Menedżer haseł > kliknij kółko zębate w prawym górnym rogu > Logowanie automatyczne.

Wyłączając przełącznik, użytkownik może całkowicie zrezygnować z automatycznego uwierzytelniania. To ustawienie jest przechowywane i synchronizowane na różnych urządzeniach, jeśli użytkownik jest zalogowany na koncie Google w instancji Chrome i synchronizacja jest włączona.

Podziel się opinią

Jeśli testujesz FedCM, możesz podzielić się opinią lub problemami na stronie crbug.com w komponencie "Blink>Identity>FedCM".

Zdjęcie: Noah Samuel FranzUnsplash