Autoryzacja przez clickpass kontra rpx

RPX jest podobną usługą do clickpass - upraszcza logowanie z systemów gdzie użytkownicy już mają konta. Zasada działania jest bardzo podobna. System ten również opiera się o OpenID.

Istnieje także implementacja rpx dla django - http://code.google.com/p/django-newrpx/

rpx wydaje się lepsze od clickpass, z tego względu że użytkownik dużo łatwiej się może zalogować, praktycznie po autoryzacji w systemie zewnętrznym jest już zalogowany, przy clickpass po autoryzacji pokazuje się formularz rejestracyjny z wypełnionymi danymi( typu: email, opcjonalnie imię, nazwisko) i trzeba ręcznie wpisać nazwę użytkownika jaki będzie utworzony. W rpx się tego nie robi, wszystko się dzieje z automatu, nazwa użytkownika jest z automatu przekazywana(z systemu w którym wcześniej odbyła się autoryzacja) do backend’u autoryzacji który sam tworzy nowego użytkownika i go loguje. Przy następnym logowaniu backend sprawdza czy login użytkownika(przekazany np. z google accounts) istnieje już i go loguje. W jednym i drugim przypadku logowanie to tak naprawdę 2-3 kliknięcia myszą.

Teraz na temat samej implementacji rpx w django

Pakiet django-newrpx był dosyć z bugowany – parę drobnych bugów w kodzie, udało mi się wszystko popoprawiać i wysłać pacha do autora. W django-newrpx w przeciwieństwie do django-clickpass nie ma zaimplementowanego tzn "account merge"(samo rpx obsługuje tą opcje- Mapping API) jest to sytuacja kiedy użytkownik ma już konto na danym serwisie i chciałby skojarzyć że loguje się np. przez google accounts do tego właśnie konta. Autor django-rpx obiecuje zaimplementować także Mapping API w najbliższym czasie

Na stronie rpx pisze że teoretycznie są dostępne tłumaczenia, jednak przy próbie zmiany wersji językowej ciągle jest angielski – jednak oznacza to pewnie w końcu te tłumaczenia zaczną działać skoro opisują to w dokumentacji.

W rpx dostępne są 3 rodzaje kont, tylko podstawowe - basic jest darmowe, z zauważalnych różnic miedzy tylko kontami a clickpass jest taka że w clickpass tzn trust root jest nasza domena, a w rpx nasza domena może być trust root tylko w wersji płatnej, w wersji podstawowej trust root jest w formie domena-com.rpxnow.com. Jest to nazwa która będzie pokazywana po zalogowaniu na zewnętrznym serwisie(np. google) przy pytaniu o udostępnienie podstawowych danych do zalogowania - e-mail, nazwa użytkownika.

Wydaje mi się że mimo wszystko warto wybrać rpx, ponieważ jeszcze bardziej upraszcza autoryzacje użytkowników. Także konfiguracja samego django-rpx jest dużo prostsza niż clickpass. Wystarczą 3 wpisy w settings.py oraz jedna linia w szablonie i już gotowe - działa :) Wadą rpx jest że nie ma w wersji bezpłatnej możliwości ustawienia trust root na własną domenę.


Comments turned off