
Tras varios años de desarrollo la Fundación Mozilla a liberado Mozilla Persona, un sistema de autentificación Open Source que rivalizará con OpenID pero con mejoras significativas, como la promesa de que podrás unir todas tus cuentas de correo electrónico tras una misma contraseña, dándote la opción de usar la que creas adecuada para cada momento.
El sistema se puede usar en todos los navegadores (como Internet Explorer y Opera, por ejemplo) y se tiene total compatibilidad con dispositivos móviles.
A primera vista la gran mejora es que podemos tener vinculado a esta cuenta varios emails, lo que supone que podemos tener varios perfiles en una web y actuar de distintas formas, por ejemplo si usásemos un servicio como Dropbox podríamos tener una cuenta personal y otra de empresa totalmente independientes.
También existen otros motivos por los que usar este servicio:
Por el momento Mozilla persona esta en fase beta y nos recomiendan estar atentos a las novedades, pero el servicio funcionará correctamente si se implementa con sus instrucciones.
Este sistema esta diseñado para no depender del navegador en el que lo usemos y se consigue gracias a la API escrita en JavaScript que nos proporciona el objeto navigator.id.
Para incluir la API debemos de añadir en el <head></head> la siguiente etiqueta:
<script src="https://login.persona.org/include.js"></script>
Nos recomiendan no cargar este archivo desde nuestra web ya que puede sufrir cambios mientras sigue el desarrollo
Este sistema nos permite una total personalización e integración con nuestra web ya que solo debemos de llamar a la función necesaria para abrir (navigator.id.request()) o cerrar sesión (navigator.id.logout()).
var currentUser = 'carlos@ejemplo.com';
navigator.id.watch({
loggedInEmail: currentUser,
onlogin: function(Datos_Identificacion) {
//Añade las instrucciones necesarias para modificar la página
//"Datos_Identificacion" nos devuelve los datos necesario del que se acaba de identificar
},
onlogout: function() {
//Añade las instrucciones necesarias para modificar la página
}
});
Para hacer la página más dinámica podemos usar AJAX para registrar el inicio o el cierre de sesión en nuestro backend y mediante JavaScript adaptar la página al usuario.
Persona en lugar de usar contraseñas utiliza lo que denominan una “declaración de identidad“ que es devuelta en el evento OnLogin de la API.
Para verificar la seguridad de este servicio lo que se hace es hacer que nuestra página compruebe que el código devuelto como verificación de que el acceso es valido y no se a falseado (con JavaScript no sería difícil recrear el evento y devolver un código falso).
Para verificarlo debemos de hacer la comprobación en el backend con el servicio de verificación de Mozilla Persona que consiste en mandar a https://verifier.login.persona.org/verify el código de verificación devuelto por la API y el nombre y puerto del host (encriptado ya que se manda con el protocolo https).
Si es válida la solicitud te devolverá un elemento JSON como el siguiente:
{
"status": "okay",
"email": "carlos@ejemplo.com",
"audience": "https://miweb.com:443",
"expires": 1308859352261,
"issuer": "ejemplo.com"
}
Desde Mozilla nos recomiendan tras haber probado el funcionamiento del sistema de autentificación dedicar un tiempo para revisar las buenas practicas que debemos de tener en cuenta para la seguridad de este sistema.
Más información | Mozilla Persona