Strona główna > Journal > Azure AD B2C. Jak sprawdza się jako system zarządzania tożsamością
Journal

Azure AD B2C. Jak sprawdza się jako system zarządzania tożsamością

Oceń artykuł:

Usługa Azure Active Directory (Azure AD) wchodzi w skład usług cloudowych Azure Cognitive Service od Microsoftu. Azure AD B2C, którego specyfikę przybliżę, pozwala na wyoutscource’owanie obsługi tożsamości użytkowników dla firmy, aplikacji webowych i mobilnych.

Tworzenie własnych mechanizmów autoryzacji rozproszonej wydaje się dziś zwykłym marnotrawstwem czasu i pieniędzy. Naprzeciw temu wychodzi Azure AD B2C.

Azure AD B2C zapewnia funkcje logowania jednokrotnego i uwierzytelniania wieloskładnikowego. Przyjrzymy się temu rozwiązaniu z punktu widzenia projektowania UX, a dokładniej przepływu użytkowników.

Azure AD jako część usługi cloud Microsoftu

Na wstępie należy zaznaczyć, iż Azure AD B2C bazuje na dojrzałej i sprawdzonej technologii Microsoft Active Directory znanej w środowisku administratorów sieciowych od 1999 roku. Jak każda dojrzała technologia, ma ona swoje mocne i słabe strony.

W mojej ocenie do słabych stron możemy zaliczyć przede wszystkim pewien brak elastyczności (zresztą jak w większości technologii firmy z Redmont). W odróżnieniu od klasycznej usługi AD (nawet w wersji cloud) B2C charakteryzuje się głównie dostosowaniem do realiów aplikacji SaaS w postaci pełnej obsługi OpenID.

Azure AD B2C obsługuje ponad 2800 wstępnie zintegrowanych aplikacji w modelu oprogramowanie jako usługa (SaaS). Postanowiłem sprawdzić, jak w rzeczywistości wypada narzędzie od Microsoftu, które pozwala na zarządzanie tożsamością.

Azure AD.
Pamiętajmy, że nasze produkty powinny być od początku tworzone w oparciu o ideę secure by design.| Fot. piqsels.com

Usługa Azure AD: pierwsze logowanie

Jeżeli adoptujemy technologię w już istniejącej aplikacji, szczególnie w wydaniu monolitowym, bez obsługi OAuth2, to musimy przygotować się do zmiany we flow autentyfikacji i autoryzacji w naszej aplikacji.

SaaS (Software as a service, oprogramowanie jako usługa) – jeden z modeli chmury obliczeniowej. Działa tak, że aplikacja jest przechowywana i wykonywana na komputerach dostawcy usługi, a udostępnia się ją użytkownikom przez internet.

W przypadku nowych produktów sugeruję od samego początku dostosować się do założeń flow Azure AD B2C. Unikniecie w ten sposób niepotrzebnych nakładów pracy i opóźnień związanych z próbą zmiany zachowań rozwiązania cloud.

Pierwszym problemem, który napotkałem podczas analizy, jest ograniczona możliwość personalizacji poszczególnych elementów usługi.

Azure AD a domena

Użytkownik loguje się do systemu przechodząc do dedykowanej strony logowania Azure AD.

OpenID – pozwala na rozwiązanie problemu dystrybucji składników tożsamości użytkownika (np. imię i nazwisko, e-mail) pomiędzy wieloma serwisami webowymi.

Dużym zaskoczeniem było dla mnie to, że nie ma obecnie możliwości zmiany domeny, na którą natkną się użytkownicy w trakcie procesu autoryzacji. Innymi słowy, zamiast trafiać na „domenamojegoproduktu.com”, trafią pod inny adres URL.

W mojej ocenie może zostać to negatywnie odebrane przez świadomego użytkownika. Szybki rzut oka na społeczności użytkowników Azure AD pokazał mi, że nie jestem odosobniony w negatywnej ocenie.

Usługa Azure AD: adresy mailowe i treść wiadomości automatycznych

Na różnych etapach procesu autoryzacji może pojawić się potrzeba wysłania maila albo SMS-a do użytkownika. Azure AD niestety nie pozwala na personalizację adresów tych maili ani szablonów wiadomości.

W obecnej rzeczywistości jest to dość dziwne podejście do tematu. Rodzi ono komplikacje w zakresie spójności brandingu i komunikacji zewnętrznej docelowego rozwiązania.

