Przewodnik integracji Keycloak: Logowanie przez platformy społecznościowe

Przewodnik integracji Keycloak: Logowanie przez platformy społecznościowe
Andrzej Chybicki: projekty związane z wykorzystaniem sztucznej inteligencji to znacząca część naszych projektów
Przewodnik integracji Keycloak: Logowanie przez platformy społecznościowe

 

W poprzedniej publikacji pokazaliśmy, jak wdrożyć niestandardowe motywy w Keycloak i jak mogą one pomóc w zapobieganiu atakom phishingowym. W tym razem skupimy się na tym, jak włączyć logowanie społecznościowe za pomocą Keycloak, przedstawiając krok po kroku integrację z platformami, takimi jak Google. Niezależnie od tego, czy chcesz uprościć uwierzytelnianie, czy zwiększyć bezpieczeństwo, ten wpis przeprowadzi Cię przez kluczowe kroki konfiguracji i zarządzania logowaniem społecznościowym w Twojej aplikacji.

 

Jak to działa

Ogólna idea logowania społecznościowego jest dość prosta jako koncept: kiedy użytkownicy uzyskują dostęp do naszej aplikacji, mogą wybrać dostawcę sieci społecznościowej, takiego jak Google lub Facebook, do uwierzytelnienia zamiast ręcznego definiowania loginów i haseł. Następnie aplikacja wysyła żądanie logowania do wybranej platformy, a po potwierdzeniu tożsamości użytkownika przez sieć społecznościową, użytkownik uzyskuje dostęp do aplikacji i jest natychmiast zalogowany.

  1. Użytkownik, który nie jest jeszcze uwierzytelniony, próbuje uzyskać dostęp do chronionego zasobu w aplikacji klienckiej. Aplikacja przekierowuje przeglądarkę do Keycloak, który działa jako pośrednik tożsamości, a następnie ponownie przekierowuje użytkownika do jednego z dostawców tożsamości.
  2. Na stronie logowania prezentowana jest lista dostępnych dostawców tożsamości (takich jak Google, Facebook itp.), zgodnie z konfiguracją danego realm’u.
  3. Użytkownik wybiera dostawcę tożsamości, po czym jest przekierowywany na stronę logowania wybranego dostawcy, gdzie może podać swoje dane uwierzytelniające. Konfiguracja dostawcy tożsamości, w tym właściwości połączenia, została wcześniej ustawiona przez administratora za pomocą konsoli administracyjnej.
  4. Po pomyślnym uwierzytelnieniu użytkownik zostaje przekierowany z powrotem do Keycloak z odpowiedzią uwierzytelniającą, co ostatecznie prowadzi do uzyskania tokenu dostępu. Keycloak weryfikuje tożsamość i tworzy nowego użytkownika lub pomija ten krok, jeśli użytkownik już istnieje
  5. Gdy Keycloak pomyślnie uwierzytelni użytkownika, wydaje swój własny token umożliwiający dostęp do chronionego zasobu i przekierowuje użytkownika z powrotem do aplikacji klienckiej.

 

Kluczowe zalety

  • Użytkownicy mogą zarejestrować się i uzyskać dostęp do Twojej aplikacji w zaledwie kilku kliknięciach. Aplikacje mogą korzystać z danych profilowych zamiast zmuszać użytkowników do ręcznego wprowadzania tych informacji w formularzach, co może przyspieszyć i uprościć proces rejestracji.
  • Logowanie społecznościowe zmniejsza ryzyko korzystania ze słabych haseł i oferuje zaawansowane funkcje bezpieczeństwa, takie jak uwierzytelnianie wieloskładnikowe (MFA). W wielu aplikacjach użytkownicy często nie aktualizują swoich profili, jednak zazwyczaj dbają o to, aby ich dane były aktualne w sieciach społecznościowych. Dlatego po wdrożeniu logowania społecznościowego możemy założyć, że dane użytkowników, które zbieramy, są wiarygodne, ponieważ pochodzą bezpośrednio z ich regularnie aktualizowanych profili.
  • Dostawcy sieci społecznościowych często oferują dodatkowe dane użytkownika, takie jak lokalizacja, zainteresowania i inne informacje wykraczające poza podstawowe dane profilowe. Dzięki temu możemy skuteczniej dostarczać użytkownikom spersonalizowane treści, co pozwala na bardziej ukierunkowane interakcje i rekomendacje treści.
  • Dostawca sieci społecznościowej jest również odpowiedzialny za weryfikację adresu e-mail użytkownika. Jeśli dostawca udostępnia te informacje, otrzymujemy prawidłowy adres e-mail, a nie potencjalnie fałszywe, które użytkownicy mogą podać podczas rejestracji w aplikacjach internetowych. Ponadto dostawca zarządza procesem odzyskiwania hasła, co zmniejsza potrzebę zajmowania się tym aspektem przez Twoją aplikację, upraszczając zarządzanie użytkownikami.Dane zazwyczaj pokazują poprawę w konwersji, a w niektórych przypadkach bardzo znaczący wzrost. W artykule przygotowanym przez zespół marketingowy Auth0 stwierdzono, że logowanie społecznościowe może zwiększyć wskaźnik rejestracji nawet o 50%.

