Persona: un système d'identité pour le Web

Preview:

DESCRIPTION

Persona est un système d'identité fédéré qui met l'emphase sur la protection de la vie privée et la convivialité tout en facilitant le travail des développeurs Web. Cette présentation a pour but d'introduire ce système et les éléments de cryptographies sur lesquels il repose ainsi que de donner un exemple concret de son utilisation dans une application Web.

Citation preview

François Marier – @fmarier

Personaun système d'identitépour le Web

un système ouvertet fédéré pour

l'authentificationdes utilisateurs

une solution au problème desmots de passe sur le Web

pourquoi ?

difficilesà

retenir

c'est tropfacile de lesréutiliser

alternatives

décentralisé

moi.com/u/francois

vie privée®

comment çamarche ?

fmarier@gmail.com

<signatures numériques 101>

privée publique

publique

Je m'appelleFrançois Marieret mon adressede courriel esttrop longuepour cette note.

privée

Je m'appelleFrançois Marieret mon adressede courriel esttrop longuepour cette note.

publique

Je m'appelleFrançois Marieret mon adressede courriel esttrop longuepour cette note.

signer vérifier

</signatures numériques 101>

fmarier@gmail.com

authentification?

clé publique

authentification?

clé publique signée

clé publique

authentification?

Valide pour : 2 minutes

wikipedia.org

assertion

Valide pour : 2 minutes

wikipedia.org

vérifier l'audience

assertion

Valide pour : 2 minutes

wikipedia.org

vérifier l'audiencevérifier l'expiration

assertion

Valide pour : 2 minutes

wikipedia.org

vérifier l'audiencevérifier l'expirationvérifier la signature

assertion

assertion

Valide pour : 2 minutes

wikipedia.org

clé publique

assertion

Valide pour : 2 minutes

wikipedia.org

assertion

cookie

c'est pourquand ?

serveurs de courriel

navigateurs

fmarier@gmail.com

fmarier@gmail.com

serveurs de courriel

navigator.id.*

navigateurs modernes

>= 8

>= 8

navigateurs modernes

vous pouvez utiliser Personadès aujourd'hui

comment l'utilisersur votre site ?

<script src=”https://login.persona.org/include.js”></script></body></html>

navigator.id.watch({ loggedInEmail: “francois@mozilla.com”, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.watch({ loggedInUser: “francois@mozilla.com”, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/'; } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.request()

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/'; } ); }, onlogout: function () { window.location = '/logout'; }});

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/home'; } ); }, onlogout: function () { window.location = '/logout'; }});

$ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify

$ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify

{ status: “okay”,

audience: “http://123done.org”,

expires: 1344849682560,

email: “francois@mozilla.com”,

issuer: “login.persona.org”}

{ status: “failed”,

reason: “assertion has expired”}

navigator.id.logout()

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/home'; } ); }, onlogout: function () { window.location = '/logout'; }});

1. charger bibliothèque JavaScript

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

3. ajouter boutons (dé)connexion

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

3. ajouter boutons (dé)connexion

4. vérifier l'assertion

pour nous aider ...

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

Pour en savoir plus :

https://login.persona.org/http://identity.mozilla.com/

https://developer.mozilla.org/docs/Persona/Why_Personahttps://developer.mozilla.org/docs/Persona/Quick_Setup

https://github.com/mozilla/browserid-cookbookhttps://developer.mozilla.org/docs/Persona/Libraries_and_plugins

http://123done.org/https://wiki.mozilla.org/Identity#Get_Involved

@fmarier http://fmarier.org

https://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

document de support

© 2013 François Marier <francois@mozilla.com>Cette œuvre est mise à disposition selon les termes de laLicence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 Nouvelle-Zélande.

Top 500 des mots de passe: http://xato.net/passwords/more-top-worst-passwords/

Parchemin: https://secure.flickr.com/photos/27613359@N03/6750396225/

Biscuits: https://secure.flickr.com/photos/jamisonjudd/4810986199/

Uncle Sam: https://secure.flickr.com/photos/donkeyhotey/5666065982/

Passeport canadien: https://secure.flickr.com/photos/rustyangel/5839428526/

Sources des photos :

Recommended