Grupo Autenticación (2014-15)
Contenido
Definición
Un subsistema de AGORA@US para autenticar usuarios y controlar quién puede votar y quién ya ha votado para evitar multiples votos de la misma persona. Este sistema tiene que ofrecer una api clara y sencilla para que otras partes del sistema puedan usarlo. Un sistema básico podría ser uno basado en un censo cerrado usando como identificador el correo electrónico. El sistema de autenticación tiene que ofrecer métodos para:
- Saber si un usuario determinado ha votado ya
- Realizar una prueba de verificación de identidad
- Marcar un usuario como que ya ha votado
Miembros
- Daniel Ayala Hernández: Gestor de la configuración
- Daniel de los Reyes Leal: Gestor de la configuración
- Fidel Mazo Delgado: Gestor de la configuración
- Juan Carlos Roldán Salvador: Gestor de la configuración
- Alejandro Sánchez Medina: Jefe de proyecto
- Juan Luis Casal López: Gestor de la configuración
Interfaz del sistema
El sistema de autenticación se encargará de realizar la autenticación del usuario antes de que este acceda al resto de la aplicación. Para que quede constancia de su estado como autenticado, se almacenarán en su navegador 2 cookies:
- Una con identificador "user", en la que se almacenará el nombre de usuario autenticado.
- Una con identificador "token", en la que se almacenará un token generado a partir de su nombre de usuario y contraseña.
Siempre que se desee comprobar que el usuario accediendo a una funcionalidad está correctamente autenticado, se debe comprobar que el token almacenado en la cookie es el correcto. Para ello se ofrecen métodos en la APi descrita a continuación:
API
El subsistema de autenticación ofrecerá una API REST en una URL todavía por decidir. En esta API, todas las peticiones serán GET, y habrá un único parámetro obligatorio: "method", para indicar el método de la API usado. Los métodos disponibles son los siguientes:
Método(parámetro method) | Descripción | Parámetros adicionales | Respuesta | Ejemplo de respuesta |
---|---|---|---|---|
getUsers | Obtiene una lista de todos los usuarios del sistema, incluyendo sus datos. | - | Json con la lista de usuarios. Cada usuario incluye los campos "username", "password" y "email". (Informacióna ser extendida con el resto de datos del modelo). | [{"username":"name1","password":"pass1","email":"mail1"}] |
checkToken | Comprueba si un token es válido. Para ello, se obtiene el usuario correspondiente al token (indicado al comienzo del token), se genera el token del usuario y se comprueba si es igual que el pasado como parámetro. |
|
Json con el campo "valid" indicando la validez del token (true/false). | {"valid"=true} |
checkTokenUser | Comprueba si un token es válido para un usuario. Para ello, se obtiene el usuario pasado como parámetro, se genera el token del usuario y se comprueba si es igual que el pasado como parámetro. |
|
Json con el campo "valid" indicando la validez del token (true/false). | {"valid"=true} |
Si en una petición no se pasan unos parámetros correctos (métodos que no existen o falta de parámetros necesarios) se devolverá un error de código 400 con el siguiente mensaje: "Bad Request. This method doesn't exist or the necessary paramenters weren't provided"
Subsistemas relacionados
- Cabina de votación: Comprobará que los usuarios que voten estén autenticados.
- Censo: Al marcar a un usuario como votado, el sistema de autenticación deberá comprobar si dicho usuario pertenece al censo de la votación.
- Creación/administración de votaciones: Deberá comprobar que sus usuarios estén logueados en la aplicación.
- Deliberaciones: Deberá comprobar que sus usuarios estén logueados en la aplicación.
Repositorio de código
Todo el código realizado durante el desarrollo de la asignatura se encuentra en el repositorio del Grupo de Autenticación Gestión de la comunicación
Toda la comunicación se lleva a cabo presencialmente en horario de clase, y de forma remota mediante el uso de herramientas de voz sobre IP (Skype).
El diario de grupo se mantendrá en esta wiki, y las actas se irán publicando como páginas individuales dentro del diario de grupo.
En el caso de compartir código, se mantendrá en un repositorio de ProjEtsii.
Iteraciones
Son susceptibles de entrar en esta categoría aquellos trabajos en clase que tengan un entregable. Para ver las actas de otros entregables, ver el diario de grupo.
- Iteración del taller de gestión de código I (06/10/2014)
- Iteración del taller de gestión de código II (08/10/2014)
- Iteración de la práctica 1 (15/10/2014)
- Iteración del taller de gestión de código III (27/10/2014)
Diario de grupo
Hojas de tiempo
Fecha | Tiempo (m) | Miembro(s) del grupo | Actividad | Comentarios |
---|---|---|---|---|
29/09/14 | 30 | Todos | Reunión inicial |
|
30/09/14 | 30 | Daniel Ayala Hernández | Redacción de acta |
|
01/10/14 | 60 | Todos | Diseño de la interfaz |
|
01/10/14 | 30 | Juan C. Roldán | Redacción del diario de grupo |
|
01/10/14 | 30 | Juan C. Roldán | Redacción de acta |
|
06/10/14 | 20 | Todos | Implementación inicial de funciones |
|
07/10/14 | 15 | Daniel Ayala Hernández | Redacción de acta |
|
08/10/14 | 60 | Todos | Realización de pruebas con el repositorio |
|
10/10/14 | 50 | Juan C. Roldán | Redacción de acta |
|
10/10/14 | 50 | Juan C. Roldán | Reestructuración |
|
14/10/14 | 90 | Daniel Ayala Hernández | Programación |
|
15/10/14 | 90 | Todos | Práctica |
|
15/10/14 | 50 | Juan C. Roldán | Reestructuración |
|
15/10/14 | 40 | Daniel de los Reyes | Redacción de acta |
|
15/10/14 | 20 | Fidel Mazo Delgado | Código |
|
20/10/14 | 40 | Alejandro Sánchez Medina | Programación |
|
20/10/14 | 30 | Daniel de los Reyes | Redacción de acta |
|
21/10/14 | 25 | Daniel Ayala Hernández | Redacción de entregable |
|
22/10/14 | 40 | Todos | Práctica |
|
23/10/14 | 60 | Juan C. Roldán | Formato |
|
27/10/14 | 70 | Todos | Planificación de gestión del código fuente |
|
27/10/14 | 15 | Fidel Mazo Delgado | Redacción de acta |
|
27/10/14 | 60 | Todos | Gestión de código |
|
27/10/14 | 40 | Juan C. Roldán | Organización |
|
27/10/14 | 20 | Alejandro Sanchez Medina | Organización |
|
28/10/14 | 25 | Juan C. Roldán | Formato |
|
30/10/14 | 10 | Daniel de los Reyes | Redacción de acta |
|
02/11/14 | 30 | Todos | Elaboración de preguntas |
|
01/11/14 | 90 | Daniel Ayala Hernández | Programación |
|
03/11/14 | 80 | Todos | Jornadas |
|
05/11/14 | 40 | Alejandro Sánchez Medina | Redacción de actas |
|
05/11/14 | 25 | Daniel Ayala Hernández | Creación de repositorio |
|
06/11/14 | 15 | Daniel Ayala Hernández | Creación de branches |
|
09/11/14 | 50 | Daniel Ayala Hernández | Programación |
|
10/11/14 | 45 | Todos | Integración de subsistemas |
|
11/11/14 | 20 | Daniel Ayala Hernández | Redacción de actas |
|
13/11/14 | 10 | Daniel de los Reyes Leal | Redacción de actas |
|
Actas
- Acta del taller de creación de grupos (29/09/2014)
- Acta del taller de arquitectura de la aplicación (01/10/2014)
- Acta reunión inicial de portavoces de grupos (06/10/2014)
- Acta del taller de gestión de código I (06/10/2014)
- Acta del taller de gestión de código II (08/10/2014)
- Acta de la práctica 1 (15/10/2014)
- Acta de reunión de portavoces de grupos II (20/10/2014)
- Acta del taller de gestión de código III (24/10/2014)
- Acta de la práctica 2 (22/10/2014)
- Acta 2 del taller de gestión de código III (27/10/2014)
- Acta de la práctica 3 (30/10/2014)
- Acta de la planificación de Jornada I (03/11/2014)
- Acta de la práctica 4 (05/11/2014)
- Acta del taller de integración (10/11/2014)
- Acta de la práctica 5 (12/11/2014)