Poprzedni wpis (Zapraszam na PyconPL 2009) | Następny wpis (Kłamstwa statystyki)

Autentykacja, podejście drugie

Ponownie brudzę sobie ręce w aplikacji zrobionej przy użyciu alternative stack (Werkzeug + Jinja2 + SQLAlchemy + WTForms), trochę przy okazji przygotowań do mojego nadchodzącego wystąpienia na PyconPL 2009. I ponownie wszystko szło gładko, dopóki nie musiałem zabrać do autentykacji uwierzytelniana (nie autoryzacji).

Krąży po mieście plotka, że najlepiej do tego użyć AuthKit lub repoze.who. Jak w każdej plotce, w tej także może być ziarno prawdy, więc kilka dni temu postanowiłem to sprawdzić. Już początki nie były zachęcające (każda z tych bibliotek doinstalowuje w zależnościach połowę Pylons), a potem było jeszcze gorzej.

AuthKit okazał się tak mocno związany z Pylons, że nawet nie ma własnej dokumentacji, tylko jakieś rozdziały w Pylons Book. Jedyne, co nadawało się do użycia bez Pylons, to kilka przykładów w repozytorium. Spróbowałem pokonać niechęć i zapoznać się bliżej z tą biblioteką, ale dałem za wygraną po godzinie zastanawiania się, jak do tego bydlaka podejść. Może jakoś niedługo przyjdzie mi do głowy idea, jak mógłbym z tego skorzystać bez Pylons (a może ktoś to opisze...).

Dokumentacja do repoze.who okazała się dużo lepsza, ale tym razem przerosła mnie idea tej biblioteki. Przeczytałem wprowadzenie i zagotowało mi się pod kopułą — jak to w ogóle działa? I najważniejsze, jak to podłączyć do istniejącego kodu? Jestem pewien, że dokumentacja dokładnie opisuje każdy aspekt działania tej biblioteki, ale ja tego zwyczajnie nie zrozumiałem. Może dlatego, że przez cały czas przed oczami miałem mój use case, który obejmuje jedynie mały fragmencik tego, do czego ta biblioteka została stworzona.

Na dzień 10 lipca 2009 roku konkluzja jest taka, że albo przysiądę fałdów i spróbuję użyć jednej z tych dwóch bibliotek, albo pójdę na skróty i użyję RPX (czy czegoś w tym stylu). Co biorąc pod uwagę obecny trend w branży nie wydaje się być takim głupim rozwiązaniem. Niestety, pomijając całkowite niedopasowanie tego rozwiązania do docelowej grupy użytkowników mojej aplikacji...

Komentarze (6)

#1 Jajcuś skomentował(-a) 10 lipca 2009 o 10:01

„Autentykacja”? Po jakiemu to? Uwierzytelnianie już nie może być?

#2 jarek skomentował(-a) 10 lipca 2009 o 10:19

Może i może.

#3 Dominik Szopa skomentował(-a) 10 lipca 2009 o 10:39

A widziałeś tą aplikacje - http://hg.e-engura.org/django-authopenid/

Umożliwia dokładnie to samo co RPX ale bez pośredników.

Tu demo online jak to działa:

http://openid-example.e-engura.org/

#4 jarek skomentował(-a) 10 lipca 2009 o 11:23

To nie ma być do Django. Idealnie: middleware WSGI. Nieidealnie: AuthKit, repoze.who...

#5 salmon skomentował(-a) 12 lipca 2009 o 14:27

jedyne zaleznosci jakie widze w repoze.who to Paste i setuptools, jezeli to połowa Pylonsa to jest to ładnie mały framework ;)
Piszesz że idelanie jak będzie to wsgi middleware, oba nimi są.
Jak dla mnie to troszkę poczytałeś, nie zrozumiałeś i musiałeś się wyżalić na blogu :P
W majowym wydaniu pymaga jest opis jak używać repoze.who.

#6 konrad skomentował(-a) 12 lipca 2009 o 15:09

A gdzie jest informacja na temat zależności repoze.who od pylons? Jest za to informacja o AuthKit, a na ich stronie odnośnik - "Pylons Book (the two chapters on Authentication and Authorization and Advanced AuthKit form the AuthKit 0.4 documentation)".

Jak dla mnie to troszkę poczytałeś, nie zrozumiałeś...

Skomentujesz?

* 


* 


* oznacza pole wymagane