Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Loše stanje Python OAuth provajdera

Ovo je jedan od onih postova koji vas izazivaju da ih napišete. Osobe čije radove sam spreman da opišem uložili su mnoog truda, napora, zananja da bi doćli do rezultata. Pišući o OAuth potrošačima jeste teška stvar i pisanje o OAuth je još veći posao. Ali sav taj trud nije prošao uzalud. Proble, ipak, je taj što trenutni projekti nisu upotrebljivi kao takvi i potrebna ima je podrška zajednice da bi se poboljšali.

Strašna stvar jeste rešenje problema zajednice. Python bazirani projekti su uspešno implementirani kod OAuth, a često se upotrebljava hakovana verzija napora koju želim da objasnim. Ipak, ne vreće se to zajednici na dobar način, i recimo da je to zato što su prezauzeti da pronadju vremena za resetovanje.

U bilo kom slučaju, hajde da vam predstavim naš slučaj. Za Consumer Notebook želimo API. Želimo da da se može upotrebljivati korisničko ime, lozinka i aplikacija koja koriisti naš API - što je slučaj kod OAuth. Isto kao kod BasicAuth ili DigestAuth što je lakši način da se prekine implementacija. OAuth je dizajniran za našu upotrebu: dozvoljavajući trećoj strani da uspe u razvijanju APIbez nekih posebnih zasluga. Zapravo, to je pitanje bezbednosti: Twitter je o tome raspravljao, "Twitter apps" koji kradu korisnička imena i lozinke pre nego se uključe na OAuth. Kao kod API provajdera, pošto je to OAuth provajderima više izazova, ali je to s druge strane i odgovorna stvar.

Postojeći OAuth Provajderi

Vreme je da se uđe u srž. Hajde da pogledamo trenutne implementacije OAuth zajedno sa Python zajednicom. Ipak, voleo bih da nisam ni najmanje negativan, ali sam priteran uza zid:

OAuth2app (Django)

https://github.com/hiidef/OAuth2app

OAuth verzija: 2.0

  • Nepoznata URL konstrukcija koja može biti rupa za skrivanje
  • Različite operacije koje su logične za dekodiranje. Sigurnost je važna. Ne komplikujte vaš sigurnosni kod greškom.
  • Nepostojeći kodovi. Sigurnost je važna. Komentarišite vaš kod.
  • Dokumentacija i nedovoljnosti..
  • Ne funkcioniše bez niza hakovanja i dodavanja parametara. Šta znači da moram da brinem ako nešto hakujem.
  • Uspeli smo da sredimo.rad sa GET zahtevima. Onda smo shvatili da koristimo GET zahteve, što je, izgleda, loša ideja.

django-piston (Django)

https://bitbucket.org/jespern/django-piston

OAuth verzija: 1.0

  • Nepostojeći projekat.
  • Dokumentacija nepostojećih.

django-oauth-plus (Django)

http://code.larlet.fr/django-oauth-plus

OAuth verzija: 1.0a

  • Tutorial ne funkcioniše.
  • Dokumentacija.
  • Ne funkcioniše bez ozbiljnog hakovanja. Što znači da moram da brinem ako bilo šta probijem.
  • Ne možemo da ga pokrenemo.

lastuser (Flask)

https://github.com/hasgeek/lastuser

OAuth verzija: 2.0

  • Nema dokumentacije.
  • Nema testova koji služe kao dokumentacija.
  • Nedostatak dokumentacije nije zapravos stvar OAuth provajdera.

python-oauth2 (Python)

https://github.com/dgouldin/python-OAuth2(najbolji primer)

OAuth verzija: 1.0

  • Nazvana 'OAuth2' ali samo radi sa OAuth 1? Stvarno? WTF? Ovo mora biti odrađeno.
  • Dokumentacija nedovoljnosti.
  • Obezbeđuje samo skelet provajdera. Nikakvo rešenje.
  • Ne funkcioniše sa provajderom uz opasno hakovanje. To znači da bi trebalo da se brinem.
  • Ima mnogo, mnogo prpusta na projektu, sa različitim postovima na blogu koji savetuju ljude da koriste naročite stavke koje su važnije.

Koje je rešenje?

Dobro, predočio sam problem. Vreme je da ga rešimo.

Za početak,upotrebljivi OAuth proviajer bi trebalo da ima određene standarde:

  • Blizu pravog rešenja
  • Radni kod (duplikat se nalazi gore)
  • Radni tutorijal
  • Dokumentacija
  • Komentarisanje koda
  • Lint kod
  • Testirano područje > 80%

Ovo je moja specifikacija. Ako imate bilo koji projekat koji je sličan Python okviraima, nalazi se na listi dolazećih vebsajtova koji su takoše uključeni sa Python baziranim OAuth potrošačima.

Ono što je vredno, Idan Gazit je radio na nečemu da bi se prevazišao taj problem oko adresiranja , naročito https://github.com/idan/oauthlib namenski je za Python OAuth upotrebu koja nije pokrivena u članku. To i dalje stvake bi trebalo da izgledaju kao da je dosta truda uloženo, i tako...

PyCon US 2012 počinje Marta 12. Smatram da je to zajednica, mi Pythonistas bi trebalo da se udružimo i da ispravimo stvar. Smatram da ćemo imati snage i dovoljno očiju uprtih na problem, da li će biti mozganja ili drgih kreativnih rešenja, nije važno, bitno je uključiti Idan Gazit, Audrey Roy, George Hickman, i druge.

Spremni smo da uložimo vreme da bi poboljšali OAuth in Python, a vi?

Pridružite nam se u PyCon US sprintu bilo lično ili on-line. Detalji sprinta se nalaze na dnu ove PyCon Sprint stranice .

Ažuriranja

03/05/2012 - Ukljonjen Velruse sa liste provajdera, pa je zatim Michael Merickel potvrdio da nije više provajder 03/06/2012 - Dodaje se linku na PyCon OAuth sprintu.





Published (Last edited): 05-06-2013 , source: http://pydanny.com/the-sorry-state-of-python-oauth-providers.html