Pojawiło się także kilka mniejszych problemów dotyczących niezgodności z założonym flow, o których piszę poniżej.

Azure ad b2b wpływa pozytywnie na poziom zabezpieczeń.
Azure AD B2B wpłynie bardzo pozytywnie na poziom zabezpieczeń wielu aplikacji webowych i mobilnych. | Fot. Pxfuel.com

Własna logika uwierzytelniania wieloskładnikowego (Multi-Factor Authentication)

Rejestracja drugiego składnika uwierzytelniania odbywa się podczas pierwszego logowania do systemu, nie zaś podczas rejestracji. Jest to podyktowane wymogami bezpieczeństwa i wynika z powszechnych wektorów ataków.

Developer nie ma wpływu na stopień skomplikowania kodów autoryzacyjnych. Nie mam też pełnych informacji o dostępności możliwości używania uwierzytelniania SMS poza USA i Kanadą.

Azure AD a własna logika blokowania kont (smart locking)

Przejdźmy do kwestii logowania się i zabezpieczenia. Jako usługa cloudowa Azure AD posiada zaawansowaną logikę blokowania kont na podstawie wykrycia niepożądanego zachowania. Administrator może konfigurować wyłącznie podstawowe parametry tego mechanizmu.

Chodzi o ilość niepoprawnych prób logowania oraz czas, na który zostanie zablokowane konto po przekroczeniu ustalonej liczby niepoprawnych logowań. Dodam, że admin nie ma możliwości odblokowania zablokowanego konta – operację tę może wykonać tylko sam użytkownik podczas procesu resetu hasła.

Jest to podyktowane wymogami bezpieczeństwa, a administrator nie ma bezpośredniego wpływu na algorytmy tego mechanizmu.

Usługa Azure AD: RBAC

RBAC (role-based access control) – kontrola dostępu oparta na rolach. Ułatwia ona zarządzanie osobami mającymi dostęp do zasobów platformy Azure czy czynnościami, które takie osoby mogą wykonywać.

Do niewątpliwych zalet usługi zaliczam też całą maszynerię związaną z autoryzacją działań użytkowników. Podobne rozwiązania zazwyczaj skupiają się wyłącznie na autoryzacji użytkownika, a określenie poziomów dostępu i RBAC leży już w gestii aplikacji i programistów.

Usługa Azure AD B2C daje w tym zakresie ogromne możliwości – nie udało mi się wymyślić scenariusza testowego bądź przypadku użycia, którego nie byłbym w stanie zrealizować za pomocą systemu ról Azure AD B2C. Zarządzanie rolami jest intuicyjne, w pełni modyfikowalne i skalowalne oraz dostępne na poziomie API rozwiązania.

API (Application Programming Interface) – zestaw reguł, które definiują komunikację pomiędzy programami komputerowymi.

Logowanie Azure: bezpieczeństwo rodem z cloud

Główną zaletą Azure AD B2C (jak i innych rozwiązań typu cloud) jest oczywiście bardzo wysoki poziom bezpieczeństwa, nieporównywalnie większy, niż w jakimkolwiek innym systemie autoryzacji dostarczanym domyślnie z frameworkami programistycznymi.

Framework (platforma programistyczna) – szkielet do budowy aplikacji, który dostarcza niezbędne biblioteki i komponenty, a także definiuje strukturę i działanie danej „apki”.

ISO/IEC 27001 – ogłoszona 14 października 2005 r. norma międzynarodowa, która standaryzuje systemy zarządzania bezpieczeństwem informacji.

Jeżeli zależy nam na bezpieczeństwie danych naszych użytkowników, chcemy spełniać najlepsze standardy branżowe w zakresie bezpieczeństwa (ISO 27001), to zdecydowanie powinniśmy wybrać tego rodzaju rozwiązanie.

Azure AD kupimy w różnych planach cenowych.

Azure AD dostępny jest w kilku planach cenowych.| Fot. commons.wikimedia.org

Azure AD a mikrousługi

Według mnie w erze aplikacji opartych o mikrousługi i wszelakiego rodzaju PaaS pisanie własnych mechanizmów autoryzacji rozproszonej bez bardzo mocnego uzasadnienia biznesowego jest zwykłym marnotrawstwem.

