Jeżeli Wasza aplikacja wymaga funkcji rejestrowania i logowania użytkowników, to warto zapoznać się z usługą Cognito User Pool. Z usługą Cognito można zintegrować się za pomocą API z następujących SDK – Java, .NET, Node.js, Python, PHP i Ruby. Więcej informacji odnoście dostępu do Cognito za pomocą API jest dostępnych tutaj.
Pula użytkowników jest usługą skalowalną, zdolną do zarządzania milionami użytkowników. Jest to usługa bezpieczna, tania i łatwa do użycia. Z punktu widzenia programisty ma ona następujące zalety:
- Dane użytkowników przechowywane są w chmurze, czyli nie potrzebuję bazy danych, w cenie otrzymuję zatem bezpieczne i skalowalne miejsce na dane o użytkownikach.
- Usługa Cognito zintegrowana jest z usługą Simple Notification Service, co oznacza, że kody weryfikujące lub przypominające hasło wysyłane są w sposób automatyczny za pomocą SMS lub email.
- Usługa User Pool ma wbudowany prosty interfejs do zarządzania użytkownikami, czyli nie muszę implementować żadnych widoków o ile wystarczą mi funkce oferowane przez Cognito.
- Usługa Cognito obsługuje Multi-Factor Authentication. Właściwość ta może być włączona dla wszystkich użytkowników bez wyjątku lub możemy pozostawić ten wybór użytkownikom, aby sami mogli decydować o bezpieczeństwie swojego profilu.
- Profil użytkownika Cognito posiada predefiniowane atrybuty takie jak adres email, numer telefonu, imię czy nazwisko. Atrybuty można oznaczać jako wymagane, wówczas nie będzie możliwa rejestracja użytkownika, który nie wprowadzi atrybutów wymaganych w procesie rejestracji użytkownika.
- Profil użytkownika Cognito można rozszerzyć o atrybuty definiowane bezpośrednio przez nas. Jeżeli jakiegoś atrybutu brakuje na liście atrybutów domyślnych to nic nie stoi na przeszkodzie abyśmy sami zdefiniowali taki atrybut. Jedyne ogranicza nas maksymalna liczba atrybutów, która wynosi 25.
- Usługa Cognito umożliwia łatwą migrację użytkowników z innego systemu za pomocą plików CSV.
- Jeżeli wbudowane mechanizmy autoryzacji i autentykacji nie są wystarczające to można taki proces zmodyfikować za pomocą funkcji Lambda.
Usługa User Pool posiada bogatą funkcję, którą wystarczy użyć w swojej aplikacji. Mamy też możliwość modyfikacji domyślnych funkcji i zbudowanie bardziej zaawansowanego procesu rejestracji/autoryzacji/autentykacji. W części pierwszej opiszę proces konfiguracji usługi zwracając szczególną uwagę na istotne aspekty, które mogą mieć wpływ na korzystanie z usługi.
Kolejny ważny aspekt to koszty. Usługa Cognito jest bezpłatna do 50 000 aktywnych użytkowników miesięcznie. Użytkownik aktywny to taki, który wykona jakąś operację związaną z Cognito typu logowanie, zmiana hasła itp. Jedyny koszt jaki będziemy musieli ponieść to koszt wysyłania SMS’ów, o ile nie mamy numeru telefonu w Stanach Zjednoczonych, gdzie pierwsze 100 SMS’ów w miesiącu jest bezpłatne. Cennik usług Cognito i SNS można znaleźć pod linkami https://aws.amazon.com/cognito/pricing/ oraz https://aws.amazon.com/sns/sms-pricing/.