Przewodnik dla programistów kluczy dostępu dla podmiotów uzależnionych

Dowiedz się, jak zintegrować klucze dostępu ze swoją usługą.

Struktura systemu kluczy dostępu

System kluczy dostępu składa się z kilku komponentów:

  • Strona uzależniona: w kontekście klucza dostępu strona uzależniona (RP) obsługuje wystawianie i uwierzytelnianie kluczy dostępu. RP musi obsługiwać klienta – witrynę lub aplikację, która tworzy klucze dostępu lub uwierzytelnia się za pomocą kluczy – oraz serwer do rejestrowania, przechowywania i weryfikacji danych logowania wygenerowanych przez klucze dostępu po stronie klienta. Aplikacja mobilna klucza dostępu musi być powiązana z domeną serwera RP przy użyciu mechanizmu powiązań systemu operacyjnego, np. linków zasobów cyfrowych.
  • Authenticator: urządzenie komputerowe, np. telefon komórkowy, tablet, laptop lub komputer stacjonarny, które może tworzyć i weryfikować klucze dostępu za pomocą oferowanej przez system operacyjny funkcji blokady ekranu.
  • Menedżer haseł: oprogramowanie zainstalowane na urządzeniu użytkownika, które obsługuje, przechowuje i synchronizuje klucze dostępu, np. Menedżer haseł Google.

Proces rejestracji

Użyj interfejsu WebAuthn API na stronie internetowej lub biblioteki Credential Manager w aplikacji na Androida, aby utworzyć i zarejestrować nowy klucz dostępu.

Aby utworzyć nowy klucz dostępu, musisz podać kilka kluczowych elementów:

  • Identyfikator objętej ograniczeniami: podaj identyfikator strony uzależnionej w postaci domeny internetowej.
  • Informacje o użytkowniku: jego identyfikator, nazwa użytkownika i wyświetlana nazwa.
  • Dane logowania do wykluczenia: informacje o wcześniej przechowywanych kluczach dostępu, które mają zapobiec zduplikowanej rejestracji.
  • Typy kluczy dostępu: określa, czy urządzenie ma być używane jako mechanizm uwierzytelniający („platforma uwierzytelniająca platforma”) czy odłączany klucz bezpieczeństwa („wieloplatformowy / uwierzytelnianie w roamingu”). Dodatkowo elementy wywołujące mogą określić, czy dane logowania mają być wykrywalne, aby użytkownik mógł wybrać konto, na które będzie się logować.

Gdy grupa z ograniczonym dostępem poprosi o utworzenie klucza dostępu, a użytkownik potwierdzi go za pomocą odblokowania ekranu, tworzony jest nowy klucz dostępu i zwracane są dane logowania klucza publicznego. Wyślij je na serwer i zapisz identyfikator danych logowania oraz klucz publiczny na potrzeby przyszłego uwierzytelniania.

Proces rejestracji

Szczegółowe informacje o tworzeniu i rejestrowaniu klucza dostępu:

Proces uwierzytelniania

Użyj interfejsu WebAuthn API na stronie internetowej lub biblioteki Credential Manager w aplikacji na Androida, aby uwierzytelnić się za pomocą zarejestrowanego klucza dostępu.

Aby uwierzytelnić się za pomocą klucza dostępu, musisz udostępnić 2 kluczowe elementy:

  • Identyfikator objętej ograniczeniami: podaj identyfikator strony uzależnionej w postaci domeny internetowej.
  • Wyzwanie: wyzwanie wygenerowane przez serwer, które zapobiega atakom metodą powtórzenia.

Gdy grupa z ograniczonym dostępem zażąda uwierzytelnienia za pomocą klucza dostępu, a użytkownik potwierdzi to odblokowanie ekranu, zwrócone zostaną dane uwierzytelniające klucza publicznego. Wyślij ją na serwer i zweryfikuj podpis za pomocą zapisanego klucza publicznego.

Proces uwierzytelniania

Szczegółowe informacje o uwierzytelnianiu się za pomocą klucza dostępu:

Integracja po stronie serwera

Po utworzeniu klucza dostępu serwer musi podać kluczowe parametry, takie jak test zabezpieczający, informacje o użytkowniku, identyfikatory danych logowania do wykluczenia i inne. Następnie sprawdza utworzone dane uwierzytelniające klucza publicznego wysłane z klienta i przechowuje klucz publiczny w bazie danych. W przypadku uwierzytelniania za pomocą klucza dostępu serwer musi dokładnie zweryfikować dane logowania i podpis, aby umożliwić użytkownikowi zalogowanie się.

Jednak samodzielne zbudowanie serwera kluczy dostępu nie jest czasochłonne i może powodować błędy, które prowadzą do krytycznego incydentu związanego z bezpieczeństwem. Zalecamy użycie jednej z dostępnych bibliotek open source lub rozwiązania, które może przyspieszyć integrację kluczy dostępu.

Listę bibliotek open source znajdziesz w sekcji Libraries (biblioteki Passkeys.dev) lub przetworzonej przez ludzi liście bibliotek WebAuthn. Aby znaleźć rozwiązanie, FIDO Alliance ma listę certyfikowanych serwerów FIDO2.

Istniejące (starsze) mechanizmy uwierzytelniania

