[pyar] requests.get authentificacion en API DRF

David Arch daviddanielarch en gmail.com
Lun Abr 10 12:45:15 ART 2017


El 10 de abril de 2017, 11:36, Daniel <dmlistapython en gmail.com> escribió:

>
>
> El 10 de abril de 2017, 10:59, David Arch <daviddanielarch en gmail.com>
> escribió:
>
>> Apache te esta reconociendo el header, lo que pasa es que esta tratando
>> de hacer el auth contra una lista que deberías haber configurado en Apache,
>> lo que vos queres es que Apache no te haga el auth y deje pasar el request
>> así como viene a django para hacer la auth desde django.
>>
>> Mi respuesta anterior suponía erroneamente que vos estabas usando
>> mod_wsgi para servir django. Si es así, tenes que agregarle el
>> WSGIPassAuthorization On en el archivo de conf donde tenes configurando
>> el virtualhost.
>> http://modwsgi.readthedocs.io/en/develop/configuration-direc
>> tives/WSGIPassAuthorization.html
>>
>> Suponías bien, no erroneamente: Django 1.10.5 (mod_wsgi 4.5.9/Python 3.5)
>
> Si estas usando algo mas que no sea mod_wsgi debe haber una solución
>> equivalente.
>>
>> Preguntas para aprender más,
>  1 - que pasa internamente que mediante djando directamente no falla aún
> sin WSGIPassAuthorization On
>
No estoy completamente seguro pero me parece que al fallar el BasicAuth
contra Apache, el request ni siquiera es procesado por Django, por eso es
que no te falla Django.


>  2 - Se supone que si envíaría headers para auth de apache, me lo pararaía
> la validación de la api
>
No entiendo bien que quisiste decir pero te respondo por lo que llegue a
entender :)
Cuando vos mandas un request usando BasicAuth, el header es el mismo, no
hay un header de apache y otro de Django. Esto es lo que estas haciendo en
los dos ejemplos que pasaste.
Al llegar el request, el primer que lo procesa es Apache, como tiene
activado por defecto el auth para BasicAuth, lo que pasa es que se fija el
usuario y contrasena en un archivo de usuarios y contrasenas y como no lo
encuentra te da el 403.

Supongo que en el segundo ejemplo que hiciste estas tratando de probar
el SessionAuthentication.
Pero al hacer s.auth, le estas metiendo BasicAuth, asi que seria
equivalente al primer ejemplo.

El SessionAuthentication almacena los datos en las cookies, por eso cuando
estas logeado en Django, te funciona el endpoint correctamente,


>
> Gracias por el tiempo que dedican a responder las preguntas, valoro mucho
> eso
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Saludos.
David.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170410/f55f8a02/attachment.html>


Más información sobre la lista de distribución pyar