105
François Marier – @fmarier Persona un système d'identité pour le Web

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

Embed Size (px)

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

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 :