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.
Szczegółowe informacje o tym, jak utworzyć i zarejestrować klucz dostępu:
- W przeglądarce: utwórz klucz dostępu do logowania się bez hasła.
- Na urządzeniu z Androidem: umożliwia sprawne uwierzytelnianie w aplikacjach za pomocą kluczy dostępu za pomocą interfejsu Credential Manager API
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.
Szczegółowe informacje o uwierzytelnianiu przy użyciu klucza dostępu:
- W przeglądarce: logowanie się za pomocą klucza dostępu przez autouzupełnianie formularza
- Na urządzeniu z Androidem: umożliwia sprawne uwierzytelnianie w aplikacjach za pomocą kluczy dostępu za pomocą interfejsu Credential Manager API
Integracje 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. Aby uwierzytelnić się za pomocą klucza dostępu, serwer musi dokładnie zweryfikować dane logowania i podpis, aby umożliwić użytkownikowi zalogowanie się.
Więcej informacji znajdziesz w przewodnikach po stronie serwera:
- Wprowadzenie do implementacji kluczy dostępu po stronie serwera
- Rejestracja klucza dostępu po stronie serwera
- Uwierzytelnianie klucza 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:
- Sprawdzone metody dotyczące formularzy logowania (internet)
- Sprawdzone metody dotyczące formularza rejestracyjnego (internet)
- Logowanie użytkownika za pomocą Menedżera danych logowania (Android)
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.
- Sprawdzone metody dotyczące formularzy jednorazowych przesyłanych SMS-em (internet)
- Automatyczna weryfikacja SMS-ów przy użyciu interfejsu SMS Retriever API (Android)
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.
- Interfejs API sfederowanego zarządzania danymi uwierzytelniającymi (sieć, FedCM)
- Omówienie funkcji Zaloguj się przez Google w internecie (Internet, Logowanie przez Google)
- Omówienie logowania jednym dotknięciem na urządzeniach z Androidem (Android, logowanie jednym dotknięciem)
„Magiczne linki”
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
Web
Aby zintegrować klucze dostępu ze swoją witryną, użyj interfejsu Web Authentication API (WebAuthn). Więcej informacji znajdziesz w tych materiałach:
- Tworzenie klucza dostępu do logowania się bez hasła: artykuł, w którym omawiamy, jak umożliwić użytkownikom tworzenie kluczy dostępu do stron internetowych.
- Logowanie się za pomocą klucza dostępu w ramach autouzupełniania formularza: artykuł, z którego dowiesz się, jak zaplanować logowanie się bez hasła za pomocą kluczy dostępu, a jednocześnie dostosować je do dotychczasowych użytkowników haseł.
- Implementowanie kluczy dostępu z autouzupełnianiem formularzy w aplikacji internetowej: ćwiczenie z programowania, z którego dowiesz się, jak zaimplementować klucze dostępu z autouzupełnianiem formularzy w aplikacji internetowej, aby uprościć i bezpieczniejsze logowanie.
- Dowiedz się, jak wdrożyć klucze dostępu z autouzupełnianiem formularzy w aplikacji internetowej: film z ćwiczeń omawiających ćwiczenia z programowania Implementowanie kluczy dostępu z automatycznym uzupełnianiem formularzy w aplikacji internetowej w celu zaimplementowania kluczy dostępu z autouzupełnianiem formularzy w aplikacji internetowej, aby logowanie było prostsze i bezpieczniejsze.
- Tworzenie pierwszej aplikacji WebAuthn: ćwiczenie z programowania, dzięki któremu dowiesz się, jak utworzyć prostą funkcję ponownego uwierzytelniania za pomocą klucza dostępu w witrynie.
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:
- Logowanie użytkownika za pomocą Menedżera danych logowania: artykuł, w którym omawiamy, jak zintegrować Menedżera danych logowania na Androidzie. Credential Manager to interfejs API Jetpack, który obsługuje wiele metod logowania, takich jak nazwa użytkownika i hasło, klucze dostępu i sfederowane rozwiązania logowania (takie jak Zaloguj się przez Google) w jednym interfejsie API
- Sprawne uwierzytelnianie w aplikacjach za pomocą kluczy dostępu przy użyciu interfejsu Credential Manager API: artykuł z artykułem na temat integracji kluczy dostępu za pomocą Menedżera danych logowania na urządzeniach z Androidem.
- Dowiedz się, jak uprościć proces uwierzytelniania za pomocą interfejsu Credential Manager API w aplikacji na Androida: Dowiedz się, jak wdrożyć interfejs Credential Manager API, aby zapewnić płynne i bezpieczne uwierzytelnianie w aplikacji za pomocą kluczy lub hasła.
- Przykładowa aplikacja menedżera danych logowania: przykładowy kod, który uruchamia Menedżera danych logowania do obsługi kluczy dostępu.
- Integracja Menedżera danych logowania z rozwiązaniem dostawcy danych logowania | Programiści aplikacji na Androida
UX
Poznaj rekomendacje dotyczące wygody użytkowników kluczy dostępu: