Dzisiaj rozpoczynam pierwszą część, która jest jednocześnie wprowadzeniem do autentykacji na tokenach.
Token - a co to?
Cóż. To taki ciąg znaków, który jest wygenerowany na okres sesji logowania. Uzyskujemy go podczas logowania i wykorzystujemy aż do jego wygaśnięcia lub zakończenia sesji użytkownika. Tokeny są następcami ciasteczek (aczkolwiek bardzo często sam token jest przechowywany w ciasteczku).
Największy hype na tokeny zrodził się w miarę rosnącej siły frameworków javascriptowych i konsumpcji API. Dlaczego akurat tokeny?
Skalowalność
No tutaj troszkę pojechałem. Tokeny ie dają skalowalności. Ale dobrze napisane repozytorium tokenów jest odporne na skalowalność. Teoretycznie token jest … “self contained”. Czyli sam zawiera w sobie informacje. Nie do końca się z tym zgadzam. Jak dla mnie token o wiele bardziej jest jakby wskaźnikiem na użytkownika. A skoro serwery podczas skalowania chcą korzystać z dancyh użytkownika to najlepiej im dać informację o jakiego użytkownika nam chodzi. I to daje nam token.
Niezależność
Tak to sobie nazwałem. Generalnei aplikacja mobilna/webowa/desktop, która korzysta z API wymaga na początek jednorazowej autentykacji. Wtedy serwer (API) zwraca wygenerowany przez siebie token i od tej pory aplikacja kliencka nie musi się już niczym martwić prócz zapamiętania tokenu.
Przyjaciel mobilności
Głownie chodzi o ciasteczka. O ile pisze się klienta bazującego na przeglądarce (strona WWW, Electron) to ciasteczka są dostępne. Ale ciasteczka w aplikacjach mobilnych? To już nie tędy droga. Dlatego token można przesłać jako odpowiedź z autentykacji i go przechować. To znacznie prostsza droga.
Plany
Już o tokenach troszkę wiemy. Znamy zalety. Ale co dalej? Oto kilka rzeczy, które będą opisane w najbliższej serii:
- Logowanie i rejestracja użytkownika (dość nietypowa)
- Zabezpieczenie zasobów przed niepowołanym dostępem
Technologia? Tutaj główną rolę spełni ASP.NET Web API w wersji 2. A co głębiej. Przekonacie się sami :)
Do usłyszenia!
Trzymajcie się i do poczytania wkrótce!
Warto zajrzeć: Token Authentication: The Secret to Scalable User Management