=== ARCHIVE ATELIER id.auf === {{{#!highlight irc =========================Début Atelier id.auf============================ (14:30:23) progfou: allons y ! (14:31:07) progfou: aujourd'hui je vais vous parler du fameux ID.AUF (14:31:17) progfou: notre solution d'authentification AUF (14:31:39) progfou: le projet correspondant est visible sur https://redmine.auf.org/projects/auth/wiki (14:31:56) progfou: vous y trouverez une fiche de projet, ainsi que de nombreuses documentations (14:32:24) progfou: ce projet avait pour but de simplifier la question de l'authentification (14:32:44) progfou: l'AUF ayant de nombreux services web, chacun avec leur authentification propre (14:33:08) progfou: le service ID.AUF a été mis en place sur id.auf.org (14:33:28) progfou: en utilisant le logiciel Authentic 2, développé par la société Entr'ouvert (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 ;-) ) (14:34:43) progfou: le logiciel Authentic 2 offre beaucoup de possibilités, presque trop pour nous (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:35:27) progfou: cette solution d'authentification a plusieurs objectifs (14:35:40) progfou: déjà, la concentration de l'authentification à un seul endroit (14:36:07) progfou: cela permet avant tout de simplifier les choses pour l'utilisateur (14:36:20) progfou: un seul mot de passe à retenir, un seul endroit pour le changer (14:36:42) progfou: c'est également plus simple pour nous en terme de maintenance (14:36:57) progfou: et de support utilisateur bien sûr (en cas de perte de mot de passe par exemple) (14:37:23) progfou: le fait de centraliser l'authentification apporte également les notions de SSO et SLO (14:37:42) progfou: SSO = Single Sign-On => on s'authentifie une seule fois pour accéder à tous les services (14:37:58) progfou: c'est une notion d'ouverture de « session » web (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) (14:39:54) progfou: cela permet également la séparation entre les tâches d'authentification et de service web (14:40:17) progfou: ce qui apporte intrinsèquement une meilleure protection des mots de passes (14:40:42) progfou: en effet, du fait que l'authentification ne se fasse plus dans le site web mais « ailleurs », (14:41:02) progfou: il n'est plus nécessaire de sauvegarder les mots de passe dans chaque site web (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 (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 (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) (14:43:34) progfou: c'est un gain énorme sur le plan de la sécurité (14:44:40) progfou: le protocole utilisé pour ce faire, ici SAML 2, permet d'aller encore plus loin (14:45:11) progfou: il permet non seulement l'authentification (la vérification de l'identifiant utilisateur et du mot de passe) (14:45:35) progfou: mais aussi de donner des informations sur l'identité de cet utilisateur (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) (14:46:40) progfou: ces informations sont transmises sous la forme d'attributs certifiés (14:47:07) progfou: c'est à dire des couples (clé, valeur) signés par le fournisseur d'identité (par ID.AUF) (14:47:40) progfou: nous allons y revenir un peu plus loin quand on va regarder le fonctionnement technique plus en détail (14:48:13) progfou: cette technique prévoit aussi la possibilité de mettre en place un fournisseur d'identité (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 (14:49:41) progfou: (remplacer la phrase plus haut par « mettre en place un fournisseur de profil utilisateur ») (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) (14:51:18) progfou: et enfin, cette technique permet aussi d'utiliser plusieurs fournisseurs d'identité distincts (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 (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) (14:52:57) progfou: on peut imaginer qu'à l'AUF on ait une source d'authentification par CNF (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) (14:54:51) progfou: mais pour le moment notre ID.AUF est limité aux seuls comptes AUF (14:54:59) progfou: c'est à dire les personnes ayant une adél @auf.org (14:55:12) progfou: mais cela va changer prochainement (avant la fin de l'année) (14:55:23) progfou: pour permettre l'enregistrement de comptes externes (le public) (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) (14:56:35) progfou: y a-t-il des questions avant que je passe aux aspects plus techniques de SAML ? (14:58:15) progfou: bon, je continue (me transmettre les questions le cas échéant) (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? (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 (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 (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 (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 (15:02:45) progfou: vous allez mieux comprendre cette notion dans le test que je vais vous proposer dans quelques minutes (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 (15:03:49) progfou: on reste donc sur un terrain bien connu : Python + Django (15:03:59) progfou: et cela nous donne beaucoup de marge pour y faire des adaptations (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) (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 (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) (15:05:51) progfou: maintenant nous allons « regarder » ce qu'est vraiment SAML (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/ (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 (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 (15:09:00) progfou: une fois cette fenêtre ouverte, vous allez faire un tour sur https://rms.renater.fr/ (15:09:35) progfou: et là bas, cliquer sur le bouton bleu [Connexion via la fédération d'identité] (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 (15:10:47) progfou: là bas, vous choisissez Agence universitaire de la Francophonie (AUF) (15:10:56) progfou: puis [Connexion] (15:11:16) progfou: cela vous fait ensuite arriver sur notre ID.AUF : id.auf.org (15:11:28) progfou: là vous vous identifiez normalement (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 (15:12:26) progfou: une fois que vous avez suivi toutes ces étapes, revenez dans votre fenêtre SAML Tracer (15:12:45) progfou: vous y verrez un certain nombre de requêtes, dont plusieurs marquées d'un [SAML] en couleur orange (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 (15:13:23) progfou: cliquez en particulier sur la dernière : https://rms.renater.fr/Shibboleth.sso/SAML2/POST (15:13:49) progfou: vous verrez apparaître 3 onglets : http, Parameters et SAML (15:14:05) progfou: allez directement dans l'onglet SAML, et défilez le texte pour aller jusqu'en bas (15:14:41) progfou: vous y trouverez une section qui contient les attributs envoyés à RENATER par ID.AUF (15:15:21) progfou: on y trouve en particulier son nom : Jean Christophe André (15:16:10) progfou: mais aussi d'autres attributs intéressants tel que le statut de l'utilisateur vis-à-vis de l'AUF : employee member (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) (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 (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 ) ? (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 (15:19:01) progfou: pour alexandre.domont, j'y arrive justement (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) (15:19:34) progfou: maintenant parlons de l'utilisation de ID.AUF sur nos sites (15:19:42) progfou: il y a 2 grandes façons (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 (15:19:51) ongolaBoy: sur id.auf, je me suis déjà déconnecté mais pas encore sur rms.renater.fr (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 (15:20:52) progfou: la façon « compliquée » : implémenter nativement le protocole SAML dans l'application web (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, … (15:22:01) progfou: ou encore en utilisant une bibliothèque PHP comme SimpleSAMLphp (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) (15:23:14) progfou: ça se fait par exemple en utilisant mod_mellon, un module d'authentification pour Apache (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) (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 (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 (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 (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 (15:26:08) progfou: vous êtes autonome sur la première étape, la seconde dépendant de Montréal (Moussa ou moi) (15:26:22) progfou: voilà, j'en ai terminé (15:26:25) progfou: des questions rapides ? (15:27:19) yemen.sayour: non (15:27:20) progfou: je vais créer un salon labo-idauf pour celles/ceux qui voudraient expérimenter cela cette semaine (15:28:11) yemen.sayour: Merci Progfou =========================FIn Atelier id.auf============================ }}}