Ujawnienie : Jestem inżynierem w Auth0 .
To zależy od jednego ważnego punktu ... musisz zdecydować, czy:
- chcesz bezpośrednio poświęcić znaczną ilość czasu (i pośrednio wydać pieniądze) na budowę i / lub utrzymanie własnego dostawcy tożsamości i serwera autoryzacji
- lub wolisz bezpośrednio wydawać pieniądze i korzystać z zewnętrznego dostawcy uwierzytelniania, takiego jak Auth0.
Obie opcje są doskonale wykonalne z punktu widzenia wymagań funkcjonalnych. Dzięki niestandardowemu programowaniu masz pełną kontrolę nad funkcjami, które zdecydujesz się wesprzeć, więc w części odpowiedzi skupię się na tym, jak Auth0 może odpowiedzieć na wymienione wymagania .
Jednak zanim przejdziesz do tego, bez względu na decyzję, w celu uwierzytelnienia powinieneś skupić się na OpenID Connect zamiast OAuth2. To drugie będzie bardziej odpowiednie, jeśli planujesz mieć również API w miksie, a nie tylko podzielić monolit na osobne aplikacje internetowe.
Jak migrować istniejących użytkowników do systemu opartego na Auth0?
Możesz albo nadal korzystać z bazy danych i polegać na Auth0, aby zapewnić pełną zgodność z protokołami związanymi z uwierzytelnianiem, których możesz potrzebować, lub możesz migrować użytkowników do zarządzanych baz danych Auth0 i przestać martwić się o sposób przechowywania i sprawdzania haseł.
Jeśli wolisz nadal korzystać z bazy danych, zobacz Uwierzytelnianie użytkowników przy użyciu nazwy użytkownika i hasła przy użyciu niestandardowej bazy danych
Aplikacje do uwierzytelniania często polegają na bazach danych użytkowników. Auth0 umożliwia łatwe łączenie się z tymi repozytoriami i wykorzystywanie ich jako dostawców tożsamości przy jednoczesnym zachowaniu poświadczeń użytkownika i zapewnieniu wielu dodatkowych funkcji.
(Dokumenty odnoszą się do MySQL jako przykładu, obsługiwane są inne silniki baz danych)
Z drugiej strony możesz bezproblemowo przenieść dane uwierzytelniające użytkownika do baz danych Auth0, wykorzystując proces migracji opisany w Migracja użytkowników do Auth0
Auth0 obsługuje automatyczną migrację użytkowników do Auth0 z niestandardowego połączenia z bazą danych. Ta funkcja dodaje użytkowników do bazy danych Auth0 za jednym razem, gdy każde się loguje i pozwala uniknąć proszenia użytkowników o resetowanie haseł jednocześnie.
Możesz także utworzyć wszystkich użytkowników w Auth0 za pomocą Management API, jeśli wolisz, aby wszyscy zaczęli korzystać z naszego algorytmu mieszania haseł jednocześnie. Ma to efekt uboczny polegający na wymaganiu od użytkowników zresetowania hasła.
Jak nadal korzystać z niestandardowego uwierzytelniania dwuetapowego (pytania weryfikacyjne)?
Potok uwierzytelniania zapewniany przez Auth0 jest w pełni konfigurowalny dzięki zastosowaniu reguł . Oznacza to, że nawet jeśli nie musisz implementować żadnych rzeczy związanych z protokołem, nadal możesz dostosować drobne szczegóły dotyczące sposobu uwierzytelniania w aplikacji.
Obejmuje to możliwość dalszego korzystania z istniejących pytań weryfikacyjnych jako sposobu na wykonanie dwuetapowego procesu uwierzytelnienia, w którym użytkownik podaje początkowe hasło zweryfikowane przez Auth0, a następnie pytasz go o dodatkowe informacje z reguły niestandardowej. (reguły są po prostu Javascript, więc możliwości są nieograniczone)
Możesz jednak zdecydować o odrzuceniu pytań weryfikacyjnych i zamiast tego skorzystać z Auth0 Guardian jako sposobu na zwiększenie bezpieczeństwa procesu uwierzytelniania.
Jak dostosować wygląd interfejsu użytkownika do uwierzytelniania?
Dzięki Auth0 możesz błyskawicznie uzyskać interfejs użytkownika do uwierzytelniania, korzystając z domyślnych stron logowania lub widżetów uwierzytelniania, takich jak Zablokuj . Wszystkie te obsługują pewien stopień dostosowania i zawsze możesz sam zdecydować o stworzeniu własnego interfejsu użytkownika i zamiast tego wykorzystać biblioteki Auth0 niższego poziomu ( Auth0.js ), które nie ograniczają interfejsu użytkownika.
Aby uzyskać więcej informacji na temat dostosowywania:
Jak zapobiec stronom z wyraźną zgodą?
Możesz użyć Auth0 zarówno jako dostawcy tożsamości do celów uwierzytelniania, jak również jako serwer autoryzacji OAuth2 (obecnie dostępny tylko w regionie USA) dla swojego interfejsu API.
Jako dostawca tożsamości nie musisz się martwić o strony zgody, użytkownik uwierzytelnia się za pomocą swoich danych uwierzytelniających zarządzanych przez Auth0, a następnie zostaje przekierowany do Twojej aplikacji - to wszystko.
W przypadku OAuth2 jako scenariusza usługi, gdy zgoda jest włączona, mapa drogowa obejmuje zezwalanie na ominięcie stron zgody dla niektórych aplikacji.
Podsumowując, wydaje się, że jest to bardzo interesujący i wymagający projekt, więc powodzenia niezależnie od ostatecznej decyzji.
Przeszedłem już przez coś podobnego w poprzednim zadaniu, kiedy musiałem ponownie wdrożyć system uwierzytelniania starszej aplikacji. Wdrożyliśmy własnego dostawcę tożsamości i serwer autoryzacji i szczerze mówiąc nadal mam wrażenie, że mogliśmy zapomnieć o czymś naprawdę istotnym.
Myślę, że to największy problem z wprowadzaniem własnego bezpieczeństwa, zdarzają się sytuacje, w których terminy nakładają skróty, a bezpieczeństwo nie jest tak naprawdę dobrym obszarem do tworzenia skrótów.
Jeśli masz dodatkowe pytania, daj mi znać, jeśli uważasz, że mogę być pomocny.