Mozilla Persona nos garantiza un futuro con una contraseña

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.

¿Porqué usar Persona?

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:

  • Con este servicio los desarrolladores no tenemos que preocuparnos de administrar y guardar las contraseñas de nuestros usuarios.

  • Es un sistema fácil de usar, con un par de clicks ya estamos identificados (Voost y The Times Crossword ya usan este sistema).

  • Es sencillo de implementar en nuestra web y no te llevará demasiado tiempo.

  • Y además Mozilla garantiza que los correos ya están verificados, lo que nos hace ahorrarnos tiempo

Añadir Persona en tu página web

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.

Incluir la API

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

Añadir botones de inicio y cierre de sesión

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()).

Escucha el inicio y el cierre de sesión


La API cuenta con una función que se encarga de ejecutar distintas instrucciones según el evento producido (login o logout).
En este ejemplo vemos como funciona esta función y como usarla si estuviésemos identificados como Carlos:

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.

Verificar los credenciales del 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"
}

Revisar si el proceso es seguro

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

Portada de Genbeta