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 elementów:

  • Strona uzależniona: w kontekście klucza dostępu strona uzależniona 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ę przy użyciu kluczy – oraz serwer do rejestrowania, przechowywania i potwierdzania danych logowania wygenerowanych przez klucze dostępu w kliencie. Aplikacja mobilna klucza dostępu musi być powiązana z domeną serwera RP przy użyciu mechanizmu powiązań udostępnionego przez system operacyjny, np. linków zasobów cyfrowych.
  • Authenticator: urządzenie, np. telefon komórkowy, tablet, laptop lub komputer stacjonarny, które może tworzyć i weryfikować klucze dostępu za pomocą dostępnej w systemie operacyjnym funkcji blokady ekranu.
  • Menedżer haseł: oprogramowanie zainstalowane na urządzeniach użytkownika, które wyświetla, przechowuje i synchronizuje klucze dostępu, np. Menedżer haseł Google.

Proces rejestracji

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

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

  • Identyfikator objętej ograniczeniami: podaj identyfikator strony uzależnionej w postaci domeny internetowej.
  • Informacje o użytkowniku: identyfikator, nazwa użytkownika i wyświetlana nazwa.
  • Dane logowania do wykluczenia: informacje o zapisanych wcześniej kluczach dostępu, które zapobiegają zduplikowanej rejestracji.
  • Typy kluczy dostępu: określa, czy urządzenie ma być używane jako mechanizm uwierzytelniający czy klucz bezpieczeństwa z możliwością odłączania („wieloplatformowe / 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 się zaloguje.

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

Proces rejestracji

Szczegółowe informacje o tym, jak utworzyć i zarejestrować klucz 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 dostarczyć 2 kluczowe elementy:

  • Identyfikator objętej ograniczeniami: podaj identyfikator strony uzależnionej w postaci domeny internetowej.
  • Wyzwanie: zadanie wygenerowane przez serwer, które uniemożliwia powtórzenie ataków.

Gdy grupa z ograniczonym dostępem zażąda uwierzytelniania za pomocą klucza dostępu, a użytkownik potwierdzi to za pomocą odblokowania ekranu, zwracane są dane uwierzytelniające klucza publicznego. Wyślij ją do serwera i sprawdź podpis za pomocą zapisanego klucza publicznego.

Proces uwierzytelniania

Szczegółowe informacje o uwierzytelnianiu przy użyciu klucza dostępu:

Integracje po stronie serwera

Podczas tworzenia 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 weryfikuje ona utworzone dane uwierzytelniające klucza publicznego wysłane z klienta i przechowuje klucz publiczny w bazie danych. Aby uwierzytelnić się za pomocą klucza dostępu, serwer musi dokładnie sprawdzić dane uwierzytelniające i podpisać podpis, aby umożliwić użytkownikowi zalogowanie się.

Więcej informacji znajdziesz w przewodnikach po stronie serwera:

Istniejące (starsze) mechanizmy uwierzytelniania

Jeśli w obecnej usłudze obsługujesz klucze dostępu, przejście ze starszego mechanizmu uwierzytelniania (np. na hasła) nie nastąpi w ciągu 1 dnia. Zdajemy sobie sprawę, że możesz szybko wyeliminować słabszą metodę uwierzytelniania, ale może to wywołać dezorientację użytkowników lub pozostawić niektórych z nich w kontakcie. Zalecamy na razie zachować istniejącą metodę uwierzytelniania.

Istnieje kilka przyczyn:

  • Użytkownicy w środowisku niezgodnym z kluczem dostępu: obsługa kluczy dostępu jest obecnie wprowadzana 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 się rozwija. Możesz poprawić szczegóły UX i zgodność techniczną między różnymi środowiskami.
  • Użytkownicy mogą nie być jeszcze gotowi do życia z kluczem dostępu: niektórzy ludzie niechętnie podchodzą do nowych rzeczy. W miarę rozwoju ekosystemu kluczy dostępu będą rozumieć, jak działają klucze dostępu i dlaczego są dla nich przydatne.

Ponowne przeglądanie obecnego mechanizmu uwierzytelniania

Klucze dostępu upraszczają i zwiększają bezpieczeństwo uwierzytelniania, ale zachowanie starych mechanizmów jest jak pozostawienie dziury. Zalecamy ponowne sprawdzenie i ulepszenie istniejących 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 menedżera haseł wbudowanego w system lub osobnego menedżera. Dzięki niewielkim zmianom w formularzu logowania witryny i aplikacje mogą mieć ogromny wpływ na bezpieczeństwo i wygodę logowania. Sprawdź, jak możesz wprowadzić te zmiany:

Uwierzytelnianie dwuskładnikowe

Menedżer haseł ułatwia użytkownikom obsługę haseł, ale nie wszyscy z nich korzystają. Prośba o dodatkowe dane logowania nazywane hasłem jednorazowym to częsta praktyka w celu ochrony takich użytkowników. Hasła jednorazowe są zazwyczaj przekazywane e-mailem, SMS-em lub w aplikacji uwierzytelniającej, np. Google Authenticator. Hasła jednorazowe to zwykle krótki tekst generowany dynamicznie, ważny tylko przez ograniczony czas, więc zmniejsza ryzyko przejęcia konta. Te metody nie są tak zaawansowane jak klucz dostępu, ale znacznie lepsze niż pozostawianie użytkownikom samego hasła.

Jeśli wybierzesz SMS-y jako sposób dostarczania hasła jednorazowego, zapoznaj się z tymi sprawdzonymi metodami, aby 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 ona łatwiejsza w obsłudze i korzystniejsza od uwierzytelniania za pomocą hasła. Federacja tożsamości to uzupełnienie kluczy dostępu. Świetnie sprawdza się podczas rejestrowania się, ponieważ witryna lub aplikacja może w jednym kroku uzyskać podstawowe informacje o profilu użytkownika. Klucze dostępu doskonale sprawdzają się przy ponownym uwierzytelnianiu.

Pamiętaj, że po wycofaniu z Chrome plików cookie innych firm w 2024 r. może to mieć wpływ na niektóre systemy federacji tożsamości, w zależności od sposobu ich stworzenia. Aby ograniczyć to zjawisko, pracujemy nad nowym interfejsem API dla przeglądarek o nazwie Federated Credential Management API (w skrócie FedCM). Jeśli korzystasz z dostawcy tożsamości, zapoznaj się ze szczegółami i sprawdź, 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, dzięki czemu użytkownik może go kliknąć, aby się uwierzytelnić. Ułatwia to logowanie się bez zapamiętywania hasła, ale przełączanie się między przeglądarką/aplikacji a klientem poczty e-mail może być kłopotliwe. Poza tym, ponieważ mechanizm uwierzytelniania bazuje na e-mailach, słabe zabezpieczenia dostawcy poczty mogą narazić konta użytkowników na niebezpieczeństwo.

Zasoby szkoleniowe

Internet

Aby zintegrować klucze dostępu ze swoją witryną, użyj interfejsu Web Authentication 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: