Systemy chmury obliczeniowej PaaS, takie jak CloudPortal, umożliwiają przyśpieszenie procesu wdrażania dużej liczby aplikacji oraz zapewniają elastyczne środowisko developerskiego dla zaawansowanych projektów informatycznych. W obu przypadkach klient chmury otrzymuje możliwość korzystania z  panelu zarządzania swoimi zasobami, dostęp do usług (MongoDB, Mysql, Riak) wspierających jego aplikacje i narzędzia do implementacji aplikacji opartych na różnych frameworkach. W przypadkach kiedy infrastruktura klienta staje się bardzo rozbudowana i opiera się na wielu komponentach, często konieczne jest rozbudowywanie sieci poświadczeń, służących do zarządzania poszczególnymi składowymi środowiska aplikacyjnego. Jednym z rozwiązań służących dla rozwiązania tego problemu, które oferuje CloudPortal, jest udostępnienie zintegrowanej usługi uwierzytelniania. Jej celem jest zarządzanie kontami korzystającymi z zasobów chmury oraz uproszczenie procesu uwierzytelniania pomiędzy aplikacjami w organizacji klienta przez implementację funkcjonalności SSO (Single Sign On).

Środowisko CloudPortal i serwer uwierzytelniania umożliwiają wdrożenie mechanizmów, przy pomocy których użytkownik chmury może za pomocą jednego loginu uzyskać dostęp zarówno do panelu zarządzania swoją organizacją, jak i do paneli zarządzania swoimi usługami i samych aplikacji, które zaimplementował w chmurze. Dla spełnienia tych założeń w przypadku CloudPortal są wymagane poszczególne komponenty:

  • baza danych użytkowników (dane klientów we własnej bazie lub korzystanie z zewnętrznych usług LDAP, np. Active Directory);
  • niezależna od aplikacji klienckich i oparta na standardach warstwa autoryzacji (CloudPortal implementuje te mechanizmy w oparciu o standard OAuth2);
  • aplikacja logowania, która udostępnia standardowy formularz logowania SSO dla wszystkich żądań poświadczenia tożsamości;
  • odpowiednio przygotowane aplikacje i panele zarządzania usługami, które dzięki powszechnie dostępnym bibliotekom klienckim OAuth2 mogą wykorzystywać zewnętrzną usługę dla autoryzacji użytkowników.

W typowym scenariuszu OAuth2 opartym na CloudPortal koniczne są cztery elementy:

  • aplikacja kliencka (zazwyczaj aplikacja webowa), która została zarejestrowana na serwerze autoryzacji,
  • serwer zasobów,
  • serwer autoryzacji,
  • właściciel zasobów (zazwyczaj użytkownik).

Proces uzyskiwania dostępu do aplikacji przebiega w opisany poniżej sposób.

  1. · Użytkownik wchodzi na stronę aplikacji, która jest skonfigurowania z mechanizmem autoryzacji OAuth2. Wymusza to uwierzytelnienie. Aplikacja przekierowuje przeglądarkę klienta do punktu autoryzacji, wraz z dołączonymi informacjami poświadczającymi tożsamość aplikacji (client_id) i adresie aplikacji (redirect_url). Opcjonalnie aplikacja dołącza informację o wymaganym zakresie uprawnień dla klienta (scopes).
  2. Serwer autoryzacji uwierzytelnia użytkownika – po przekierowaniu do formularza logowania użytkownik musi potwierdzić zakres uprawnień wymaganych przez aplikację. Po wprowadzeniu poświadczeń i uwierzytelnieniu, klient jest przekierowany do punktu autoryzacji wraz z uwierzytelniającym cookie.
  3. Jeśli użytkownik na serwerze logowania przeszedł pozytywnie proces uwierzytelniania zostanie przekierowany na adres podany przez aplikację (redirect_url). W nagłówku Location zostaje przekazany kod autoryzacji.
  4.  Aplikacja kliencka powinna wystąpić o token dostępowy w usłudze tokenów (Token Endpoint), przez przekazanie kodu autoryzacji uzyskanego w poprzednim kroku. Podczas żądania tokenu, aplikacja powinna uwierzytelnić się, poprzez przekazanie identyfikatora aplikacji (client_id) i hasła (secret). Serwer autoryzacji weryfikuje, czy przekazany identyfikator odpowiada identyfikatorowi dla którego został wystawiony kod autoryzacji. Aplikacja powinna również podać redirect_url, wymagany dla otrzymania weryfikacji kodu autoryzacji.
  5. Serwer autoryzacji weryfikuje tożsamość użytkownika, sprawdza poprawność kodu autoryzacji i upewnia się, że otrzymany adres przekierowania (redirect_url) jest zgodny z tym, który był wykorzystany przy udzielaniu kodu autoryzacji. Jeżeli wszystkie warunki są spełnione, UAA odpowiada aplikacji poprzez udzielenie tokenów dostępowych.

Jeżeli mamy do czynienia z aplikacjami webowymi, które posiadają interface użytkownika, możemy korzystać z serwera logowania CloudPortal udostępniającego webowy formularz logowania SSO. Sam proces autoryzacji nie jest jednak ograniczony tylko do aplikacji webowych i można go używać w innych aplikacjach, które mogą komunikować się z odpowiednimi webowymi usługami autoryzacji.

 

Dotacje na innowacje. Inwestujemy w waszą przyszłość
Dotacje na innowacje. Inwestujemy w waszą przyszłość