Nasze doświadczenie w rozwijaniu DocsQuality pozwala nam wierzyć w zasadność tych założeń. Po wdrożeniu logowania za pomocą mediów społecznościowych zaobserwowaliśmy kilkukrotny wzrost liczby nowych użytkowników.

 

Potencjalne wady 

Rozważając metody logowania społecznościowego w Keycloak, warto przemyśleć ich potencjalne wady, które przyczyniły się do zauważalnego spadku ich popularności w ostatnim czasie. Oto kilka kluczowych obaw:

  • Chociaż dość rzadkie, istnieje ryzyko, że logowanie społecznościowe może stać się jednym punktem awarii. Jeśli dane logowania do mediów społecznościowych użytkownika zostaną skompromitowane, hakerzy mogą potencjalnie uzyskać dostęp do Twojej platformy oraz powiązanych kont.
  • Użytkownicy często martwią się o to, jak platformy mediów społecznościowych zarządzają ich danymi. To zaniepokojenie może sprawić, że będą niechętni do udzielania dodatkowym aplikacjom dostępu do swoich informacji, co może prowadzić do mniejszego wykorzystania funkcji logowania społecznościowego.
  • Protokoły logowania społecznościowego, takie jak OpenID Connect, są otwarte i interoperacyjne, ale ich wdrożenie może być wyzwaniem. Nawet doświadczeni programiści mogą uznać integrację tych standardów za czasochłonną i złożoną.

Aby zaradzić tym obawom, ważne jest promowanie dobrych praktyk bezpieczeństwa w mediach społecznościowych wśród użytkowników. Zachęcanie do stosowania silnych, unikalnych haseł oraz dwuskładnikowego uwierzytelniania dla kont w mediach społecznościowych. Może to pomóc w zminimalizowaniu ryzyka i zwiększyć bezpieczeństwo metod logowania. Na szczęście, ostatni aspekt jest w dużej mierze rozwiązany przez Keycloak, który upraszcza wdrażanie tych protokołów. Dlatego w naszym przykładzie skupimy się na wykorzystaniu Keycloak do uproszczenia procesu logowania społecznościowego.

 

Tu zaczynamy

W tym przykładzie użyjemy aplikacji, którą przygotowaliśmy w poprzednim wpisie na blogu, w którym dostosowaliśmy motywy. Początkowy widok wygląda następująco:

Teraz możesz zalogować się do jednej z konsol dostawców tożsamości, takich jak GitHub w tym przypadku.

Przejdź do   Settings -> Developer settings -> OAuth Apps. Kliknij New OAuth App i wypełnij niezbędne informacje:

– Nazwa aplikacji (Application Name)
– URL strony głównej (Homepage URL)
– URL przekierowania autoryzacji (Authorization callback URL)

Ostatni adres powinien mieć format:<your-keycloak-domain>/auth/realms/<your-realm>/broker/github/endpoint.. Do celów testowych spróbujemy skonfigurować środowisko lokalne, używając portów 4200 i 8080. Po wypełnieniu formularza kliknij Register Application. GitHub wygeneruje Client ID oraz Client Secret.

Teraz przejdź do konsoli administracyjnej Keycloak. W wybranym realmie, nawiguj do sekcji Identity Providers z menu po lewej stronie. Z rozwijanego menu Add provider wybierz GitHub.

Wklej Client ID oraz Client Secret, które otrzymałeś od GitHub. Jeśli to konieczne, wybierz dodatkowe opcje, takie jak przechowywanie tokenów wydanych przez dostawcę (na przykład w celu dalszych zapytań do zasobów akceptujących ten token), automatyczna weryfikacja adresów e-mail lub inicjowanie określonego przepływu uwierzytelnienia po pomyślnym logowaniu. Po włączeniu dostawcy logowania społecznościowego w konsoli, strona logowania powinna wyglądać tak:

Po kliknięciu przycisku GitHub powinniśmy zobaczyć standardowe żądanie autoryzacji OAuth. Dzięki temu dostawcy logowania społecznościowego, tacy jak GitHub, mogą oznaczyć tę aplikację jako zweryfikowaną i automatycznie zezwalać na dalsze próby logowania w przyszłości.

Po zatwierdzeniu autoryzacji powinniśmy zostać przekierowani z powrotem do aplikacji.

Podsumowując

Przeszliśmy przez cały proces rejestracji dostawcy tożsamości w Keycloak, i jak widać, jest to dość proste. Jest to również świetny punkt wyjścia do dalszej nauki funkcji protokołu OAuth, obsługi niestandardowych dostawców tożsamości oraz wdrażania rozwiązań Single Sign-On (SSO), które być może omówimy w kolejnych wpisach.

Takie podejście nie tylko upraszcza proces rejestracji i zwiększa bezpieczeństwo, ale także zapewnia spójny i łatwy do zarządzania sposób łączenia się z różnymi platformami. Chociaż każdy dostawca może mieć specyficzne niuanse konfiguracyjne, cały proces konfiguracji pozostaje prosty i w dużej mierze podobny na różnych stronach internetowych. Dzięki zmniejszeniu barier wejścia dla użytkowników oraz efektywnemu, nowoczesnemu zarządzaniu uwierzytelnieniem, Keycloak umożliwia płynniejsze i bezpieczniejsze doświadczenie użytkownika.