Sistema de identificación distribuida
Entender la identidad en la Web
Ejemplo de implementación Mozilla Persona
Alina Mierlus
@alina_mierlus
¿Por qué es importante?
ayuda al usuario a identificarse con una serie de servicios y herramientas;
permite crear una reputación en la red;
asegurar la privacidad y seguridad del usuario;
hoy en día, los métodos de identificación en la red son variados, pero al mismo tiempo en 'silos';
Servicio de identificación federado
Puntos positivos:
- nos permite identificarnos con una dirección de email en diferentes páginas / apps en la web;
- ya no necesitamos recordar contraseñas;
- para desarrolladores: no dependemos de terceros; podemos montar el servicio en nuestro proprio servidor;
Puntos menos positivos:
- la adopción de soluciones federadas suele ser bastante baja (solo ciertos grupos la utilizan);
- El desarrollador todavía tiene que gestionar el servicio de registro aparte.
Introducción a Mozilla Persona
¿Por qué Mozilla Persona?
Para desarrolladores:
- Facil de implementar;
- Software libre: https://github.com/mozilla/persona
- "Deployable" (lo puedes montar en tu propia infraestructura)
Para usuarios:
- No deja rastros (la privacidad del usuario en primer plano);
- Te identificas sólo con la dirección de correo electrónico;
- Seguro y facil de utilizar;
Puesta a punto de Mozilla Persona
Express+Persona+MySQL
Express:
- facil de desarrollar servicios web, robusto
Persona:
- servicio de identificación
MySQL:
- Base de datos con los credenciales de identificación
- En este ejemplo no gestionamos el registro!
Organización del codigo
Cliente:
- utilizamos Grunt para gestionar el desarrollo e implentación: gruntjs.com/
Servidor:
- la instancia de express;
- Se puede ejecutar como
# node index.js
Data:
tenemos guardada la configuración de vhost
tenemos guardado un dump.sql de ejemplo
¡Aquí podéis encontrar el código fuente!
¿Cómo utilizarlo para mi proyecto?
El servidor
0) Configurar el fichero config.json con el path corespondiente;
1) Ejecutar el servidor:
# node index.js
La base de datos
0) instalar una base de datos si no la tenéis (eg. MariaDB) ;
1) start database
# mysql -uroot
2) Grant privileges
> grant all privileges on test* to <your email> identified by <your name>
3) Configurar el dump.sql
# cd <your Project directory>/data
# vim dump.sql