• sso
  • authentication
  • identity

Dlaczego jednokrotne logowanie (SSO) jest lepsze

Jednokrotne logowanie (SSO) to świetny sposób na uproszczenie modelu uwierzytelniania i poprawę doświadczenia użytkownika dla każdej aplikacji. Oto dlaczego.

Gao
Gao
Founder

Jednokrotne logowanie (SSO) to technologia, która pozwala użytkownikom na jednokrotne uwierzytelnienie i dostęp do wielu aplikacji. Jeśli masz tylko jedną aplikację, może to brzmieć jak przesada. Jednak rozpoczęcie od SSO od samego początku może zaoszczędzić mnóstwo problemów w przyszłości, a wdrożenie SSO jest łatwiejsze, niż myślisz.

Zanim zaczniemy, musimy zaznaczyć, że są dwa rodzaje SSO:

  • Pierwszy rodzaj to sytuacja, gdy masz wiele aplikacji, które dzielą tę samą bazę użytkowników. To ten rodzaj SSO, który omawiamy w tym artykule.
  • Drugi rodzaj to sytuacja, gdy twój klient ma scentralizowanego dostawcę tożsamości (IdP) i musisz się z nim zintegrować. Jest to poza zakresem tego artykułu.

Dlaczego SSO?

Uproszczenie modelu uwierzytelniania

Najbardziej oczywistą zaletą SSO jest to, że upraszcza ono model uwierzytelniania. Wyobraź sobie, że zaczynasz od sklepu internetowego, początkowy model uwierzytelniania jest prosty:

W miarę rozwoju firmy, decydujesz się dodać aplikację do zarządzania sklepem, aby umożliwić właścicielom sklepów zarządzanie ich sklepami. Teraz masz dwie aplikacje, które muszą uwierzytelniać użytkowników.

Oto kilka wyborów, które masz:

1. Możesz stworzyć osobną bazę użytkowników dla aplikacji do zarządzania sklepem.

To najprostsze rozwiązanie, ale oznacza, że musisz wdrożyć proces uwierzytelniania dla aplikacji do zarządzania sklepem, a użytkownicy muszą założyć nowe konto, aby korzystać z aplikacji.

2. Możesz użyć tej samej bazy użytkowników dla obu aplikacji.

To lepsze rozwiązanie, ponieważ użytkownicy nie muszą tworzyć nowego konta. Jednak nadal musisz wdrożyć proces uwierzytelniania dla aplikacji do zarządzania sklepem.

3. Możesz użyć SSO.

To najlepsze rozwiązanie do tej pory. Nie musisz wdrażać kolejnego procesu uwierzytelniania, a użytkownicy nie muszą tworzyć nowego konta dla aplikacji do zarządzania sklepem. Ponadto, możesz dodać więcej aplikacji i metod logowania bez zmiany modelu uwierzytelniania lub doświadczenia użytkownika.

Poprawa doświadczenia użytkownika

SSO poprawia doświadczenie użytkownika na dwa sposoby:

  • Użytkownicy mogą udostępniać to samo konto w wielu aplikacjach.
  • Po zalogowaniu się w jednej aplikacji, nie muszą logować się ponownie w innych aplikacjach na tym samym urządzeniu.

Mogą pojawić się pewne obawy, ale wszystkie są do rozwiązania.

1. Jak rozróżniać aplikacje?

Jednokrotne logowanie nie oznacza, że traktujemy wszystkie aplikacje tak samo. W dobrze znanym otwartym standardzie OpenID Connect, każda aplikacja nazywana jest klientem, a przepływy uwierzytelniania różnią się w zależności od rodzaju klienta. Choć użytkownicy końcowi nie muszą znać różnicy, rodzaj klienta jest ważny dla serwera uwierzytelniania do określenia przepływu uwierzytelniania.

2. Co jeśli użytkownicy nie chcą udostępniać tego samego konta?

To uzasadniona obawa, ale nie problem z SSO. Jeśli użytkownicy nie chcą udostępniać tego samego konta, mogą utworzyć nowe konto dla nowej aplikacji. Kluczowe jest umożliwienie użytkownikom wyboru.

3. Co jeśli muszę ograniczyć dostęp do niektórych aplikacji?

W rzeczywistości, SSO to technika do uwierzytelniania, podczas gdy kontrola dostępu dotyczy autoryzacji. SSO można rozdzielić od kontroli dostępu. Na przykład, możesz użyć SSO do uwierzytelnienia użytkowników, a następnie użyć kontroli dostępu opartej na rolach (RBAC) do ograniczenia dostępu do określonych aplikacji lub zasobów.

Aby dowiedzieć się więcej o uwierzytelnianiu i autoryzacji, sprawdź CIAM 101: Uwierzytelnianie, tożsamość, SSO.

4. SSO wymaga przekierowania użytkowników do serwera uwierzytelniania.

Przekierowanie to standardowa praktyka dla uwierzytelniania. Biorąc pod uwagę doświadczenie użytkownika, możemy wykorzystać wiele technik, aby zredukować tarcie:

  • Użyj tokenów odświeżania, aby zmniejszyć częstotliwość uwierzytelniania.
  • Zainicjalizuj proces uwierzytelniania z konkretną metodą logowania, taką jak Google czy Facebook, aby zmniejszyć liczbę kliknięć.
  • Wykorzystaj ciche uwierzytelnianie, aby przyspieszyć proces uwierzytelniania.

Zwiększenie bezpieczeństwa

1. Centralne miejsce dla wszystkich operacji związanych z bezpieczeństwem

SSO pozwala zarządzać wszystkimi operacjami związanymi z bezpieczeństwem w jednym, centralnym miejscu. Na przykład, jak już wspomniano w poprzedniej sekcji, SSO nadal może rozróżniać aplikacje i stosować specyficzne dla platformy przepływy uwierzytelniania dla każdej aplikacji. Bez SSO musisz wdrożyć różnorodne przepływy uwierzytelniania w zależności od rodzaju aplikacji.

Dodatkowo, zaawansowane funkcje bezpieczeństwa, takie jak uwierzytelnianie wieloskładnikowe (MFA), są łatwiejsze do wdrożenia z SSO bez komplikowania modelu uwierzytelniania.

2. Zredukowana powierzchnia ataku

W teorii SSO redukuje powierzchnię ataku, ponieważ musisz zabezpieczyć tylko jeden serwer uwierzytelniania zamiast wielu aplikacji. Centralne podejście również ułatwia monitorowanie i wykrywanie podejrzanych działań.

3. Sprawdzone standardy i protokoły

Otwarte standardy i protokoły, takie jak OpenID Connect i OAuth 2.0, są szeroko stosowane w branży i były testowane przez lata. Oba wpisują się w koncepcję SSO i są wspierane przez większość dostawców tożsamości (IdPs). Dzięki połączeniu tych standardów z SSO można mieć bezpieczny i niezawodny system uwierzytelniania.

OK, wdrażajmy SSO

Wdrożenie SSO może być duże i skomplikowane, jest wiele rzeczy do rozważenia, takich jak:

  • Zgodność ze standardami i protokołami
  • Przepływy uwierzytelniania dla różnych typów klientów
  • Wiele metod logowania
  • Funkcje bezpieczeństwa, takie jak MFA
  • Doświadczenie użytkownika
  • Kontrola dostępu

Każdy z tych tematów może być osobnym artykułem i przytłaczający. Dla uproszczenia, lepiej zacząć od usługi zarządzanej, która zapewnia SSO od razu. Nasz produkt Logto jest taką usługą i zajmie Ci tylko kilka minut, aby zintegrować go z Twoją aplikacją.

Jednym z najczęstszych obaw związanych z korzystaniem z usługi zarządzanej jest uzależnienie od dostawcy. Na szczęście nie jest to problemem z Logto. Logto jest zbudowany na bazie OpenID Connect i OAuth 2.0, i jest open-source od początku. Priorytetem jest zapewnienie naszym klientom pewności i dążymy do tego, aby dać Ci wolność wyboru.