Social2saml : déléguer l`authentification à des
Transcription
Social2saml : déléguer l`authentification à des
Social2saml : déléguer l’authentification à des opérateurs tiers Olivier Salaün GIP RENATER Campus de Beaulieu 263, Avenue du Gal Leclerc CS 74205 35042 RENNES Cedex Résumé La fédération d’identités et le protocole SAML [1] permettent d’ouvrir l’accès à des services en ligne dans la communauté Éducation-Recherche, en évitant à chaque opérateur de services en ligne de gérer les identités de tous ses utilisateurs potentiels. Cependant certains services destinés à un public plus large ne peuvent reposer sur l’infrastructure SAML de la Fédération Éducation-Recherche [2] ; notamment les futurs étudiants, les anciens étudiants, les parents d’élèves ou plus généralement les utilisateurs de type « invité ». Or la plupart de ces utilisateurs disposent déjà, à travers leur participation à des réseaux sociaux, d’un mécanisme permettant de les authentifier. En effet, la plupart des opérateurs de réseaux sociaux publient leur API d’authentification afin de permettre à des services tiers d’authentifier leurs utilisateurs. Ces modes d’authentification alternatifs permettent de compléter l’infrastructure SAML utilisée par les établissements, au même titre que les Comptes Réseaux Universels (comptes CRU) [3] déjà proposés par RENATER. RENATER, opérateur de l’infrastructure SAML nationale, développe un service pilote afin d’unifier l’accès aux mécanismes d’authentification de quelques réseaux sociaux : Facebook, Google, LinkedIn, Yahoo, Microsoft Live@edu. Le service proposé permettrait aux établissements d’étendre leurs comptes invités et de déléguer l’authentification, pour certains de leurs services, à ces opérateurs d’authentification sans devoir implémenter de nouveaux protocoles d’authentification. L’architecture social2saml est composée de plusieurs passerelles (une par réseau social) agissant en tant que fournisseur d’identités (IdP) dans l’environnement SAML et en tant client OAuth2 [4] vis à vis du réseau social choisi. Mots-clefs Fédération d’identités, SAML, fournisseur d’identités, comptes invités, réseaux sociaux, OAuth, OpenID Connect, API 1 Introduction Depuis 2005, la communauté éducation-recherche française dispose d’une infrastructure de fédération d’identités permettant d’utiliser le service d’authentification web de chaque établissement, au-delà des usages internes. Ce cercle de confiance favorise la mise en œuvre de services numériques mutualisés à l’échelle nationale. Récemment, l’interfédération eduGAIN [5] a permis d’étendre encore le périmètre des utilisateurs disposant d’un service d’authentification (i.e. un fournisseur d’identités, selon la terminologie SAML) compatible avec le protocole SAML [1]. L’accès à un service en ligne (i.e. un fournisseur de service, selon la terminologie SAML) pose toujours un problème : les utilisateurs du service ne disposent pas tous d’un fournisseur d’identités. Parfois il s’agit d’un organisme n’ayant pas encore mis en œuvre un fournisseur d’identités SAML. Dans d’autres cas l’utilisateur ne disposera jamais d’un compte reconnu ; il s’agit par exemple de partenaires, de prestataires, des anciens étudiants, des parents d’élèves. JRES 2015 - Montpellier 1/9 C’est pour répondre à ce besoin que RENATER a très tôt mis en place un fournisseur d’identités pour gérer des comptes invités : les Comptes Réseaux Universels [3]. D’autres solutions sont envisageables pour gérer l’authentification et les contrôles d’accès pour ces populations spécifiques, dont la passerelle avec des fournisseurs d’identités tiers que RENATER a maquetté. Dans la première partie, le fonctionnement d’un service de gestion de comptes invités sera présenté, en particulier le service des Comptes CRU proposé par RENATER. Dans la seconde partie nous présenterons comment des opérateurs tiers exposent leur service d’authentification. La troisième partie présentera l’architecture de la passerelle social2saml développée par RENATER. Enfin, la quatrième partie présentera les modalités d’utilisation du service social2saml. 2 L’authentification via des comptes invités Il est intéressant de comparer le fonctionnement de la passerelle Social2Saml avec la gestion de comptes invités puisque les deux services ont la même population cible : les utilisateurs ne disposant pas d’un fournisseur d’identités SAML institutionnel. Le gestionnaire de comptes invités proposé par RENATER et appelé Comptes CRU [3] servira d’exemple. 2.1 Les Comptes Réseaux Universels 2.1.1 Provisionnement et profil utilisateur Le service des Comptes Réseaux Universels permet la création de comptes en mode auto-enregistrement, sans restriction sur la population utilisateurs. Pour initier la création du compte, le demandeur fournit son adresse email et choisit un mot de passe. L’opération d’activation du compte consiste à envoyer un mail de validation à ladite adresse email renseignée et vérifier que le demandeur valide la demande en cliquant sur le lien. Figure 1 - formulaire de création d'un Compte CRU Le profil utilisateur d’un Compte CRU comprend des attributs ayant un mode de provisionnement et des processus de validation différents : • commonName, displayName, givenName, preferredLanguage et surName : informations saisies par l’utilisateur, sans processus de validation. Ces informations ne peuvent être utilisées que pour personnaliser les contenus d’un service en ligne ; JRES 2015 - Montpellier 2/9 • • mail : information saisie par l’utilisateur puis validée par une confirmation. Cette information peut-être utilisée pour contacter l’utilisateur ou comme identifiant utilisateur ; eduPersonPrincipalName et eduPersonPersistentID : informations générées à la création du compte CRU, non ré-assignable à un autre compte. Ces informations peuvent être utilisées comme identifiant utilisateur. Un fournisseur d’identités SAML est associé au référentiel des Comptes Réseaux Universels, permettant à l’utilisateur d’utiliser son compte CRU pour accéder à des services en ligne implémentant le protocole SAML (i.e. des fournisseurs de services). A l’inverse des comptes associés au fournisseur d’identités et gérés par des établissements E/R qui peuvent porter des privilèges (attributs eduPersonAffiliation indiquant la catégorie d’utilisateur ou eduPersonEntitlement indiquant un droit d’accès plus spécifique), un compte CRU ne véhicule aucun attribut susceptible de porter un privilège. Chaque service en ligne utilisant des comptes CRU attribuera des droits associés à l’identifiant utilisateur. 2.1.2 Relation avec le cercle de confiance de la fédération Les fournisseurs d’identités, membres de la Fédération Education-Recherche [2], ont un périmètre de population défini, puisque les comptes utilisateurs associés correspondent à la population de l’établissement E/R concerné. Les fournisseurs de services consommant ces identités gèrent les droits d’accès à leur service en fonction de la provenance des utilisateurs. Le périmètre du fournisseur d’identités des Comptes CRU étant plus large, RENATER ne l’intègre pas dans le cercle de confiance de la fédération. Dès lors, chaque fournisseur de services doit explicitement ajouter les Comptes CRU parmi ses fournisseurs d’identités de confiance. 2.2 Gestion des comptes invités interne aux établissements E/R La plupart des établissements E/R mettent en œuvre leur propre service de gestion de comptes invités, afin d’ouvrir ponctuellement un sous-ensemble de leurs services (Wi-Fi, accès aux postes de travail, impression, etc.) à des personnes externes. La gestion de ces comptes invités peut être complexe pour les établissements concernés. Dans l’article « Sésame 2 : vers une gestion d’identités moderne » [6] présenté aux JRES en 2013, les auteurs évoquaient : «Des comptes pourront être créés par les utilisateurs eux-mêmes, en lien avec une identité externe au Système d’Information de l’établissement, fournie par un prestataire externe (un numéro de téléphone, une adresse électronique, un identifiant Facebook, Twitter, LinkedIn, OpenID…). Cette ouverture vers des systèmes d'authentification externes devra permettre entre autre d'ouvrir nos outils à des coopérations avec des personnes externes. Elle n'est possible qu'en séparant fortement authentification et autorisation. ». 3 L’authentification via un opérateur type de réseau tiers De nombreuses personnes disposent d’un compte auprès d’opérateurs de réseaux tiers tels que Facebook, Google, LinkedIn, Yahoo. Ces opérateurs proposent des APIs permettant à des services tiers d’utiliser leur mécanisme d’authentification ; il est donc envisageable pour des établissements E/R d’authentifier certains utilisateurs via un compte externe. Ce mode d’authentification représente une alternative à la gestion des comptes invités. 3.1 Gestion des comptes et API d’authentification Le processus de création d’un compte auprès d’un opérateur tiers est généralement comparable à celui utilisé pour un compte invité, à savoir la collecte de certaines données (nom, prénom) de manière déclarative et de l’adresse email qui sera ensuite validée via un processus de validation par email. Nous pouvons considérer que le niveau de confiance dans un compte géré par un opérateur tiers est équivalent à un compte invité type Compte CRU. Les opérateurs tiers proposent des APIs permettant à des services externes de leur déléguer l’authentification des utilisateurs. La majorité de ces opérateurs implémentent le protocole OAuth2 [4] pour le transfert du profil utilisateur. Selon la terminologie OAuth2 l’opérateur tiers agit en tant que Resource Server et Authorization Server et le service client agit en tant que Client. JRES 2015 - Montpellier 3/9 Le processus de transfert du profil utilisateur au Client fait l’objet d’un recueil de consentement utilisateur de la part de du Authorization Server, après la phase d’authentification, voir la figure 2. Figure 2 - étape de consentement utilisateur de Google 3.2 Profil utilisateur issu d’un opérateur tiers La richesse du profil utilisateur que les opérateurs tiers peuvent transmettre via le protocole OAuth2 est variable. Les nom et prénom de l’utilisateur, son adresse email et son identifiant utilisateur sont transmis systématiquement, tout comme pour les comptes invités. La valeur de l’identifiant utilisateur peut être globale pour tous les services clients (équivalent de l’attribut uid de SupAnn [7]), mais certains opérateurs (comme LinkedIn) fournissent une valeur d’identifiant différente à chaque service client (équivalent de l’attribut eduPersonTargetedID [8]). 4 Le service social2saml expérimenté par RENATER 4.1 Architecture du service RENATER a mis en place un prototype de service social2saml visant à interconnecter des fournisseurs d’identités issus de la sphère des réseaux sociaux avec des fournisseurs de services implémentant le protocole SAML [1]. Le service doit permettre à un service en ligne de la communauté éducation-recherche de proposer à ses utilisateurs une authentification auprès de certains opérateurs tiers, sans devoir implémenter de nouveaux protocoles d’authentification (notamment OAuth2 [4]). Le service social2saml est architecturé autour d’une passerelle capable de dialoguer en SAML avec des fournisseurs de services et en OAuth2 avec des opérateurs de réseaux sociaux. Comme l’illustre la figure 3, un fournisseur de service SAML voit la passerelle «Google » comme un IdP SAML classique. Le fournisseur d’identités « Google » voit la passerelle RENATER comme une application cliente OAuth2 et n’a pas d’échange direct avec les fournisseurs de services de la communauté E/R. Pour l’utilisateur du service, la passerelle est invisible. JRES 2015 - Montpellier 4/9 Figure 3 - architecture de la passerelle Social2Saml La passerelle social2saml utilise le logiciel simpleSAMLphp [9], une alternative au logiciel Shibboleth [10]. Contrairement à Shibboleth, SimpleSAMLphp propose nativement un large choix de modules d’authentification, comme Facebook Connect, Linkedin, Sign-in with Twitter, Windows Live. RENATER a par ailleurs développé un module d’authentification pour Google. 4.2 Mapping SAML des attributs utilisateurs La passerelle assure le rôle de traduction en SAML [1] des attributs utilisateurs transmis par les Resource Servers OAuth2 [4] ; cette fonction est gérée par le logiciel simpleSAMLphp. Les attributs utilisateurs SAML utilisés pour véhiculer le profil utilisateur sont définis dans les recommandations SupAnn [7], comme précisé dans le cadre technique de la Fédération Éducation-Recherche [11]. Nous indiquons dans le tableau ci-dessous la liste des attributs utilisateurs gérés par la passerelle social2saml. Donnée utilisateur Attribut supAnn Exemple de valeur Prénom givenName Jules Nom sn César Nom complet displayName Jules César Adresse email mail [email protected] Identifiant utilisateur uid jcesar72 Identifiant utilisateur global eduPersonPrincipalName [email protected] 5 Utilisation du service social2SAML 5.1 Modalités de mise en œuvre La passerelle Social2Saml est composée de plusieurs fournisseurs d’identités SAML, un par opérateur de réseau social supporté. RENATER n’inclura pas ces fournisseurs d’identités dans la Fédération Éducation-Recherche [2] puisque la JRES 2015 - Montpellier 5/9 population utilisateurs couverte est très différente du fournisseur d’identités d’un établissement E/R composé uniquement d’étudiants, de chercheurs, d’enseignants et de personnels administratifs et techniques. Ainsi le gestionnaire d’un service en ligne désirant proposer l’authentification via une des instances social2saml (Facebook par exemple) devra ajouter à la configuration de son fournisseur de service SAML le chargement des métadonnées SAML de ce fournisseur d’identités ; RENATER publiera les méta-données SAML de chacun des fournisseurs d’identités concernés. Dès lors les utilisateurs du service pourront sélectionner leur réseau social préféré pour s’authentifier sur le service, comme le montre la figure 4. Figure 4 - sélection du fournisseur d'identités par l'utilisateur 5.2 Le processus d’authentification Le processus d’authentification d’un utilisateur auprès d’un fournisseur d’identités social2saml est identique au processus d’authentification auprès d’un fournisseur d’identités standard (IdP Shibboleth [10] d’un établissement, par exemple). Comme l’illustre la figure 5, l’articulation entre la passerelle et le Resource Server de l’opérateur de réseau social concerné est déléguée à un module d’authentification implémentant le protocole OAuth2 [4]. Cette mise en œuvre de deux protocoles (SAML et OAuth2) est transparente pour l’utilisateur ; ceci est comparable au fonctionnement d’un fournisseur d’identités Shibboleth qui délègue l’authentification à un serveur CAS [12]. Figure 5 - le processus d'authentification complet 5.3 Ergonomie utilisateur Lorsqu’un service en ligne utilisant une authentification SAML active l’utilisation de la passerelle social2saml, les utilisateurs de ce service disposent de nouvelles sources d’authentification dans le menu du service de découverte du JRES 2015 - Montpellier 6/9 service, à savoir des opérateurs de réseaux sociaux (Google, Facebook, LinkedIn, Yahoo, Microsoft Live@edu). Par défaut la présentation de ces nouvelles options est similaire aux autres fournisseurs d’identités d’établissement : les intitulés des réseaux sociaux sont ajoutés au menu déroulant des 250 établissements E/R français. Cette présentation n’est pas adaptée car il sera alors difficile pour l’utilisateur concerné d’identifier facilement cette possibilité d’authentification via un réseau social. Une solution envisagée par RENATER consiste à adapter la mise en forme de la page du service de découverte pour mettre en évidence ces réseaux sociaux, sous forme de logos, voir la figure 6. Figure 6 - alternative pour présentation du service de découverte À l’étape suivante, l’utilisateur est redirigé (redirection HTTP) vers le service d’authentification du réseau social qu’il a sélectionné. L’ergonomie varie ensuite selon le réseau social sélectionné : Google propose d’abord à l’utilisateur une bannière d’authentification puis une demande de consentement lors du premier accès à la passerelle social2saml (voir la figure 2) ; LinkedIn propose une page d'authentification intégrant une indication sur les informations qui seront transmises au service client (voir la figure 7). Figure 7 - bannière d'authentification LinkedIn 6 Conclusion Le service social2saml étudié par RENATER permet d’offrir une solution aux services en ligne fédérés (i.e. proposant une authentification SAML [1]) pour donner accès à des utilisateurs ne disposant pas d’un compte auprès d’un des fournisseurs d’identités SAML de la Fédération Éducation-Recherche [2]. Actuellement ces utilisateurs doivent se créer un compte invité (par exemple un Compte Réseau Universel) pour accéder à ces services, étape qui complexifie l’accès au service. La passerelle social2saml évite par ailleurs aux administrateurs de ces services d’implémenter d’autres modes d’authentification (OpenID Connect basé sur OAuth2 [4]) puisque la passerelle est pourvue d’une interface SAML. JRES 2015 - Montpellier 7/9 La maquette initiale du service conçue par RENATER a expérimenté avec succès l’authentification auprès de cinq opérateurs de réseaux sociaux : Facebook, Google, LinkedIn, Yahoo et Windows Live@edu. Une version pilote du service social2saml est prévue pour le premier semestre 2016. Ce service pilote prévoit l’interconnexion avec un sousensemble de ces réseaux sociaux. La liste des réseaux sociaux adaptés aux contraintes des services utilisateurs sera notamment déterminée par une étude de sécurité du GIP RENATER. Le rapport du groupe de travail américain External Identities Working Group [13] fournit déjà des critères d’évaluation pertinents. RENATER ne prévoit pas d’intégrer la passerelle social2saml dans le cercle de confiance de la Fédération ÉducationRecherche [2], afin de préserver le périmètre actuel de l’infrastructure de la fédération. Comme c’est déjà le cas pour les Comptes CRU, l’authentification via les réseaux sociaux devra être explicitement activée par le responsable d’un service en ligne qui souhaite utiliser ce mode d’authentification. En parallèle de ce projet, RENATER met en place une passerelle d’interconnexion entre les fournisseurs d’identités SAML de la communauté Education-Recherche et les services de l’administration en ligne via France Connect [14]. Ce projet sera également présenté à la conférence JRES 2015. Bibliographie [1] (2005, Mar.) Security Assertion Markup Language (SAML) v2.0. [Online]. https://www.oasis-open.org/standards [2] RENATER. La Fédération Education-Recherche. [Online]. https://services.renater.fr/federation/index [3] RENATER. Le service des Comptes CRU. [Online]. https://cru.renater.fr [4] (2012, Oct.) The OAuth 2.0 Authorization Framework. [Online]. https://tools.ietf.org/html/rfc6749 [5] GEANT. Le service eduGAIN. [Online]. http://services.geant.net/edugain [6] Henry Jacob et Saâd Aït Omar Pascal Aubry. (2013) Sésame 2, vers une gestion d’identités moderne. [Online]. https://2013.jres.org/archives/22/index.htm [7] (2009) Recommandations pour les annuaires de l’enseignement supérieur, Supann 2009. [Online]. https://services.renater.fr/documentation/supann/2009/documentcomplet [8] RENATER. Génération de l’attribut https://services.renater.fr/federation/docs/fiches/persistentid eduPersonTargetedID. [Online]. [9] Logiciel simpleSAMLphp. [Online]. https://simplesamlphp.org/ [10] Logiciel Shibboleth. [Online]. http://shibboleth.net/ [11] RENATER. Cadre technique de la Fédération https://services.renater.fr/federation/technique/cadre-technique Education-Recherche. [Online]. [12] JASIG. Logiciel CAS, Enterprise Single Sign-On. [Online]. http://jasig.github.io/cas/ [13] (2015, May) External Identities Working Group Report. https://spaces.internet2.edu/display/EXTID/External+Identities+Working+Group+Report [Online]. [14] France Connect. [Online]. https://doc.integ01.dev-franceconnect.fr/ JRES 2015 - Montpellier 8/9 JRES 2015 - Montpellier 9/9