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

689
-1

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
689
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Persona un système didentité pour le WebFrançois Marier – @fmarier
  2. 2. un système ouvert et fédéré pour lauthentification des utilisateurs
  3. 3. une solution au problème desmots de passe sur le Web
  4. 4. pourquoi ?
  5. 5. difficiles àretenir
  6. 6. cest tropfacile de les réutiliser
  7. 7. alternatives
  8. 8. décentralisé
  9. 9. moi.com/u/francois
  10. 10. vie privée®
  11. 11. comment ça marche ?
  12. 12. fmarier@gmail.com
  13. 13. <signatures numériques 101>
  14. 14. privée publique
  15. 15. publique
  16. 16. Je mappelleFrançois Marieret mon adressede courriel esttrop longuepour cette note.
  17. 17. Je mappelle François Marier et mon adresse de courriel est trop longue pour cette note.privée
  18. 18. Je mappelleFrançois Marieret mon adressede courriel esttrop longuepour cette note. publique
  19. 19. signer vérifier
  20. 20. </signatures numériques 101>
  21. 21. fmarier@gmail.com
  22. 22. authentification?
  23. 23. authentification? clé publique
  24. 24. authentification? clé publiqueclé publique signée
  25. 25. assertion wikipedia.orgValide pour : 2 minutes
  26. 26. assertion wikipedia.orgValide pour : 2 minutesvérifier laudience
  27. 27. assertion wikipedia.orgValide pour : 2 minutesvérifier laudiencevérifier lexpiration
  28. 28. assertion wikipedia.orgValide pour : 2 minutesvérifier laudiencevérifier lexpirationvérifier la signature
  29. 29. assertion clé publique wikipedia.org Valide pour : 2 minutes
  30. 30. assertion wikipedia.org Valide pour : 2 minutes
  31. 31. assertion cookie
  32. 32. cest pour quand ?
  33. 33. serveurs de courriel navigateurs
  34. 34. fmarier@gmail.com
  35. 35. fmarier@gmail.com
  36. 36. serveurs de courriel
  37. 37. navigator.id.*
  38. 38. navigateurs modernes >= 8
  39. 39. navigateurs modernes >= 8
  40. 40. vous pouvez utiliser Personadès aujourdhui
  41. 41. comment lutiliser sur votre site ?
  42. 42. <script src=”https://login.persona.org/include.js”></script></body></html>
  43. 43. navigator.id.watch({ loggedInEmail: “francois@mozilla.com”, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = /logout; }});
  44. 44. navigator.id.watch({ loggedInUser: “francois@mozilla.com”, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = /logout; }});
  45. 45. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = /logout; }});
  46. 46. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = /logout; }});
  47. 47. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { window.location = /; } ); }, onlogout: function () { window.location = /logout; }});
  48. 48. navigator.id.request()
  49. 49. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { window.location = /; } ); }, onlogout: function () { window.location = /logout; }});
  50. 50. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { window.location = /home; } ); }, onlogout: function () { window.location = /logout; }});
  51. 51. $ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify
  52. 52. $ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify
  53. 53. { status: “okay”, audience: “http://123done.org”, expires: 1344849682560, email: “francois@mozilla.com”, issuer: “login.persona.org”}
  54. 54. { status: “failed”, reason: “assertion has expired”}
  55. 55. navigator.id.logout()
  56. 56. navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post(/login, {assertion: assertion}, function (data) { window.location = /home; } ); }, onlogout: function () { window.location = /logout; }});
  57. 57. 1. charger bibliothèque JavaScript
  58. 58. 1. charger bibliothèque JavaScript2. écrire onlogin & onlogout
  59. 59. 1. charger bibliothèque JavaScript2. écrire onlogin & onlogout3. ajouter boutons (dé)connexion
  60. 60. 1. charger bibliothèque JavaScript2. écrire onlogin & onlogout3. ajouter boutons (dé)connexion4. vérifier lassertion
  61. 61. pour nous aider ...
  62. 62. utilisez Persona sur votre sitedites-nous ce que vous en penser demandez lesupport Persona
  63. 63. utilisez Persona sur votre sitedites-nous ce que vous en penser demandez lesupport Persona
  64. 64. utilisez Persona sur votre sitedites-nous ce que vous en penser demandez lesupport Persona
  65. 65. 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_Setuphttps://github.com/mozilla/browserid-cookbookhttps://developer.mozilla.org/docs/Persona/Libraries_and_pluginshttp://123done.org/https://wiki.mozilla.org/Identity#Get_Involved@fmarier http://fmarier.org
  66. 66. document de supporthttps://eyedee.me/.well-known/browserid:{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}
  67. 67. Sources des photos :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/ © 2013 François Marier <francois@mozilla.com> Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 Nouvelle-Zélande.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×