Pamiętajmy, że w dobie RODO (GDPR), wysokiego zagrożenia i wiedzy cyberprzestępców, szpiegostwa przemysłowego i coraz wyższej świadomości użytkowników w zakresie ochrony swoich danych osobowych nasze produkty powinny być tworzone od początku w oparciu o ideę secure by design.

PaaS (Platform as a service, platforma jako usługa) – jeden z modeli chmury obliczeniowej. To usługa pozwalająca na udostępnienie przez dostawcę wirtualnego środowiska pracy; stworzono ją głównie z myślą o programistach.

Usługi typu Microsoft Azure AD B2C są bardzo mocnymi narzędziami, które pozwolą realizować te założenia jak najmniejszym kosztem, nawet w małych projektach programistycznych.

Na ile bezpieczne jest logowanie się dzięki Azure AD?

Szeroki zakres narzędzi monitorujących i audytu bezpieczeństwa sprawiają, że usługa Azure AD B2C daje pełną kontrolę nad krytyczną częścią naszej aplikacji, jaką jest system użytkowników i uprawnień. Pamiętajmy, że stworzenie pierwszej iteracji aplikacji to tylko początek długiej drogi życia każdego projektu programistycznego.

W dalszych częściach cyklu życia produktu kluczowe jest zapewnienie ciągłości obsługi naszych użytkowników, dbanie o integralność ich danych, a także raportowanie wszystkich naruszeń bezpieczeństwa. Tymczasem większość właścicieli biznesów nie zdaje sobie sprawy z komplikacji, które wynikają z obowiązku informacyjnego RODO (GDPR).

Gdy tylko dojdzie do krytycznej sytuacji, bez dobrych i rozbudowanych narzędzi raportujących i mechanizmu audytu bezpieczeństwa jesteśmy narażeni na ogromne straty finansowe i wizerunkowe, które mogą doprowadzić nawet do likwidacji biznesu (szczególnie w początkowych fazach istnienia).

Azure Active Directory | Microsoft Azure Tutorial for Beginners | Azure 70-533 Training | Edureka

Platformy Azure w dowolnym przedsiębiorstwie

Microsoft Active Directory B2C jest dojrzałym i sprawdzonym rozwiązaniem, które na pewno wpłynie bardzo pozytywnie na poziom zabezpieczeń wielu aplikacji webowych i mobilnych. Jest ono relatywnie proste w implementacji przez każdej wielkości zespół developerski.

Niestety, jak w wypadku większości rozwiązań z Redmond, okazuje się nieco „kanciaste” i momentami toporne. Jeżeli nie zależy nam bardzo na szerokiej customizacji brandingowej procesu rejestracji i logowania użytkowników, lubimy podejście Microsoft bądź korzystamy z innych rozwiązań w ramach Azure, to śmiało możemy wchodzić w tę technologię.

AWS Cognito – podobnie jak Azure AD, pozwala na uwierzytelnianie użytkownika w aplikacjach mobilnych i webowych.

Jako alternatywę z bardziej szerokim wachlarzem możliwości dostosowywania UX (oraz z powodu preferencji osobistych) sugeruję rozważyć i przeanalizować AWS Cognito.

Usługa Azure AD B2C jest bezpłatna przez pierwszy miesiąc (przy 50 000 aktywnych użytkowników), później może kosztować maksymalnie 0,00211 euro miesięcznie. Choć pamiętajmy, że uiszczamy oddzielną opłatę za uwierzytelnianie wieloskładnikowe i zdarzenia SMS/telefoniczne, tj. 0,026 euro za zdarzenie SMS/telefon. Dokładny cennik publikuje portal Microsoftu.

Fot. główna: Pxfuel.com

Szukasz software house?

Oceń artykuł:
Journal / JPG / Yaroslav Shatkevich - avatar
Programista z 17-letnim doświadczeniem. Współzałożyciel i CTO The Story. Fascynat planowania prac programistycznych, autor licznych specyfikacji IT i DevOps. Wyróżniany przez Awwwards, nagrodzony iF Design Award 2018. Na co dzień pracuje w technologiach Python, PHP, React, JavaScript. Stworzył ponad 90 aplikacji webowych i mobilnych oraz systemów dedykowanych.

Jesteś zainteresowany współpracą z nami? Zajrzyj do Portfolio