SSO / Fédération
Transcription
SSO / Fédération
Formation SSO / Fédération CYRIL GROSJEAN ([email protected]) CONSULTANT JANUA Agenda Objectifs du SSO ● Terminologie, acronymes et protocoles ● Présentation d'architectures de SSO ● Présentation d'architectures de fédération ● Exemples de déploiement ● Méthodologie d'approche d'un projet SSO ● Questions / Réponses ● © copyright Janua 2009 Terminologie - SSO SSO: Single Sign On ● eSSO: Enterprise Single Sign On ● CDSSO: Cross Domain Single Sign On ● pseudo-SSO ● SLO: Single Logout ● Objectifs d'une solution de SSO Ergonomie: simplifier la navigation de l'utilisateur ● Simplification de la gestion de l'authentification: une interface/un serveur d'authentification unique en opposition à plusieurs bases et/ou interfaces d'authentification ● Sécurisation de l'authentification: les mots de passe ne circulent plus, ils sont remplacés par des jetons ● Possibilité d'étendre facilement les services offerts: gestion des mots de passe, fédération, contrôle d'accès, transmission d'informations de session .. ● Terminologie - Fédération Solution permettant: ● –d'établir un SSO entre des entités (entreprises, organismes) distinctes –d'assurer le contrôle d'accès aux ressources fédérées –d'échanger des informations entre les entités fédérées IdP / Fournisseur d'identité ● SP / Fournisseur de service ● PKI / IGC ● Terminologie - Fédération SAML v2 (OASIS) ● Consortium Liberty Alliance (ID-FF, ID-WSF, ID-SIS) ● Shibboleth (Internet2) ● WS-Federation (Microsoft) ● Architectures de SSO Avec agent (CAS,OpenSSO,JOSSO) ● Sans agent / portefeuille (Oracle eSSO,SSOX) ● Avec reverse proxy (LemonLDAP,JOSSO,OpenSSO,CAS) ● Architectures de SSO avec agent base d' utilisateurs service app. #2 app. #3 serveur d' authentication id en t m / ifia nt pa ot d ss e e app. #1 navigateur Source: CSIER Février 2005 Architectures de SSO avec agent ID CAS server application ST TGC HTTPS ST ST navigateur Source: CSIER Février 2005 TGC Architectures de SSO sans agent Source: Oracle Enterprise SSO Technical Guide – Juin 2009 Architectures de SSO : Reverse Proxy Architectures de SSO : Reverse Proxy Source: http://lemonldap.adullact.net/ – Juin 2009 Architectures de SSO: CDSSO Source: OpenSSO technical overview - 2008 Architectures de fédération – SAML Fédération vs SSO ● –multi-domaines –portabilité / mono-domaine / solutions propriétaires –inter-opérabilité / pas d'inter-opérabilité native –identités multiples mais fédérées / identité unique –contrôle utilisateur sur les informations échangées / rien –protocole modulaire, plusieurs façons standard d'échanger / pas de standard –support –sécurité des Web services sécurisés / sécurité moindre accrue (signature, chiffrement), contrôle des informations divulguées et identifiants opaques Architectures de fédération SAML v2 ● Liberty Alliance ● Shibboleth ● OpenID ● FederID ● WS-Federation ● Architectures de fédération – SAML Security Assertion Markup Language ● Objectifs: ● –échanger des informations d'identités de façon sécurisée –authentifier –portabilité et autoriser inter-entreprises / inter-organismes Entités ● –Sujet (Subject) –Autorité SAML (SAML authority - IdP) –Demandeur –Autorité (SAML requester – SP) d'attributs (AA) Architectures de fédération – SAML Nouveautés SAML v2 ● –inspirées de Shibboleth et Liberty Alliance => convergence des standards de fédération –pseudonymes: identifiants opaques échangés entre les fournisseurs de service et d'identités –possibilité –single de génération dynamique des identifiants logout protocol –chiffrement –protocoles –service partiel ou total des assertions SAML d'échanges d'attributs de découverte –méta-données –support de la fédération des périphériques mobiles Architectures de fédération – SAML Source: Présentation Aquarium – Sun Microsystems– Décembre 2008 Architectures de fédération – SAML Définition: une identité est fédérée entre plusieurs fournisseurs d'identité ou de service lorsque ils sont tombés d'accord sur un ensemble d' identifiants et d'attributs par lesquels se référer à l'identité ● Questions adressées dans l'accord: ● –Quelles –Les sont les identités locales liées par la fédération ? identifiants fédérés sont-ils pré-établis ou dynamiques ? –Le consentement de l'utilisateur pour fédérer ses comptes est-il nécessaire ? –Des attributs utilisateur ont-ils besoin d'être échangés ? –Doit-on utiliser des identifiants temporaires (supprimés en fin de session) ? –Les échanges d' informations doivent-ils être chiffrés ? Architectures de fédération – SAML Exemple de fédération/liaison de compte (account linking) ● 1.Michel Durand consulte sa BAL [email protected] par WebMail (HTTP/HTTPS) 2.Il consulte ensuite le site "Colissimo". Colissimo détecte que Mr Durand n'est pas authentifié mais qu'il a précédemment consulté le site partenaire LaPoste.Net (éventuellement grâce au service de découverte SAML v2) 3.Colissimo demande donc à Mr Durand s'il serait d'accord pour fédérer son compte local avec (son compte sur) LaPoste.Net 4.Mr Durand accepte de fédérer son compte, son navigateur est redirigé sur le site WebMail qui lui crée un nouveau pseudonyme tkijsH3e6 à utiliser lorsqu'il visite Colissimo. Ce pseudonyme est lié à son compte [email protected] Architectures de fédération – SAML 5.Mr Durand est ensuite redirigé vers Colissimo avec une assertion SAML indiquant que l'utilisateur représenté par l'identifiant fédéré tkijsH3e6 s'est authentifié auprès du fournisseur d'identité LaPoste.Net . 6.S'agissant de la première connexion de Mr Durand sur Colissimo avec l'identifiant fédéré, celui-ci n'a pas encore de correspondance avec un compte local. Mr Durand doit donc d'abord se connecter avec son compte Colissimo, micheldurand. 7.Colissimo lie ensuite le compte local micheldurand à l'identifiant fédéré tkijsH3e6 à utiliser avec le fournisseur d'identité LaPoste.Net . 8.Les comptes locaux de Mr Durand sur LaPoste.Net et Colissimo sont donc désormais liés, c'est à dire rattachés à l'identifiant fédéré tkijsH3e6 . Architectures de fédération – SAML 9.Mr Durand se connecte ensuite à son compte de la banque postale. Le processus précédent se répète:il est redirigé vers le site WebMail qui lui crée un nouveau pseudonyme jqp46Se0 à utiliser lorsqu'il visite la banque postale. Ce pseudonyme est lié à son compte [email protected] 10.Mr Durand est redirigé vers la banque postale avec une nouvelle assertion SAML. Il doit s'authentifier une fois avec son compte local sur ce site (mdurand), qui lie ensuite ce compte à l'identifiant fédéré jqp46Se0 à utiliser avec le fournisseur d'identité LaPoste.Net. 11.Les comptes [email protected] sur le site LaPoste.Net et mdurand à la banque postale sont maintenant liés par l'identifiant fédéré jqp46Se0 . Architectures de fédération – SAML fournisseur de service www.sp.com fournisseur d'identité www.idp.com Resource service de consommation d'assertions vérification d'accès 2 7 Accès ressource 1 6 Redirection avec <AuthnRequest Ressource renvoyée service de SSO Réponse signée en HTML Requête POST signée 5 3 Authent. GET avec <AuthnRequest Action Navigateur ou Utilisateur 4 Demande d'authent. Architectures de fédération – SAML Profiles: combinaison d'assertions, de protocoles et de règles de liaisons (bindings) pour supporter divers scénari Bindings: règles de correspondance entre le protocole SAML et les protocoles de transport/messagerie standards Protocoles: règle et format d'envoi des requêtes et réponses permettant de véhiculer les assertions de sécurité Assertions: messages d'authentification, d'autorisation et d'échange d'attributs Architectures de fédération – SAML Protocoles SAML ● –Assertion –Artifact query and request protocol Resolution Protocol –Name Identifier Management Protocol –Name Identifier Mapping Protocol –Single Logout Protocol Architectures de fédération – SAML Bindings SAML ● –SAML SOAP –Reverse binding SOAP binding –HTTP Redirect binding –HTTP Post binding –HTTP Artifact –SAML URI binding Binding Architectures de fédération – SAML Profiles SAML ● –Profile Web Browser SSO –Profile Enhanced Client and Proxy (ECP) –Profile Identity Provider Discovery –Profile Single Logout –Profile Assertion –Profile Artifact –Profiles Query Resolution Name Identifier Architectures de fédération – SAML Exemples d'assertion SAML: autorisation ● –<saml:Assertion xmlns:saml=”urn:oasis:names:tc:SAML:2.0:assertion” Version="2.0" –IssueInstant="2009-03-15T13:30:00Z"> –<saml:Issuer Format=urn:oasis:names:SAML:2.0:nameid-format:entity>http://www.globalc.com –</saml:Issuer> –<saml:Subject> –<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"> –[email protected] –</saml:NameID> –</saml:Subject> –<saml:Condition NotBefore="2009-03-15T13:30:00Z" –NotOnOrAfter="2009-03-15T13:45:00Z"> –</saml:Conditions> –<saml:AuthnStatement AuthnInstant="2009-03-15T13:30:00Z" –SessionIndex="79830261179"> –<saml:AuthnContext> –.... Architectures de fédération – SAML Exemples d'assertion SAML: échange d'attributs ● –<saml:AttributeStatement> –<saml:Attribute xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" –NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri“ Name="urn:oid:2.5.4.42" –FriendlyName="displayName"> –<saml:AttributeValue xsi:type="xs:string“ –x500:Encoding="LDAP">John Mc Enroe</saml:AttributeValue> –</saml:Attribute> –<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" –Name="LastName"> –<saml:AttributeValue xsi:type="xs:string">Mac Enroe</saml:AttributeValue> –</saml:Attribute> –<saml:Attribute NameFormat=http://globalcompany.com/attr-formats Name=“AccountNumber”> –xmlns:smithco=”http://www.globalcompany.com/company-schema.xsd” –<saml:AttributeValue –<globalC:badge xsi:type=“globalC:type”> color=“white”>453ABD34</globalC:badge> –</saml:AttributeValue> –</saml:Attribute> –</saml:AttributeStatement> Architectures de fédération – SAML Aspects sécurité ● –intégrité des messages garanties par signature XML des requêtes et réponses –échange des clés publiques en ligne ou hors-ligne –possibilité de chiffrer les échanges par SSL / TLS –possibilité d'associer un niveau de sécurité aux différents bindings –possibilité d'utiliser des identifiants opaques pour préserver la confidientialité Architectures de fédération – Liberty Source: Linagora groupe Architectures de fédération – Liberty x Source: Tutoriel Liberty Alliance Project v 2 - 2004 Architectures de fédération – Liberty Recommandations de la DGME ● –Utiliser SAML v2 ou ID-FF 1.2 pour fédérer des services –Utiliser ID-WSF 1.1 pour échanger des attributs entre services fédérés Source: Tutoriel Liberty Alliance Project v 2 - 2004 Architectures de fédération – WS-* Spécifications conçues par BEA, CA, IBM, Microsoft, Novell, Verisign en marge de SAML, Shibboleth & Liberty ● Supporté par Active Directory Federation Service ● Intéressant dans le cas d'une intégration avec les solutions Microsoft. Problèmes d'inter-opérabilité à prévoir sinon ● Source: Tutoriel Liberty Alliance Project v 2 - 2004 Méthodologie projet 1 2 3 4 Compréhension du besoin Analyse métier Analyse de l'existant Besoins / Exigences Spécifications Architecture logique Mise en oeuvre Déploiement Définition du périmètre Recensement du parc Fonctionnelles Maquette Besoin (SSO,CDSSO,SLO) Serveurs Web Applications / Interfaces Install / Config SSO Applications / Protocoles Serveurs d'applications Alimentation , synchros Développements Gestion des mots de passe Applis. Client / Serveur Règles d'accès Intégrations Gestion des droits Clients (OS, browser, hard) Gestion des mot de passe Recette Définition des livrables Sources de données Techniques Déploiement Cahier des charges Annuaires, SGBD, Fichiers Architecture Application(s) pilote(s) Spécifications Types d'authentifcation Configuration produit Formation Cahier de recette Rôles et droits applicatifs Exploitation Assistance au démarrage Choix d'une solution Processus de déploiement Configuration/Exploitation Support Analyse métier impacts organisationnels ● –Quels sont les utilisateurs (salariés, stagiaires, prestataires de services, partenaires, clients …) ? –Qui est à l’origine de l’identité des utilisateurs (ressources humaines, directions métiers, services généraux, DSI,…) ? –Comment le cycle de vie de l’identité des utilisateurs est-il géré (création, modification, suppression, suspension ...) ? –Comment –Quelles sont gérées les habilitations des utilisateurs ? sont les identités strictement internes et externes ? Analyse métier plan de communication ● –source(s) –sécurité d'autorité mise en oeuvre –communiquer –établir sur les enjeux, les bénéfices et les risques des relations de confiance entre individus conduite du changement ● prise en compte des processus, de l'existant ● –modèle –culture de gouvernance des SI d'entreprise