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

François Marier – @fmarier

Personaun système d'identitépour le Web

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

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

l'authentificationdes utilisateurs

Page 4: Persona: un système d'identité pour le Web
Page 5: Persona: un système d'identité pour le Web
Page 6: Persona: un système d'identité pour le Web
Page 7: Persona: un système d'identité pour le Web
Page 8: Persona: un système d'identité pour le Web
Page 9: Persona: un système d'identité pour le Web
Page 10: Persona: un système d'identité pour le Web

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

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

pourquoi ?

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

difficilesà

retenir

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

c'est tropfacile de lesréutiliser

Page 15: Persona: un système d'identité pour le Web
Page 16: Persona: un système d'identité pour le Web
Page 17: Persona: un système d'identité pour le Web
Page 18: Persona: un système d'identité pour le Web
Page 19: Persona: un système d'identité pour le Web
Page 20: Persona: un système d'identité pour le Web
Page 21: Persona: un système d'identité pour le Web
Page 22: Persona: un système d'identité pour le Web
Page 23: Persona: un système d'identité pour le Web

alternatives

Page 24: Persona: un système d'identité pour le Web
Page 25: Persona: un système d'identité pour le Web
Page 26: Persona: un système d'identité pour le Web

décentralisé

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

moi.com/u/francois

Page 28: Persona: un système d'identité pour le Web
Page 29: Persona: un système d'identité pour le Web
Page 30: Persona: un système d'identité pour le Web
Page 31: Persona: un système d'identité pour le Web
Page 32: Persona: un système d'identité pour le Web

vie privée®

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

comment çamarche ?

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

<signatures numériques 101>

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

privée publique

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

publique

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

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

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

privée

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

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

publique

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

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

signer vérifier

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

</signatures numériques 101>

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

authentification?

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

clé publique

authentification?

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

clé publique signée

clé publique

authentification?

Page 48: Persona: un système d'identité pour le Web
Page 49: Persona: un système d'identité pour le Web
Page 50: Persona: un système d'identité pour le Web

Valide pour : 2 minutes

wikipedia.org

assertion

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

Valide pour : 2 minutes

wikipedia.org

vérifier l'audience

assertion

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

Valide pour : 2 minutes

wikipedia.org

vérifier l'audiencevérifier l'expiration

assertion

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

Valide pour : 2 minutes

wikipedia.org

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

assertion

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

assertion

Valide pour : 2 minutes

wikipedia.org

clé publique

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

assertion

Valide pour : 2 minutes

wikipedia.org

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

assertion

cookie

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

c'est pourquand ?

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

serveurs de courriel

navigateurs

Page 61: Persona: un système d'identité pour le Web
Page 62: Persona: un système d'identité pour le Web
Page 63: Persona: un système d'identité pour le Web
Page 64: Persona: un système d'identité pour le Web

serveurs de courriel

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

navigator.id.*

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

navigateurs modernes

>= 8

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

>= 8

navigateurs modernes

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

vous pouvez utiliser Personadès aujourd'hui

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

comment l'utilisersur votre site ?

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

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

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

navigator.id.watch({ loggedInEmail: “[email protected]”, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

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

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

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

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

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

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

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

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

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

navigator.id.request()

Page 80: Persona: un système d'identité pour le Web
Page 81: Persona: un système d'identité pour le Web
Page 82: Persona: un système d'identité pour le Web
Page 83: Persona: un système d'identité pour le Web

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

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

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

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

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

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

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

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

{ status: “okay”,

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

expires: 1344849682560,

email: “[email protected]”,

issuer: “login.persona.org”}

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

{ status: “failed”,

reason: “assertion has expired”}

Page 89: Persona: un système d'identité pour le Web
Page 90: Persona: un système d'identité pour le Web
Page 91: Persona: un système d'identité pour le Web
Page 92: Persona: un système d'identité pour le Web

navigator.id.logout()

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

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

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

1. charger bibliothèque JavaScript

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

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

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

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

3. ajouter boutons (dé)connexion

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

1. charger bibliothèque JavaScript

2. écrire onlogin & onlogout

3. ajouter boutons (dé)connexion

4. vérifier l'assertion

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

pour nous aider ...

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

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

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

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

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

utilisez Personasur votre site

dites-nous ce quevous en penser

demandez lesupport Persona

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

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

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

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

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

© 2013 François Marier <[email protected]>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 :