Auth0 – Delegowanie zarządzania tożsamością

Zarządzanie tożsamością użytkowników i prawami dostępu jest podstawą bezpieczeństwa większości aplikacji. We wszystkich aplikacjach daje się wykryć powtarzalne wzorce rozwiązań, pozwalające określić czy użytkownik rzeczywiście jest tym za kogo się podaje. Standardem jest opieranie się o login i hasło, często wzmocnione innymi mechanizmami takimi jak kody jednorazowe wysyłane sms-em.

Jednocześnie jest to zagadnienie zasobochłonne, o ile sama implementacja ekranu logowania i rejestracji użytkownika zgodnie z bieżącymi standardami jest dość szybka: zajmuje od kilku godzin do kilkunastu dni, to co jakiś czas okazuje się, że stare praktyki przestają gwarantować bezpieczeństwo, oraz pojawiają się nowe rozwiązania adresujące problemy występujące w starych. Wymaga to ciągłego śledzenia informacji związanych z szeroko rozumianym bezpieczeństwem i adaptacji swojego systemu.

Niestety bezpieczeństwo w oprogramowaniu nie zarabia, z tego powodu w wielu systemach jest traktowane po macoszemu, menadżerowie znacznie chętniej poświęcą miesiąc na zbudowanie nowych ścieżek sprzedażowych niż tydzień, na zmianę sposobu szyfrowania haseł.

Powszechność i złożoność problemu oraz brak biznesowych przesłanek do inwestycji w zabezpieczenie aplikacji czyni ten aspekt idealnym kandydatem do wydelegowania do innej organizacji.

Auth0 jest jednym z dostawców, na których warto zwrócić uwagę, w tym artykule postram się przybliżyć kilka aspektów związanych z integracją z tym dostawcą.

Aplikacja do odpalania rakiet

Dla lepszego zobrazowania procesu integracji z Auth0 przygotowałem aplikację do odpalania rakiet, podobnej do tej znanej z komiksu xkcd:

https://xkcd.com/970/

Aplikacja ma następującą architekturę

Backend – RocketService jest usługą uruchomioną w chmurze, posiadającą 2 punkty końcowe: jeden pozwalający pobrać listę dostępnych typów pocisków, drugi pozwalający wysłać określoną ilość pocisków, danego typy, pod wskazaną lokalizację. Oczywiście tylko zalogowani użytkownicy powinni mieć możliwość wykonania tych operacji.

Usługa jest wywoływana przez dwie aplikacje: Aplikację napisaną w Xamarin Forms’ach przeznaczoną na telefony Android i iOS oraz SPA przeznaczoną dla wszystkich innych urządzeń.

Obie aplikacje kontaktują się z serwisem Auth0, aby przeprowadzić użytkownika przez proces rejestracji i logowania oraz pozyskać dane, które pozwalają na kontakt z backendem.

Rejestracja tenanta

Aby aplikacja mogła korzystać z auth0 musiałem ją zarejestrować, zacząłem od wejścia na stronę auth0.com i kliknięcia w przycisk „Sign Up” w prawym górnym rogu. Na wyświetlonym ekranie wybrałem sposób w jaki chciałbym zarejestrować konto w serwisie. Auth0 udostępnia wykorzystanie podanie loginu i hasła ewentualnie skorzystanie z któregoś najpopularniejszych dostawców tożsamości: Google, Microsoft czy Github, ja wybrałem konto Microsoft, ale wybór nie ma większego znaczenia. Po zakończeniu rejestracji zostałem przekierowany do ekranu rejestracji tenanta (słowo lokator mi jakoś mi nie leży) czyli mojego systemu/organizacji.

Na tym ekranie wprowadziłem nazwę, wybrałem Unię europejską jako miejsce przechowywania danych #boRODO, i nie wyraziłem zgody się na otrzymywanie wiadomości email i kliknąłem „Next”.

Drugi krok służy dopasowaniu wyglądu panelu administracyjnego do potrzeb i wiedzy użytkownika. Ja uzupełniłem go w sposób widoczny poniżej.

W tym momencie nastąpiło przekierowanie do Panelu sterowania zwanego też daszbordem. Po jego lewej stronie znajduje się menu dające dostęp do bardzo szerokiego zakresu funkcji i ustawień.

  • APIs – zarządzanie aplikacjami – backend
  • Applications – zarządzanie aplikacjami klienckimi (front-end, desktop, mobile, IoT) za pomocą których można kontaktować się z aplikacjami -backend
  • Connections i SSO integrations – pozwalają skonfigurować sposoby weryfikacji tożsamości użytkownika, domyślnie włączony jest jedna opcja „Database” w sekcji connections. Sprawia ona że dostępne jest logowanie z wykorzystaniem loginu i hasła. Można tam jednak uruchomić całą masę integracji od facebooka i google przez firmowe subskrypcje Office 365 i Slack’a aż po serwery LDAP.
  • Users – przegląd aktywnych (i nieaktywnych) kont użytkowników
  • Multi-factor auth – autoryzacja wieloskładnikowa – np. jednorazowe kody SMS
  • Emails – szablony automatycznych wiadomości email wysyłanych do użytkowników
  • Anomaly detection – raporty o „dziwnych” zachowaniach użytkowników, mogących świadczyć o próbie ataku na określone konta albo cały serwis.

Opis tworzenia poszczególnych aplikacji umieściłem w osobnych artykułach:

  • Backend – TBD
  • Frontend – TBD
  • Aplikacja mobilna – TBD

Artykuły w przygotowaniu, zapisz się na newsletter aby otrzymać powiadomienie gdy tylko się ukażą

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *