Dowiedz się, jak zintegrować klucze dostępu z usługą.
Anatomia systemu kluczy dostępu
System kluczy dostępu składa się z kilku komponentów:
- Podmiot polegający: w kontekście kluczy dostępu podmiot polegający (w skrócie RP) zajmuje się wydawaniem kluczy dostępu i uwierzytelnianiem. Podmiot polegający musi obsługiwać klienta – stronę internetową lub aplikację, która tworzy klucze dostępu lub uwierzytelnia za ich pomocą – oraz serwer do rejestrowania, przechowywania i weryfikowania danych logowania generowanych przez klucze dostępu na urządzeniu klienta. Aplikacja mobilna klucza dostępu musi być powiązana z domeną serwera RP za pomocą mechanizmu powiązywania udostępnianego przez system operacyjny, takiego jak Digital Asset Links.
- Authenticator: urządzenie elektroniczne, takie jak telefon komórkowy, tablet, laptop lub komputer stacjonarny, które może tworzyć i weryfikować klucze dostępu za pomocą funkcji blokady ekranu oferowanej przez system operacyjny.
- Menedżer haseł: oprogramowanie zainstalowane na urządzeniach użytkownika, które udostępnia, przechowuje i synchronizuje klucze dostępu, np. Menedżer haseł Google.
Proces rejestracji
Użyj interfejsu WebAuthn API w witrynie 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 komponentów:
- Identyfikator RP: podaj identyfikator podmiotu polegającego na uwierzytelnianiu w formie domeny internetowej.
- Informacje o użytkowniku: identyfikator użytkownika, nazwa użytkownika i wyświetlana nazwa.
- Dane logowania do wykluczenia: informacje o wcześniej zapisanych kluczach dostępu, które mają zapobiegać duplikowaniu rejestracji.
- Rodzaje kluczy dostępu: czy jako uwierzytelniania ma być używane samo urządzenie („uwierzytelnianie platformowe”), czy odłączany klucz bezpieczeństwa („uwierzytelnianie międzyplatformowe / roamingowe”). Oprócz tego wywołujący mogą określić, czy dane logowania mają być wykrywalne, aby użytkownik mógł wybrać konto, za pomocą którego chce się zalogować.
Gdy dostawca tożsamości poprosi o utworzenie klucza dostępu, a użytkownik potwierdzi to odblokowaniem ekranu, zostanie utworzony nowy klucz dostępu i zostaną zwrócone dane logowania klucza publicznego. Wyślij te dane na serwer i zapisz identyfikator danych logowania oraz klucz publiczny na potrzeby przyszłego uwierzytelniania.
Dowiedz się, jak utworzyć i zarejestrować klucz dostępu:
- W przeglądarce: utwórz klucz dostępu do logowania bez hasła
- Na Androidzie: zapewnianie bezproblemowego uwierzytelniania w aplikacjach za pomocą kluczy dostępu przy użyciu interfejsu Credential Manager API
Proces uwierzytelniania
Używaj interfejsu WebAuthn API w witrynie lub biblioteki Credential Manager w aplikacji na Androida, aby uwierzytelniać się za pomocą zarejestrowanego klucza dostępu.
Aby uwierzytelnić się za pomocą klucza dostępu, musisz podać kilka kluczowych komponentów:
- Identyfikator RP: podaj identyfikator podmiotu polegającego na uwierzytelnianiu w formie domeny internetowej.
- Challenge: wygenerowany przez serwer ciąg znaków, który zapobiega atakom typu replay.
Gdy dostawca tożsamości poprosi o uwierzytelnienie za pomocą klucza dostępu, a użytkownik potwierdzi je odblokowaniem ekranu, zostanie zwrócony klucz publiczny. Wyślij go na serwer i zweryfikuj podpis za pomocą zapisanego klucza publicznego.
Dowiedz się więcej o uwierzytelnianiu za pomocą klucza dostępu:
- W przeglądarce: logowanie się za pomocą klucza dostępu przez automatyczne wypełnianie formularza
- Na Androidzie: zapewnianie bezproblemowego uwierzytelniania w aplikacjach za pomocą kluczy dostępu przy użyciu interfejsu Credential Manager API
Integracje po stronie serwera
Po utworzeniu klucza dostępu serwer musi podać parametry klucza, takie jak wyzwanie, informacje o użytkowniku, identyfikatory wykluczonych danych logowania itp. Następnie weryfikuje utworzone dane logowania za pomocą klucza publicznego przesłane przez klienta i zapisuje klucz publiczny w bazie danych. Aby uwierzytelnić użytkownika za pomocą klucza dostępu, serwer musi dokładnie sprawdzić dane logowania i zweryfikować podpis, aby umożliwić użytkownikowi zalogowanie się.
Więcej informacji znajdziesz w naszych przewodnikach po stronie serwera:
- Wprowadzenie do implementacji kluczy dostępu po stronie serwera
- Rejestracja klucza dostępu po stronie serwera
- Uwierzytelnianie za pomocą klucza dostępu po stronie serwera
Istniejące (starsze) mechanizmy uwierzytelniania
Gdy zaczniesz obsługiwać klucze dostępu w swojej usłudze, przejście ze starszego mechanizmu uwierzytelniania, takiego jak hasła, na klucze dostępu nie nastąpi w ciągu jednego dnia. Wiemy, że możesz chcieć jak najszybciej wyeliminować słabszą metodę uwierzytelniania, ale może to wprowadzić użytkowników w błąd lub spowodować, że niektórzy z nich nie będą mogli korzystać z usługi. Zalecamy tymczasowe zachowanie dotychczasowej metody uwierzytelniania.
Może się tak stać z kilku powodów:
- Użytkownicy znajdują się w środowisku, które nie jest zgodne z kluczami dostępu: obsługa kluczy dostępu jest rozszerzana na różne systemy operacyjne i przeglądarki, ale użytkownicy starszych wersji nie mogą jeszcze z nich korzystać.
- Ekosystem kluczy dostępu nie jest jeszcze w pełni rozwinięty: ekosystem kluczy dostępu wciąż się rozwija. Szczegóły UX i kompatybilność techniczną między różnymi środowiskami można ulepszyć.
- Użytkownicy mogą nie być jeszcze gotowi na korzystanie z kluczy dostępu: niektórzy niechętnie podchodzą do nowości. W miarę rozwoju ekosystemu kluczy dostępu użytkownicy będą mogli przekonać się, jak działają klucze dostępu i dlaczego są dla nich przydatne.
Ponowne sprawdzenie dotychczasowego mechanizmu uwierzytelniania
Klucze dostępu upraszczają i zwiększają bezpieczeństwo uwierzytelniania, ale pozostawienie starych mechanizmów jest jak pozostawienie dziury. Zalecamy ponowne sprawdzenie i ulepszenie dotychczasowych mechanizmów uwierzytelniania.
Hasła
Tworzenie silnych haseł i zarządzanie nimi na każdej stronie to dla użytkowników trudne zadanie. Zdecydowanie zalecamy korzystanie z menedżera haseł wbudowanego w system lub samodzielnego. Wprowadzając niewielkie zmiany w formularzu logowania, witryny i aplikacje mogą znacząco poprawić bezpieczeństwo i ułatwić logowanie. Sprawdź, jak wprowadzić te zmiany:
- Sprawdzone metody dotyczące formularza logowania (internet)
- Sprawdzone metody dotyczące formularza rejestracji (internet)
- Logowanie użytkownika za pomocą usługi Credential Manager (Android)
Uwierzytelnianie dwuskładnikowe
Menedżer haseł ułatwia użytkownikom zarządzanie hasłami, ale nie wszyscy z niego korzystają. Prośba o dodatkowe dane logowania, czyli hasło jednorazowe, to powszechna praktyka stosowana w celu ochrony takich użytkowników. Kody OTP są zwykle dostarczane e-mailem, SMS-em lub za pomocą aplikacji uwierzytelniającej, takiej jak Google Authenticator. Kody OTP to zwykle krótkie teksty generowane dynamicznie, które są ważne tylko przez ograniczony czas, co zmniejsza prawdopodobieństwo przejęcia konta. Te metody nie są tak niezawodne jak klucz dostępu, ale są znacznie lepsze niż pozostawienie użytkownikom tylko hasła.
Jeśli wybierzesz SMS-a jako sposób dostarczania kodu OTP, zapoznaj się z tymi sprawdzonymi metodami, aby ułatwić użytkownikom wpisywanie kodu OTP.
- Sprawdzone metody dotyczące formularza jednorazowego hasła SMS (internet)
- Automatyczna weryfikacja SMS-ów za pomocą interfejsu SMS Retriever API (Android)
Federacja tożsamości
Federacja tożsamości to kolejna opcja, która umożliwia użytkownikom bezpieczne i łatwe logowanie się. Dzięki federacji tożsamości witryny i aplikacje mogą umożliwiać użytkownikom logowanie się przy użyciu tożsamości dostarczonej przez zewnętrznego dostawcę tożsamości. Na przykład Zaloguj się przez Google zapewnia deweloperom wysoki współczynnik konwersji, a użytkownicy uważają, że jest to łatwiejsza i lepsza metoda uwierzytelniania niż uwierzytelnianie oparte na hasłach. Federacja tożsamości jest uzupełnieniem kluczy dostępu. Jest to świetne rozwiązanie do rejestracji, ponieważ witryna lub aplikacja może w jednym kroku uzyskać podstawowe informacje o profilu użytkownika. Klucze dostępu doskonale sprawdzają się natomiast w upraszczaniu ponownego uwierzytelniania.
Pamiętaj, że po wycofaniu przez Chrome plików cookie innych firm w 2024 r. niektóre systemy federacji tożsamości mogą zostać dotknięte w zależności od sposobu ich działania. Aby złagodzić ten wpływ, opracowywany jest nowy interfejs API przeglądarki o nazwie Federated Credential Management API (w skrócie FedCM). Jeśli jesteś dostawcą tożsamości, zapoznaj się ze szczegółami i sprawdź, czy musisz wdrożyć FedCM.
- Interfejs Federated Credential Management API (Web, FedCM)
- Omówienie logowania przez Google w internecie (Internet, logowanie przez Google)
- Omówienie logowania jednym dotknięciem na Androidzie (Android, logowanie jednym dotknięciem)
„Magiczne linki”
Logowanie za pomocą magicznego linku to metoda uwierzytelniania, w której usługa wysyła link do logowania w e-mailu, aby użytkownik mógł kliknąć go w celu uwierzytelnienia. Ułatwia to użytkownikom logowanie się bez konieczności zapamiętywania hasła, ale przełączanie się między przeglądarką lub aplikacją a klientem poczty może być uciążliwe. Mechanizm uwierzytelniania opiera się na adresie e-mail, więc słabe zabezpieczenia dostawcy poczty e-mail mogą narazić konta użytkowników na ryzyko.
Zasoby szkoleniowe
Sieć
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 bez hasła: artykuł, w którym omawiamy, jak umożliwić użytkownikom tworzenie kluczy dostępu do witryny.
- Logowanie się za pomocą klucza dostępu przez automatyczne wypełnianie formularza: artykuł omawiający, jak zaprojektować logowanie bez hasła za pomocą kluczy dostępu, aby uwzględnić użytkowników, którzy korzystają z haseł.
- Wdrażanie kluczy dostępu z autouzupełnianiem formularzy w aplikacji internetowej: kurs, z którego dowiesz się, jak wdrażać klucze dostępu z autouzupełnianiem formularzy w aplikacji internetowej, aby uprościć i zwiększyć bezpieczeństwo logowania.
- Pomóż użytkownikom skutecznie zarządzać kluczami dostępu: aby w pełni wykorzystać potencjał kluczy dostępu, należy dokładnie przemyśleć wrażenia użytkownika związane z zarządzaniem nimi. W tym dokumencie przedstawiamy wytyczne i opcjonalne funkcje dotyczące projektowania intuicyjnego, bezpiecznego i niezawodnego systemu zarządzania kluczami dostępu.
- Bezpieczne i łatwe w użyciu klucze dostępu: lista kontrolna wdrożenia: ta lista kontrolna przeprowadzi Cię przez kluczowe aspekty wdrażania kluczy dostępu, aby zapewnić optymalną wygodę użytkowników.
Android
Aby zintegrować klucze dostępu z aplikacją na Androida, użyj biblioteki Credential Manager. Więcej informacji znajdziesz w tych materiałach:
- Logowanie użytkownika za pomocą usługi Credential Manager: artykuł o tym, jak zintegrować usługę Credential Manager na Androidzie. Credential Manager to interfejs Jetpack API, który obsługuje wiele metod logowania, takich jak nazwa użytkownika i hasło, klucze dostępu oraz rozwiązania logowania federacyjnego (np. Zaloguj się przez Google) w ramach jednego interfejsu API.
- Wprowadzanie bezproblemowego uwierzytelniania w aplikacjach za pomocą kluczy dostępu przy użyciu interfejsu Credential Manager API: artykuł omawiający sposób integracji kluczy dostępu za pomocą Credential Manager na Androidzie.
- Dowiedz się, jak uprościć procesy uwierzytelniania za pomocą interfejsu Credential Manager API w aplikacji na Androida: dowiedz się, jak wdrożyć interfejs Credential Manager API, aby zapewnić bezproblemowe i bezpieczne uwierzytelnianie w aplikacji za pomocą kluczy dostępu lub haseł.
- Przykładowa aplikacja Menedżera danych logowania: przykładowy kod, który uruchamia Menedżera danych logowania obsługującego klucze dostępu.
- Integracja Menedżera danych logowania z rozwiązaniem dostawcy danych logowania | Android Developers
UX
Poznaj rekomendacje dotyczące wrażeń użytkowników kluczy dostępu: