Wypowiedź eksperta

 

Single Sign-On – mechanizm pojedynczego logowania 

 

 

 

Nie da się dziś uciec od pracy w wielu systemach i aplikacjach. Z jednej strony różnorodne aplikacje ułatwiają nam codzienne obowiązki, z drugiej – logowanie się do każdej z nich oddzielnie stanowi pewną niedogodność – trzeba zapamiętać kilka, a nawet kilkanaście loginów i haseł. Wymyślono już sposób na rozwiązanie tego problemu, jest nim Single Sign-On (SSO), czyli pojedyncze logowanie. Pozwala ono dzięki jednorazowemu logowaniu na dostęp do wszystkich systemów i aplikacji zainstalowanych na naszym komputerze oraz na zdalnych serwerach, do których mamy uprawnienia.

q

Naturalną cechą systemów informatycznych jest ich rozwój. Działalność biznesowa „wymusza” na nich tworzenie nowych funkcjonalności i rozszerzanie wachlarza dostępnych danych, często poprzez tworzenie nowych usług. W związku z tym automatycznie pojawia się potrzeba weryfikacji autentykacji osób korzystających z wielu usług, jak i autoryzacji dostępu do przechowywanych danych. Dane najczęściej chronione są zgodnie z określoną polityką zabezpieczeń specyficzną dla danej usługi. Wymusza to na użytkowniku przechodzenie poprzez osobne procesy uwierzytelniania dla każdej aplikacji, co stanowi dyskomfort codziennej pracy.

 

Ciągle zwiększająca się liczba kont i haseł potrzebna do codziennej pracy „zachęca” pracownika do uproszczenia swoich haseł lub zapisania ich w ogólnodostępnym, a co za tym idzie niechronionym miejscu. Taki kierunek działania byłby niebezpieczny dla wrażliwych danych przechowywanych przez systemy i byłby niezgodny z polityką bezpieczeństwa każdego systemu.

 

Odpowiedzią na tego rodzaju zagrożenia jest Single Sign On (SSO). Single Sign-On (pojedyncze logowanie) – to właściwość aplikacji lub systemów, w których dostęp do części poszczególnych modułów (usług), które wymagają autentykacji i autoryzacji, możliwy jest po jednokrotnym potwierdzeniu tożsamości użytkownika.

 

Single Sign On rozwiązuje problem logowania się do wielu aplikacji oraz usług niezbędnych w codziennej pracy. Uprawniony użytkownik poprzez jednorazowe zalogowanie się do usługi uzyskuje dostęp do wszystkich zasobów (usług) autoryzowanych przez tę usługę. Wylogowanie z jednej usługi powoduje automatyczne wylogowanie ze wszystkich pozostałych usług. Dodatkowymi korzyściami z wprowadzenia SSO są: jedna elastyczna, przejrzysta polityka bezpieczeństwa oraz jeden centralny system zarządzania tożsamością. A z tym wiąże się intuicyjność, ergonomia rozwiązania oraz ograniczenie kosztów zarządzania, konserwacji i utrzymania systemu zabezpieczeń.

 

Uproszczony proces autoryzacji i autentykacji przedstawia poniższy rysunek.

Rysunek 1. Uproszczony proces autoryzacji i autentykacji

Logowanie poprzez przeglądarkę internetową (kolor czerwony):

  1. Użytkownik próbuje się zalogować do części systemu webLsp wymagającej autoryzacji. Aplikacja wymusza przekierowanie serwera autentykacji i autoryzacji (KeyCloak);
  2. Serwer autentykacji i autoryzacji (KeyCloak) weryfikuje tożsamość użytkownika (o ile nie było wcześniej weryfikacji w danej sesji), tworzy podpisany token i przekazuje go do przeglądarki;
  3. Przeglądarka przekazuje otrzymany token do wcześniej żądanej aplikacji;
  4. Aplikacja weryfikuje otrzymany token poprzez komunikację z serwerem autoryzacji i autentykacji, a pośrednio poprzez serwer active directory (a);
  5. Przeglądarka przekazuje otrzymany token drugiej aplikacji;
  6. Druga aplikacja weryfikuje otrzymany token. Użytkownik uzyskuje dostęp do zasobów tej aplikacji.

 

Logowanie z użyciem protokołu Kerberos poprzez logowanie do systemu operacyjnego (kolor niebieski):

  1. Użytkownik loguje się do systemu operacyjnego stacji roboczej, system operacyjny uzyskuje token z active directory;
  2. Aplikacja Leo pobiera token z sytemu operacyjnego i przekazuje go do serwera autoryzacji i autentykacji (KeyCloak). Serwer autentykacji i autoryzacji (KeyCloak) weryfikuje tożsamość użytkownika poprzez komunikację z active directory, tworzy podpisany token i przekazuje go do aplikacji Leo. Aplikacja Leo weryfikuje autoryzację użytkownika;
  3. Użytkownik (zalogowany do systemu operacyjnego) próbuje się zalogować do części systemu webLsp wymagającej autoryzacji. Aplikacja wymusza przekierowanie serwera autentykacji i autoryzacji (KeyCloak), przesyłając token kerberosa (active directory);
  4. Serwer autentykacji i autoryzacji (KeyCloak) weryfikuje tożsamość użytkownika (o ile nie było wcześniej weryfikacji w danej sesji) na podstawie tokena Kerberosa, tworzy podpisany token i przekazuje go do przeglądarki;
  5. Przeglądarka przekazuje otrzymany token do wcześniej żądanej aplikacji;
  6. Aplikacja weryfikuje otrzymany token poprzez komunikację z serwerem autoryzacji i autentykacji, a pośrednio poprzez serwer active directory (b);
  7. Przeglądarka przekazuje otrzymany token drugiej aplikacji;
  8. Druga aplikacja weryfikuje otrzymany token. Użytkownik uzyskuje dostęp do zasobów tej aplikacji.

 

Protokół komunikacji weryfikacji tożsamości i autoryzacji oparty jest o certyfikaty X509 oraz komunikację SSL. Podpisane poświadczenia zapewniają odpowiedni poziom zabezpieczeń dla całego systemu.

 

Wymierna redukcja kosztów zarządzania bezpieczeństwem oraz przejrzysty system polityki bezpieczeństwa zapewne zachęci zarówno osoby decyzyjne jak i użytkowników do przejścia na wyższy, bezpieczniejszy poziom zarządzania jakością polityki bezpieczeństwa.

 

autor: Grzegorz Błaszczyk