Introduction à Mozilla Persona

Antoine Duparay - antoine.duparay@mozfr.org

Introduction à Mozilla Persona

~$ whoami
>Antoine Duparay

  • En dernière année à l'ENSIMAG à Grenoble
  • Passionné par les usages du Web d'aujourd'hui et de demain
  • Et les interactions utilisateurs / entreprises qui en découlent
  • Contributeur Mozilla !

Qu'est ce que Persona ?

  • Un système d'authentification sur le web
  • basé sur le protocole BrowserID
  • Objectif : éliminer les mots de passe spécifiques des sites web
  • L'idée est de relié des adresses e-mail au navigateur

Tell me more !

Caractéristiques

  • Intégration dans tous les navigateurs
  • Connexion en un clic
  • Facile a utiliser / déployer
  • Protocole ouvert et décentralisé
  • Plus de dépendance à des services tiers ! (Vol de données...)

Tell me more !

DÉMO !

Comment ça marche ?

Trois acteurs :
  • L'utilisateur (identifié par son e-mail)
  • Le site utilisant Persona
  • Le fournisseur d'identité (principalement les fournisseurs d'email)

Implémentation en JS

Un objet, trois fonctions

				navigator.id.request()
				navigator.id.watch()
				navigator.id.logout()
			

Tell me more !

4 étapes

  1. Include de la librairie Persona
    <script src="https://login.persona.org/include.js"></script>
  2. Ajout des boutons de connexion / déconnexion
    <button onclick="navigator.id.request()">Login</button>
  3. Surveillance des actions de connexion / déconnexion
  4. Vérification de l'assertion

Surveillance des actions

				navigator.id.watch({
				  loggedInUser: currentUser,
				  onlogin: function(assertion) {
				    // A user has logged in! Here you need to:
				    // 1. Send the assertion to your backend for verification and to create a session.
				    // 2. Update your UI.
				    $.ajax({
				      type: 'POST',
				      url: '/auth/login', // This is a URL on your website.
				      data: {assertion: assertion},
				      success: function(res, status, xhr) { window.location.reload(); },
				      error: function(xhr, status, err) { alert("Login failure: " + err); }
				    });
				  },
				  onlogout: function() {}});
			

Verification de l'assertion

{ "status":"okay", "email":"bob@foobar.fr", "audience":"https://a.com:443", "expires":1308859352261, "issuer":"eyedee.me"}

Comment ça marche BrowserID ?

Trois étapes :
  • Fourniture du certificat de l'utilisateur
  • Génération de l'assertion
  • Vérification de l'assertion

Tell me more !

Fourniture du certificat de l'utilisateur

Vérification de l'assertion

Crédits