La verdad es que llevo mucho tiempo queriendo contribuir a la excelente labor que hacen los chicos de SbD y por falta de tiempo nunca he llegado hacerlo pero durante su charla en RootedCON, Chema me lanzó el guante diciéndome que publicara la integración de Django con Latch y esta vez, no puedo escaquearme.
¿Qué es Latch?
A estas alturas, ya todos debéis conocer que es Latch, pero por si hay algún despistado por aquí, Latch es un sistema de pestillos digitales desarrollado por ElevenPaths. Con este sistema puedes bloquear las cuentas de los servicios siempre que no los utilices, fácil y sencillo, pero muy útil.
De Latch ya escribió mi gran amigo Alejandro, podéis verlo aquí:
http://www.securitybydefault.com/2013/12/configurar-latch-para-proteger-un.html
http://www.securitybydefault.com/2013/12/configurar-latch-para-proteger-un.html
Django y Latch
Para los que no quieran leerse todo el rollo, el código del módulo de Latch para Django podéis descargarlo de https://github.com/rootedcon/django-latch e instalarlo y añadirlo directamente a vuestro proyecto.
$ git clone https://github.com/rootedcon/django-latch.git $ cd django-latch $ python setup.py install
Configurando el módulo en la aplicación Django
Con el módulo instalado, tenemos que configurar nuestra aplicación Django para utilizarlo.
1. Configurar la aplicación, editando settings.py
2. Añadir la URL, editando urls.py
3. Sincronizar la base de datos:
Ya tenemos nuestra aplicación lista para empezar a emparejar cuentas!
Con el módulo instalado, tenemos que configurar nuestra aplicación Django para utilizarlo.
1. Configurar la aplicación, editando settings.py
# Añadir la app en las INSTALLED_APPS INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'latch', ) # Añadir el modelo de usuario en settings.py AUTH_PROFILE_MODULE='latch.UserProfile' # Establecer el backend de autenticación AUTHENTICATION_BACKENDS = ( 'latch.auth_backend.LatchAuthBackend', )
2. Añadir la URL, editando urls.py
from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() admin_url = 'admin' urlpatterns = patterns('', url(r'^%s/' % admin_url, include(admin.site.urls)), url(r'^latch/', include ('latch.urls')), )
3. Sincronizar la base de datos:
$ ./manage.py syncdb
Ya tenemos nuestra aplicación lista para empezar a emparejar cuentas!
Configuración de Latch
El primer paso, una vez configurada la aplicación Django, es crearse una cuenta de desarrollador para la aplicación. Esto es necesario para poder realizar peticiones al API y de esta forma emparejar y desemparejar las cuentas de usuario.
El primer paso, una vez configurada la aplicación Django, es crearse una cuenta de desarrollador para la aplicación. Esto es necesario para poder realizar peticiones al API y de esta forma emparejar y desemparejar las cuentas de usuario.
Con estos datos, podemos ir a http://URL/admin/latch/latchsetup/ y configurar el Application ID y el secreto:
Gestión de cuentas
Para emparejar una cuenta, es necesario haber iniciado sesión con el usuario que queremos emparejar. Con la sesión iniciada, navegamos a http://URL/latch/pair y generamos un token de emparejado en la aplicación móvil:
Para emparejar una cuenta, es necesario haber iniciado sesión con el usuario que queremos emparejar. Con la sesión iniciada, navegamos a http://URL/latch/pair y generamos un token de emparejado en la aplicación móvil:
Introducimos el código en la aplicación y si no hay ningún error, tendremos la aplicación emparejada con Latch.
Si queremos desemparejar la cuenta, podemos ir a http://URL/latch/unpair, marcamos el tick de confirmación y clickeamos ‘Unpair’
¡Fin!
Pues nada… ahora ya puedes disfrutar de tu aplicación Django protegida con Latch y evitar usos no deseados de tus cuentas.
El proyecto está recién salido del horno y seguramente pueda mejorarse, siéntete libre de realizar modificaciones y si quieres, puedes enviar una petición y lo añadiremos a la rama maestra.
Espero que os sea útil y no dudéis en enviar cualquier comentario!
Gracias a SbD por dejarme un hueco para publicar esto y compartirlo con vosotros. ¡Espero veros por RootedCON algún día! :D
Javier Olascoaga - Founder @ RootedCON
0 comments :
Publicar un comentario