Projet / SemaineTech / 2013 / Ateliers / IdAuf / Archive

ARCHIVE ATELIER id.auf

   1 =========================Début Atelier id.auf============================
   2 (14:30:23) progfou: allons y !
   3 (14:31:07) progfou: aujourd'hui je vais vous parler du fameux ID.AUF
   4 (14:31:17) progfou: notre solution d'authentification AUF
   5 (14:31:39) progfou: le projet correspondant est visible sur https://redmine.auf.org/projects/auth/wiki
   6 (14:31:56) progfou: vous y trouverez une fiche de projet, ainsi que de nombreuses documentations
   7 (14:32:24) progfou: ce projet avait pour but de simplifier la question de l'authentification
   8 (14:32:44) progfou: l'AUF ayant de nombreux services web, chacun avec leur authentification propre
   9 (14:33:08) progfou: le service ID.AUF a été mis en place sur id.auf.org
  10 (14:33:28) progfou: en utilisant le logiciel Authentic 2, développé par la société Entr'ouvert
  11 (14:34:07) progfou: (qui, au passage, a été fondée par un ancien de l'AUF, et a accueilli d'autre ex-collègues AUF depuis ;-) )
  12 (14:34:43) progfou: le logiciel Authentic 2 offre beaucoup de possibilités, presque trop pour nous
  13 (14:35:00) progfou: donc nous l'avons remanié un peu, pour le limiter à nos besoins, dans un but de simplification pour nos usagers
  14 (14:35:27) progfou: cette solution d'authentification a plusieurs objectifs
  15 (14:35:40) progfou: déjà, la concentration de l'authentification à un seul endroit
  16 (14:36:07) progfou: cela permet avant tout de simplifier les choses pour l'utilisateur
  17 (14:36:20) progfou: un seul mot de passe à retenir, un seul endroit pour le changer
  18 (14:36:42) progfou: c'est également plus simple pour nous en terme de maintenance
  19 (14:36:57) progfou: et de support utilisateur bien sûr (en cas de perte de mot de passe par exemple)
  20 (14:37:23) progfou: le fait de centraliser l'authentification apporte également les notions de SSO et SLO
  21 (14:37:42) progfou: SSO = Single Sign-On => on s'authentifie une seule fois pour accéder à tous les services
  22 (14:37:58) progfou: c'est une notion d'ouverture de « session » web
  23 (14:38:41) progfou: SLO = Single Log-Out => on demande la déconnexion une seule fois et elle s'applique de façon globale (envoi à tous les sites sur lesquels nous sommes passés)
  24 (14:39:54) progfou: cela permet également la séparation entre les tâches d'authentification et de service web
  25 (14:40:17) progfou: ce qui apporte intrinsèquement une meilleure protection des mots de passes
  26 (14:40:42) progfou: en effet, du fait que l'authentification ne se fasse plus dans le site web mais « ailleurs »,
  27 (14:41:02) progfou: il n'est plus nécessaire de sauvegarder les mots de passe dans chaque site web
  28 (14:41:49) progfou: ce qui présente moins de risque si un site web est piraté => plus besoin de craindre que tous les mots de passe sauvés soient compromis et doivent être changés tous en même temps
  29 (14:42:30) progfou: de même, le mot de passe ne sera plus saisi/vérifié au niveau d'un site web, mais uniquement au niveau du site d'authentification
  30 (14:43:16) progfou: donc les sites web ne voient même plus arriver les mots de passe chez eux => ils ne voient que le résultat de l'authentification (réussie ou pas, quel utilisateur a passé la validation)
  31 (14:43:34) progfou: c'est un gain énorme sur le plan de la sécurité
  32 (14:44:40) progfou: le protocole utilisé pour ce faire, ici SAML 2, permet d'aller encore plus loin
  33 (14:45:11) progfou: il permet non seulement l'authentification (la vérification de l'identifiant utilisateur et du mot de passe)
  34 (14:45:35) progfou: mais aussi de donner des informations sur l'identité de cet utilisateur
  35 (14:46:21) progfou: des informations qui peuvent être nominatives ou non, d'ailleurs, ce qui permet aussi de gérer des accès anonymes mais uniques (utile par exemple pour un vote)
  36 (14:46:40) progfou: ces informations sont transmises sous la forme d'attributs certifiés
  37 (14:47:07) progfou: c'est à dire des couples (clé, valeur) signés par le fournisseur d'identité (par ID.AUF)
  38 (14:47:40) progfou: nous allons y revenir un peu plus loin quand on va regarder le fonctionnement technique plus en détail
  39 (14:48:13) progfou: cette technique prévoit aussi la possibilité de mettre en place un fournisseur d'identité
  40 (14:49:06) progfou: on irait ici plus loin que la simple authentification : on pourrait stocker des profils utilisateurs contenant des informations aussi diverses que leur cursus de formation
  41 (14:49:41) progfou: (remplacer la phrase plus haut par « mettre en place un fournisseur de profil utilisateur »)
  42 (14:50:49) progfou: ce service de profil utilisateur permettrait d'éviter aux usagers de ressaisir les mêmes informations dans nos différents services web (par exemple leur université d'origine dans les formulaires de candidature à une bourse)
  43 (14:51:18) progfou: et enfin, cette technique permet aussi d'utiliser plusieurs fournisseurs d'identité distincts
  44 (14:52:01) progfou: on observe typiquement cet usage sur les gros réseaux avec des gestions d'identité indépendantes, comme par exemple sur RENATER en France
  45 (14:52:40) progfou: cela permet à un site web d'autoriser plusieurs source d'authentification différentes (les différentes universités, centres de recherche, etc)
  46 (14:52:57) progfou: on peut imaginer qu'à l'AUF on ait une source d'authentification par CNF
  47 (14:53:25) progfou: et que nos usagers puissent alors se connecter à tous nos sites AUF en choisissant leur implantation d'origine (celle où on leur a créé un compte au départ)
  48 (14:54:51) progfou: mais pour le moment notre ID.AUF est limité aux seuls comptes AUF
  49 (14:54:59) progfou: c'est à dire les personnes ayant une adél @auf.org
  50 (14:55:12) progfou: mais cela va changer prochainement (avant la fin de l'année)
  51 (14:55:23) progfou: pour permettre l'enregistrement de comptes externes (le public)
  52 (14:56:07) progfou: de même, il est possible qu'à terme on ré-ouvre les autres possibilités d'authentification comme par exemple OpenID (ce qui évitent aux gens ayant un compte ailleurs d'en recréer un chez nous)
  53 (14:56:35) progfou: y a-t-il des questions avant que je passe aux aspects plus techniques de SAML ?
  54 (14:58:15) progfou: bon, je continue (me transmettre les questions le cas échéant)
  55 (14:58:53) progfou: ‎[07:58:31] ‎nguyen.le.duc.huy‎: Pour les gens qui quittent l'auf, on supprime leur compte @auf.org, quoi devient leur id.auf?
  56 (14:59:43) progfou: pour le moment, un bogue dans nos modification fait que leur compte n'est pas automatiquement bloqué sur ID.AUF, mais il est en passe d'être corrigé très prochainement
  57 (15:00:21) progfou: le blocage de leur compte sur ID.AUF fait partie de la procédure de départ d'un employé AUF, pour le moment manuellement, à terme automatiquement
  58 (15:01:34) progfou: mais à terme on pourra même aller plus loin : dissocier la notion de compte utilisateur sur ID.AUF de la notion d'employé AUF, ce qui permettrait à un utilisateur de perdre son statut d'employé, et les droits d'accès qui vont avec, tout en conservant un accès aux services AUF (par exemple une demande de bourse) comme utilisateur normal
  59 (15:02:17) progfou: c'est à dire que le compte sur ID.AUF ne serait pas fermé/supprimé, mais simplement modifié pour enlever le statut particulier d'employé AUF
  60 (15:02:45) progfou: vous allez mieux comprendre cette notion dans le test que je vais vous proposer dans quelques minutes
  61 (15:03:37) progfou: le logiciel utilisé, Authentic 2, est en fait un Django agrémenté de la librairie Lasso, une librairie implémentant toute la couche SAML
  62 (15:03:49) progfou: on reste donc sur un terrain bien connu : Python + Django
  63 (15:03:59) progfou: et cela nous donne beaucoup de marge pour y faire des adaptations
  64 (15:04:27) progfou: à l'occasion de ce projet, 2 employés de l'AUF ont suivi une formation spécifique sur SAML (Chanesakhone et moi-même)
  65 (15:04:51) progfou: pour celles/ceux qui voudraient aller plus loin, les documents liés à cette formation sont disponibles ici : documents de formation sur https://redmine.auf.org/projects/auth/documents
  66 (15:05:29) progfou: à noter que SAML 2 est le résultat d'une longue histoire, d'un rapprochement des technologies développées depuis des années en Europe (Shibboleth) et en Amérique (Liberty Aliance)
  67 (15:05:51) progfou: maintenant nous allons « regarder » ce qu'est vraiment SAML
  68 (15:06:20) progfou: pour cela vous aurez besoin de Firefox et de son extension SAML Tracer : https://addons.mozilla.org/fr/firefox/addon/saml-tracer/
  69 (15:07:59) progfou: une fois l'extension installée, vous allez ouvrir la fenêtre de l'extension via le menu Firefox > Outils > SAML Tracer
  70 (15:08:36) progfou: cette fenêtre va suivre toutes les requêtes web faites par Firefox et marquer clairement celles qui utilisent le protocole SAML
  71 (15:09:00) progfou: une fois cette fenêtre ouverte, vous allez faire un tour sur https://rms.renater.fr/
  72 (15:09:35) progfou: et là bas, cliquer sur le bouton bleu [Connexion via la fédération d'identité]
  73 (15:10:25) progfou: cela vous fera passer par discovery.renater.fr, qui est la partie découverte de fournisseur d'identité dont je vous parlais plus haut
  74 (15:10:47) progfou: là bas, vous choisissez Agence universitaire de la Francophonie (AUF)
  75 (15:10:56) progfou: puis [Connexion]
  76 (15:11:16) progfou: cela vous fait ensuite arriver sur notre ID.AUF : id.auf.org
  77 (15:11:28) progfou: là vous vous identifiez normalement
  78 (15:12:02) progfou: et cela vous renvoie automatiquement ensuite sur rms.renater.fr, mais cette fois-ci avec un accès identifié et donc le droit d'utiliser le service
  79 (15:12:26) progfou: une fois que vous avez suivi toutes ces étapes, revenez dans votre fenêtre SAML Tracer
  80 (15:12:45) progfou: vous y verrez un certain nombre de requêtes, dont plusieurs marquées d'un [SAML] en couleur orange
  81 (15:13:20) yemen.sayour: (15:12:39) ongolaBoy: c'est presque «magique» quand même et plus confortable je trouve de gérer les identités ainsi
  82 (15:13:23) progfou: cliquez en particulier sur la dernière : https://rms.renater.fr/Shibboleth.sso/SAML2/POST
  83 (15:13:49) progfou: vous verrez apparaître 3 onglets : http, Parameters et SAML
  84 (15:14:05) progfou: allez directement dans l'onglet SAML, et défilez le texte pour aller jusqu'en bas
  85 (15:14:41) progfou: vous y trouverez une section <saml:AttributeStatement> qui contient les attributs envoyés à RENATER par ID.AUF
  86 (15:15:21) progfou: on y trouve en particulier son nom :
  87 <saml:Attribute Name="urn:oid:2.16.840.1.113730.3.1.241"
  88 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
  89 FriendlyName="displayName"
  90 >
  91 <saml:AttributeValue>Jean Christophe André</saml:AttributeValue>
  92 (15:16:10) progfou: mais aussi d'autres attributs intéressants tel que le statut de l'utilisateur vis-à-vis de l'AUF :
  93 <saml:Attribute Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
  94 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
  95 FriendlyName="eduPersonAffiliation"
  96 >
  97 <saml:AttributeValue>employee</saml:AttributeValue>
  98 <saml:AttributeValue>member</saml:AttributeValue>
  99 </saml:Attribute>
 100 (15:16:55) progfou: le statut pour un utilisateur dans ID.AUF qui ne serait pas un employé pourrait être par exemple "affiliate" (= personne externe utilisant nos services)
 101 (15:17:23) progfou: typiquement, le service rms.renater.fr n'autorise que les utilisateurs ayant le statut d'employé à utiliser le pont de visio
 102 (15:18:17) yemen.sayour: (15:16:25) alexandre.domont: Q pour la fin : quels sont les prerequis pour câbler ID.AUF sur une application tiers (genre ownCloud ) ?
 103 (15:18:28) yemen.sayour: (15:17:58) ongolaBoy: je n'ai pas vu les requêtes [SAML] dans mon tracer :( ou bien je l'ai ouvert trop tard
 104 (15:19:01) progfou: pour alexandre.domont, j'y arrive justement
 105 (15:19:20) progfou: pour ongolaBoy, ‎il faut le faire dans Firefox, et ouvrir la fenêtre _avant_ de passer par l'authentification => refaire ;-) (se déconnecter de ID.AUF au préalable)
 106 (15:19:34) progfou: maintenant parlons de l'utilisation de ID.AUF sur nos sites
 107 (15:19:42) progfou: il y a 2 grandes façons
 108 (15:20:02) yemen.sayour: (15:19:36) ongolaBoy: il doit y avoir un temps de latence avant que RENATER reçoive la notification de déconnexion
 109 (15:19:51) ongolaBoy: sur id.auf, je me suis déjà déconnecté mais pas encore sur rms.renater.fr
 110 (15:20:41) progfou: cas particulier pour RENATER : le SLO ne fonctionne pas => il faut aller sur id.auf.org pour se déconnecter explicitement là bas d'abord
 111 (15:20:52) progfou: la façon « compliquée » : implémenter nativement le protocole SAML dans l'application web
 112 (15:21:41) progfou: ça se fait par exemple en utilisant la librairie Lasso, qui supporte la langages de développement les plus répandus, comme Python, C, Java, …
 113 (15:22:01) progfou: ou encore en utilisant une bibliothèque PHP comme SimpleSAMLphp
 114 (15:22:54) progfou: la façon « simple » : utiliser une application tierce (middleware) s'occupant de la partie SAML pour éviter d'avoir à l'implémenter nous-même (et pas forcément aussi bien)
 115 (15:23:14) progfou: ça se fait par exemple en utilisant mod_mellon, un module d'authentification pour Apache
 116 (15:23:34) progfou: c'est la méthode préconisée à l'AUF => à utiliser chaque fois que c'est possible (ce ne sera pas toujours le cas, mais presque)
 117 (15:23:59) progfou: Mellon va intercepter la partie SAML, puis fournir le résultat de l'authentification dans l'environnement Apache, que l'on retrouvera par exemple via REMOTE_USER
 118 (15:24:29) progfou: cela simplifie largement la mise en place et permet à toute application supportant l'authentification via REMOTE_USER d'être immédiatement utilisable
 119 (15:25:04) progfou: la mise en place de mod_mellon est relativement simple et j'ai fait une documentation pour l'expliquer ici : https://redmine.auf.org/projects/auth/wiki/MiseEnPlaceSP
 120 (15:25:43) progfou: ça se fait en 2 grandes étapes : installation de la couche Mellon côté site web, déclaration du site web dans ID.AUF
 121 (15:26:08) progfou: vous êtes autonome sur la première étape, la seconde dépendant de Montréal (Moussa ou moi)
 122 (15:26:22) progfou: voilà, j'en ai terminé
 123 (15:26:25) progfou: des questions rapides ?
 124 (15:27:19) yemen.sayour: non
 125 (15:27:20) progfou: je vais créer un salon labo-idauf pour celles/ceux qui voudraient expérimenter cela cette semaine
 126 (15:28:11) yemen.sayour: Merci Progfou 
 127 =========================FIn Atelier id.auf============================

Projet/SemaineTech/2013/Ateliers/IdAuf/Archive (dernière édition le 2013-09-04 12:33:04 par YemenSayour)