Jeśli obsługujesz klucze dostępu w dotychczasowej usłudze, przejście ze starszego mechanizmu uwierzytelniania (np. haseł) na klucze dostępu nie nastąpi w ciągu jednego dnia. Wiemy, że szybko wyeliminować słabszą metodę uwierzytelniania, ale może to spowodować dezorientację użytkowników lub pozostawić niektórych w kontakcie. Zalecamy na razie zachować istniejącą metodę uwierzytelniania.

Istnieje kilka przyczyn:

  • Są użytkownicy w środowisku niezgodnym z kluczem dostępu: obsługa kluczy dostępu będzie rozszerzana w różnych systemach operacyjnych i przeglądarkach, ale użytkownicy starszych wersji nie mogą jeszcze używać kluczy dostępu.
  • Ekosystem kluczy dostępu jeszcze nie dojrzał: ekosystem kluczy dostępu stale się rozwija. Może to poprawić zgodność z wygodą użytkowników i zgodność techniczną między różnymi środowiskami.
  • Użytkownicy mogą nie być jeszcze gotowi do życia przy pomocy klucza dostępu: niektórzy ludzie niechętnie podchodzą do nowych rzeczy. W miarę rozwoju ekosystemu kluczy dostępu będą rozumieć, jak działają i dlaczego są przydatne.

Ponowne sprawdzanie obecnego mechanizmu uwierzytelniania

Klucze dostępu upraszczają i zwiększają bezpieczeństwo uwierzytelniania, ale zachowanie starych mechanizmów jest jak pozostawienie dziury. Zalecamy sprawdzenie i ulepszanie obecnych mechanizmów uwierzytelniania.

Hasła

Dla użytkowników tworzenie silnych haseł i zarządzanie nimi w każdej witrynie to nie lada wyzwanie. Zdecydowanie zalecamy korzystanie z wbudowanego w system menedżera haseł lub z samodzielnego programu. Niewielkie zmiany w formularzu logowania mogą mieć duży wpływ na bezpieczeństwo witryn i aplikacji. Sprawdź, jak możesz wprowadzić te zmiany:

Uwierzytelnianie dwuskładnikowe

Menedżer haseł pomaga użytkownikom w ich obsłudze, ale nie wszyscy z nich korzystają. Prośba o dodatkowe dane logowania nazywane hasłem jednorazowym to częsta metoda ochrony takich użytkowników. Hasła jednorazowe są zwykle przekazywane w e-mailach, SMS-ach lub w aplikacji uwierzytelniającej, np. Google Authenticator. Hasła jednorazowe to zwykle krótki tekst generowany dynamicznie i ważny tylko w ograniczonym zakresie czasowym, co zmniejsza prawdopodobieństwo przejęcia konta. Te metody nie są tak wydajne jak klucz dostępu, ale są znacznie lepsze niż pozostawianie użytkownikom samego hasła.

Jeśli jako opcję dostarczania hasła jednorazowego wybierzesz SMS-y, zapoznaj się z tymi sprawdzonymi metodami, by ułatwić użytkownikom wpisywanie hasła jednorazowego.

Federacja tożsamości

Federacja tożsamości to kolejna opcja umożliwiająca użytkownikom bezpieczne i łatwe logowanie. Dzięki federacji tożsamości witryny i aplikacje mogą zezwalać użytkownikom na logowanie się przy użyciu tożsamości użytkownika od zewnętrznego dostawcy tożsamości. Na przykład funkcja Zaloguj się przez Google zapewnia deweloperom doskonałe konwersje, a użytkownicy uważają, że jest to łatwiejsze i korzystniejsze od uwierzytelniania za pomocą hasła. Federacja tożsamości to dodatek do kluczy dostępu. To świetny sposób na zarejestrowanie się, ponieważ strona lub aplikacja może w jednym kroku uzyskać podstawowe informacje z profilu użytkownika, a klucze dostępu znakomicie ułatwiają ponowne uwierzytelnianie.

Pamiętaj, że po wycofaniu z Chrome plików cookie innych firm w 2024 roku może to wpłynąć na niektóre systemy federacji tożsamości, w zależności od tego, jak zostały skonstruowane. Aby ograniczyć ten skutek, tworzymy nowy interfejs API przeglądarki o nazwie Federated Credential Management API (FedCM, w skrócie). Jeśli korzystasz z dostawcy tożsamości, zapoznaj się ze szczegółami i przekonaj się, czy musisz wdrożyć FedCM.

Logowanie za pomocą magicznego linku to metoda uwierzytelniania, w ramach której usługa dostarcza link logowania w e-mailu, aby użytkownik mógł go kliknąć, aby się uwierzytelnić. Pomaga to użytkownikom logować się bez zapamiętywania hasła, ale przełączanie się między przeglądarką/aplikacji a klientem poczty e-mail jest kłopotliwe. Poza tym mechanizm uwierzytelniania bazuje na e-mailach, dlatego słabe zabezpieczenia dostawcy poczty mogą narazić konta użytkowników na niebezpieczeństwo.

Zasoby szkoleniowe

Sieć

Aby zintegrować klucze dostępu ze swoją witryną, użyj interfejsu Web Uwierzytelnianie API (WebAuthn). Więcej informacji znajdziesz w tych materiałach:

Android

Aby zintegrować klucze dostępu z aplikacją na Androida, użyj biblioteki Menedżera danych logowania. Więcej informacji znajdziesz w tych materiałach:

UX

Poznaj rekomendacje dotyczące wygody użytkowników kluczy dostępu: