U-Cursos

DEV-1 Equipo de Desarrollo desde el 2003

Blog

Oh oh!

Por Manuel Ortega 22/10/12 a las 16:22 hrs.

bloqueo3.pngHace algunas semanas modificamos nuestro sistema de autentificación U-Pasaporte para que cada usuario tenga una y sólo una forma de entrar a los sistemas. Desde ahora, cuando U-Pasaporte registra un ingreso exitoso guardamos ese "usuario" (en estricto rigor ese proveedor de identidad) como tu "favorito" y de ahí en adelante solo esa combinación usuario-clave se aceptará para entrar a los sistema que usen U-Pasaporte.






Pero… ¿y por que el cambio?

Para entender cual era el problema primero tenemos que entender como funciona U-Pasaporte.
U-Pasaporte es un sistema que en si mismo no almacena combinaciones de usuarios-claves; en realidad es un intermediario entre muchos "proveedores de identidad" y "servicios". Este es un problema antiguo en computación; el protocolo de moda que utilizan Facebook, Twitter, Google entre otros se llama OAuth y es muy similar al esquema de U-Pasaporte... lamentablemente cuando creamos nuestro sistema OAuth aun no existía.

Los proveedores de identidad normalmente almacenan combinaciones de usuario-claves, donde "usuario" puede ser un username, RUT, dirección de e-mail u otro. Algunos de ellos son Pasaporte U-chile, sistema que se usa para el sitio alumnos.uchile.cl y los correos corporativos @u.uchile.cl @ug.uchile.cl, CEC que es utilizado por los alumnos de ingeniería para entrar a los computadores, Cuenta FEN que utilizan los alumnos de la FEN para sus sistemas, etc.

Un "servicio" en este caso es, por ejemplo, el mismo U-Cursos, U-Campus que son servicios corporativos de la facultad de Ingeniería, Proyecto Sensei sitio desarrollado por alumnos, etc. Estos servicios necesitan validar que las personas que los usan son quienes dicen ser, pero no requieren (ni deben!) conocer sus claves, así que U-Pasaporte hace el trabajo sucio.

El tener muchos proveedores de claves significa lidiar con varios problemas. Por ejemplo, cuando una persona existe en más de un "proveedor" a la vez, con nombre de usuario distintos o, peor aún, el mismo username, pero con claves distintas! Antiguamente, U-Pasaporte permitía que una persona en esta situación siguiera entrando a los servicios, pero se producía el efecto "cambié mi clave y la antigua sigue funcionando!". Claro, porque la persona es reconocida por dos proveedores distintos, pero cambió la clave sólo en uno de ellos.

Por un tiempo intentamos sincronizar las claves entre los distintos proveedores, de modo que si la cambiabas a través de U-Pasaporte, la actualizábamos contra todos los que pudiéramos. Sin embargo esto fue un fracaso, porque en varios casos no tenemos control ni mecanismos formales para modificar la información de la persona, y menos que nos informen de vuelta cuando alguien hace un cambio sin usar U-Pasaporte. Peor aún, si llegaba a fallar el cambio de clave en un proveedor, pero funcionaba en otros, la combinación de usuario-clave quedaba inconsistente.

Otro problema común es que era muy difícil ayudar a las personas que tenían problemas con la clave, porque no podíamos saber con certeza a donde dirigirlo para resolver la situación. Hace un año rediseñamos la página Ayuda con mi clave, para explicar mejor que existen muchas formas de entrar a cada sistema, y que si quieres realizar un cambio de clave tienes que ir a cada uno de los proveedores donde existes y usar su propio mecanismo de modificación de claves. ¿Enredado, no?

Hemos evaluado varias veces, eliminar este complicado esquema de "proveedores" y "servicios" por una clave única de U-Cursos. Es la solución más común, y resuelve todos los problemas, pero también pierde las fortalezas del esquema de U-Pasaporte: que es muy fácil entrar a un sistema la primera vez, que puedes tener una clave con el proveedor que más te acomode y con ella puedes entrar a todos los sistemas que usen U-Pasaporte, que podemos conectarnos fácilmente con nuevas facultades, entre otros.


tl; dr ¿Por qué me apareció este mensaje?

En resumen, el mensaje le ha aparecido a todos aquellos que usaban varias maneras de entrar a U-Cursos o U-Campus. Si, peor aun, ocupaste la opción de "No cerrar sesión" con varias combinaciones de usuario y clave distintas en dispositivos distintos, entonces te va a aparecer el mensaje muuuuuchas veces. En todo caso, ahora que está completo el nuevo esquema de U-Pasaporte, hemos hecho un borrón-y-cuenta-nueva a la información de "proveedor favorito" y "No cerrar sesión", para disminuir los casos de proveedores cruzados.


Apéndice: No cerrar sesión

Los lectores atentos habrán notado lo difícil es que es implementar un esquema de sesiones permanentes en U-Pasaporte. Claro, como U-Pasaporte es quien hace la validación de usuario y clave y NO el servicio (piensen en U-Cursos), entonces es U-Pasaporte quien debe recordar que "cierta persona no quiere cerrar sesión en cierto servicio". Un trabajo delicado y lleno de complicaciones que recién nos atrevimos a lanzar hace unos pocos meses.