1 / 40

ADFS, l’expérience Web SSO (fédérée) 1 ère partie

ADFS, l’expérience Web SSO (fédérée) 1 ère partie. Philippe Beraud Consultant Principal Microsoft France. Sommaire. Vue d’ensemble d’ADFS Composantes Scénarios de mise Eléments d’architecture d’ADFS Politique et configuration ADFS Federation Service (FS) Federation Service Proxy (FS-P)

mitch
Télécharger la présentation

ADFS, l’expérience Web SSO (fédérée) 1 ère partie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ADFS, l’expérience Web SSO (fédérée)1ère partie Philippe Beraud Consultant Principal Microsoft France

  2. Sommaire • Vue d’ensemble d’ADFS • Composantes • Scénarios de mise • Eléments d’architecture d’ADFS • Politique et configuration ADFS • Federation Service (FS) • Federation Service Proxy (FS-P) • Web Agents • Interopérabilité entre plates-formes • WS-Federation Passive Requestor Interop Profile (WS-Fed PRIP)

  3. Active Directory Federation ServicesObjectifs • Projeter l’identité utilisateur sur la base d’une première ouverture de session • Etendre le périmètre d’utilisation d’Active Directory • Fournir des mécanismes d’authentification et d’autorisation distribués • Permettre aux clients, partenaires, fournisseurs, collaborateurs un accès sécurisé et contrôlé aux applications web situées hors de leur forêt Active Directory • Connecter les « îles » ( à travers les frontières des plateformes, organisationnelles ou de sécurité) • Permettre la mise en place de solutions de Web SSO ainsi qu’une gestion simplifiée des identités

  4. Active Directory Federation ServicesQuelques précisions • ADFS n’est pas • Le nouveau nom de Microsoft Passport • Un nouveau référentiel d’identités • Un nouveau type de relation d’approbation ou de forêt • ADFS ne nécessite pas • Une extension du schéma Active Directory • ADFS est • Un composant de Windows 2003 Server R2 • Une implémentation interopérable de la spécification WS-Federation Passive Requestor Profile (WS-F PRP) • ADFS s’appuie sur un certain nombre de composants de l’offre Microsoft • AD et AD/AM en temps que référentiel utilisateur • ASP.Net 2.0 • Certificate Services (optionnel) • Authorization Manager (optionnel)

  5. Quelques définitions… • Jetons de sécurité • Bases pour une authentification et une autorisation distribuées • Les jetons de sécurité définissent des déclarations (claims) faites au sujet d’une identité, d’aptitude ou de privilèges • Nom, adresse mèl, clé, groupe, rôle, etc. • Attributs/propriétés de sécurité • Quelques exemples • Signé • Certificat X.509, ticket Kerberos, assertion SAML, licence XrML, etc. • Exigence ou non d’une preuve de possession • Clé secrète, mot de passe

  6. Quelques définitions… • Service de jetons de sécurité • Un service de jetons émet des jetons de sécurité • Un service de jeton peut « échanger » des jetons lorsque la requête traverse les frontières de royaumes de sécurité Centre de distribution des clés Ticket Kerberos contenant des claimsSID= S-1-5-21-3485267726-192398...UPN=johndoe@adatum.com Service de jetons de sécurité Jeton SAML contenant des assertions Company=A.DatumRole=Purchasing Agent

  7. Composantes ADFS • Active Directory ou Active Directory Application Mode (AD/AM) • Fournisseur d’identités • Authentification des utilisateurs • Gestion des attributs utilisés pour constituer les claims • Support des forêts Windows 2000 et 2003 • Federation Service (FS) • Service de jetons de sécurité • Mappage des attributs utilisateur en claims • Emission de jetons de sécurité • Gestion des politiques de confiance de fédération • Federation Service Proxy (FS-P) • Proxy client pour les demandes de jetons • UI pour les clients Browser (Découverte du royaume, Authentification) • Web Server SSO Agent (Agent SSO) • Agent d’authentification • S’assure de l’authentification utilisateur • Constitue le contexte utilisateur d’autorisation

  8. Composantes ADFS LPC/Méthodes Web Authentification Kerberos/LDAP • Notes • Les composantes FS et FS-P sont co-logés par défaut et peuvent être dissociés • Les composantes FS, FS-P et SSO Agent requièrent la version IIS 6.0 de Windows Server 2003 R2 • Seuls les clients Browser sont supportés FS FS-P Active Directory ou AD/AM HTTPS Application Agent SSO WS

  9. Gestion fédérée d’identité ADFS « Projette » les identités Active Directory dans d’autres royaumes de sécurité Fournisseur de compte Fournisseur de ressources Fédération FS-A FS-R • Émission de jetons de sécurité • Gestion de • la confiance – Clés • la sécurité – Jetons/Claims nécessaires • la confidentialité -- Jetons/Claims autorisés • l’audit -- Identités , autorités Espace de noms privé A. Datum Corp. Espace de noms privé Trey Research, Inc.

  10. [4] [6] [5] [2] [3] [7] [1] [8] [7] Renvoi par FS-R du jeton(R) au browser HTTP POST par le browser du jeton(R) à WS [8] Renvoi par WS de la page [4] Obtention des attributs par FS-A et construction du jeton(A) [6] Construction par FS-R d’un jeton(R)à partirdu jeton(A) [2] Redirection HTTP 302 vers FS-P R Découverte du Royaume d’Appartenance [5] Renvoi par FS-A du jeton(A) au browser HTTP POST par le browser du jeton(A) vers FS-P [3] Redirection HTTP 302 vers FS-A Authentification de l’utilisateur et demande de jeton [1] HTTP GET par le browser à destination duserveur Web (WS) Flux d’authentification ADFS Forêt intranet Forêt DMZ [6] Fédération FS-A FS-R FS-P A Client WS Pare-feu Pare-feu Pare-feu Pare-feu Relation de confiance établie « out-of-band » par l’échange de certificats X.509 et de politiques de claims Articulation de l’ensemble de l’authentification autour du client pour les clients Browser

  11. Démonstration Fédération d’identité en action

  12. Scénario B2B – Web SSO fédéréLes partenaires n’ont PAS besoin de comptes locaux • Applications Web hébergées chez Trey Research,Inc. • Les utilisateurs A. Datum Corp. utilisent leur compte AD A. Datum Corp. • Intranet : Web SSO à l’issue de l’ouverture de session Windows • Internet : Web SSO à l’issue de l’ouverture de session Forms ou d’une authentification SSL cliente Forêt intranet Pare-feu Fédération FS-A FS-R Client SW Acheteur interne FS-P A (ext) Pare-feu Pare-feu Pare-feu Client Trey Research Inc. A. Datum Corp. Acheteur nomade

  13. Scénario B2E – Web SSO ExtranetSSO pour l’interneet les utilisateurs itinérants • Application Web de commandes en ligne dans la DMZ • Tous les utilisateurs Acme Sporting Goods ont leur compte dans l’AD intranet • Intranet : Web SSO à l’issue de l’ouverture de session Windows • Internet : Web SSO à l’issue de l’ouverture de session Forms ou d’une authentification SSL cliente Forêt intranet Forêt DMZ Relation de confiance Windows Fédération FS-R FS-A Client FS-P A (ext) Commercial Gestionnaire de stock Pare-feu Application Web Acme Sporting Goods Pare-feu

  14. Scénario B2C – Web SSO « en ligne »WebSSO classique pour les internautes • Site de commerce en ligne et services client associés • Les clients disposent de comptes dans la DMZ (AD ou AD/AM) • Internet : Web SSO à l’issue de l’ouverture de session Forms Forêt intranet Forêt DMZ AD/AM FS Client Pare-feu SW Acme Sporting Goods Pare-feu

  15. Sommaire • Vue d’ensemble d’ADFS • Composantes • Scénarios de mise • Eléments d’architecture d’ADFS • Politique et configuration ADFS • Federation Service (FS) • Federation Service Proxy (FS-P) • Web Agents • Interopérabilité entre plates-formes • WS-Federation Passive Requestor Interop Profile (WS-Fed PRIP)

  16. Architecture ADFS Information de confiance Domaine/Forêt AD Federation Service (FS) Politique de confiance FS Web.config Lecture/écriture ASP.NET Magasin de politique de confiance FS IIS Lecture seule Lecture seule Version politique de confiance Information de configuration FS-Proxy Information de configuration Web Agent Federation Service Proxy (FS-P) Web Server SSO Agent ASP.NET ASP.NET IIS Métabase IIS Web.config Web.config IIS URL Service FS URL Service FS • Chemin Cookie • Audiences • URLs de retour

  17. Jetons de sécurité ADFS • Exclusivement des assertions SAML 1.1 (Security Assertion Markup Language) • Aucun chiffrement des jetons • L’ensemble des messages est véhiculé sur HTTPS • Les jetons sont signés • Interopérabilité avec d’autres solutions (défaut) • Signature avec la clé privée RSA et signature vérifiée avec la clé publique du certificat X.509 correspondant • Gestion des clés internes ADFS (optionnel) • Les jetons FS-R à destination d’un Agent SSO peuvent être signés avec la clé de session Kerberos

  18. Certificats FS pour la signature • Emission de certificats • Auto-signé, Microsoft Certificate Services, AC commerciale • Certificat de signature et clé privée • Le FS doit signer les assertions SAML qu’il génère • Stocké dans le magasin de certificats Machine • Certificats de vérification • Un FS doit être à même de vérifier les assertions SAML émises • Par : lui-même, d’autres FS au sein de la ferme, des FS partenaires de confiance • Stockés dans la politique de confiance • La chaîne de certification est stockée en entier • De multiple certificats peuvent être configurés

  19. Types de claims supportés • Types de claim interopérables WS-Federation • Identité • User Principal Name (UPN) • Adresse mèl • Common Name (toute chaîne de caractères) • Groupe • Personnalisé • Paire nom/valeur, exemple SS=1 99 01 75 111 001 22 • Données authZ seulement pour ADFS-vers-ADFS • SIDs • Envoyés afin d’éviter les comptes fantômes en Extranet DMZ • Envoyés dans l’élément Advice du jeton SAML (ne constitue pas un type de claim standard)

  20. Traitement des jetons et des claims Demande de jeton Parcours et validation Magasins d’identités Queue IIS Ouverture de session Contenu ? AD • Ouverture de session • Extraction des claims ADAM Queue interne Cookie Claims Extracteur de claims Magasins de politiques Cache des politiques de confiance Transformation des claims Primaire Secondaire Création et signature du jeton SAML Jeton en réponse

  21. Transformation des claims • Remplacement de suffixe – Claim Identité UPN et Adresse mèl • Supporté uniquement pour les claims allant vers un partenaire de ressources fédéré • johndoe@purchasing.corp.adatum.comjohndoe@adatum.com • Transformation « Groupe vers Groupe » • Group=Purchasing Agents Group=Purchasers • Transformation des noms de claim personnalisés • SS=1 99 01 75 111 001 22 NumSecSos=1 99 01 75 111 001 22 • Transformation « Groupe vers UPN » • Supporté uniquement pour les claims provenant d’un partenaire de comptes fédéré • Transformation « Groupe SAML vers Groupe AD » (SG2ADG) • Supporté uniquement pour les claims provenant d’un partenaire de comptes fédéré • Transformation personnalisée • Interface pour développer des modules Plug-in de transformation • Cf. 2nde partie

  22. Flot des claims ADFS de fédération Partenaire - Compte Peuplement Transformation Claims organisationnelles Compte Claims en sortie Magasin AD Transmission des claims Application - Ressource Activation Transformation Claims organisationnelles Ressource Claims en entrée Application

  23. Schématique FS-Proxy Page Discover Client Realm Page Client Logon Page Sign Out Application Pool HttpHandler W3ADM W3WP.exe LS Authentication Module HttpApplication Aspnet_isapi.dll Aspnet_wp.exe HTTP.SYS Requête

  24. FS-P Compte Federation Service (FS-R) Réponse à la demande de jeton Assertion SAML (initialisation de la session établie: claims pour le Cookie de cache) Demande de jeton Crédentiels d’authN Utilisateur (session établie: claims depuis le Cookie de cache) d. e. Federation Service Proxy (FS-P) Cred. d’authNUtilisateur Authentification utilisateur Traitement Cookie IU Forms Web c. f. b. Browser bb. Demande de jeton 302 depuis FS-R Réponse à la demande de jeton POST vers FS-R g. a.

  25. FS-P Ressource Federation Service (FS-R) Réponse à la demande de jeton Assertion SAML (initialisation de la session établie: claims pour le Cookie de cache) Demande de jeton Assertion SAML (session établie: claims depuis le Cookie de cache) f. g. Federation Service Proxy (FS-P) Royaume Compte Utilisateur Identification utilisateur Traitement Cookie IU Découverte de royaume e. Cookie Royaume Compte Paramètre Royaume Compte h. b. Browser bb. a. Demande de jeton 302 depuis Agent Web Réponse à la demande de jeton POST depuis FS-A Demande de jeton 302 vers FS-A Réponse à la demande de jeton POST vers Agent Web c. d. i.

  26. Agent Web SSO AgentApplication basée sur un jeton NT Validation de la signature de l’assertion SAML et extraction des claims Assemblage WebSSO Code géré Windows 2003 Code natif Kerberos AuthN Provider Transmission de l’assertion SAML et récupération des claims Construction d’un jeton NT Service Windows ADFS AuthN Provider LsaLogonUser Windows 2000 Vérification pour l’assertion SAML ou le Cookie ADFS W3WP.exe Application Pool Extension ISAPI W3ADM Application Web Pipeline de requête IIS Impersonation jeton NT Filtre ISAPI HTTP.SYS Requête

  27. Démonstration Web SSO ADFS et les technologies SharePoint

  28. Agent Web SSO AgentApplication « Claim-Aware » Application Pool Aspnet_wp.exe W3WP.exe Web SSO Authentication Module W3ADM HttpApplication Aspnet_isapi.dll Assemblage WebSSO HttpHandler HTTP.SYS Requête

  29. Interopérabilité avec d’autres serveurs Web • Centrify DirectControl for Microsoft ADFS • http://www.centrify.com/directcontrol/adfs.asp • Offre un équivalent « cross-plateformes » à l’agent ADFS Web SSO pour IIS 6.0 : Apache, WebLogic, Tomcat, Websphere, JBoss • Supporte aussi bien les applications sans modification que les applications qui ont été étendues pour tirer partie de l’environnement SAML (« Claim-Aware ») • Quest Vintela Single Sing-On for Java (VSJ) v3.1 • http://www.vintela.com/products/vsj • Filtre servlet VSJ 3.1 ADFS • Aucune modification nécessaire avec VSJ 3.1 pour les applications Java existantes • PingID/SourceID WS-Federation for Apache 2.0 Toolkit • http://www.sourceid.org/projects/ws-federation-apache • Module en Open Source à destination des applications Apache écrites en Java, Perl et PHP

  30. Sommaire • Vue d’ensemble d’ADFS • Composantes • Scénarios de mise • Eléments d’architecture d’ADFS • Politique et configuration ADFS • Federation Service (FS) • Federation Service Proxy (FS-P) • Web Agents • Interopérabilité entre plates-formes • WS-Federation Passive Requestor Interop Profile (WS-Fed PRIP)

  31. WS-Federation Passive Requestor Profile • Supporté par ADFS v1 dans Windows Server 2003 R2 • « Binding » des spécifications WS-Trust et WS-Federation des services Web de seconde génération à destination des clients passifs (browser) • « Web Services Federation Language: Passive Requestor Profile» (WS-Fed PRP) • BEA, IBM, Microsoft, RSA Security, Verisign Juillet 2003 • http://msdn.microsoft.com/ws/2003/07/ws-passive-profile • Adhésion implicite aux politiques en suivant les redirections 302 • Acquisition implicite de jetons via les messages HTTP • Requiert un transport sécurisé (HTTPS) pour l’authentification • Aucune fourniture de « preuve de possession » pour les jetons • Mise à cache limitée (durée) des jetons • Les jetons PEUVENT être rejoués

  32. Interopérabilité WS-Fed PRP • Revues des spécifications et ateliers de mise en œuvre publics • http://groups.yahoo.com/group/WS-Security-Workshops • WS-Federation Passive Requestor Profile Interoperability Workshop (2004) • Microsoft, IBM, RSA, Oracle (Oblix), PingID, BMC (Open Network), CA (Netegrity) • Interopérabilité au sens service de jetons de sécurité pour les assertions SAML • WS-Federation Passive Requestor Interoperability Profile (WS-Fed PRIP) • http://download.microsoft.com/download/e/9/0/e90f1994-91be-4cf8-be5e-6ab54206192d/2004.03.Fed_passive_profile_interop_workshop_invite_pack.zip • Avant-première des solutions WS-Federation lors de TechEd’04 (2004) • Pavillon d’interopérabilité TechEd • « Leading Identity Management Vendors Join Microsoft to Demonstrate Federated Identity Using Web Services » • http://www.microsoft.com/presspass/press/2004/may04/05-25IMVRallyPR.asp • Interopérabilité des solutions WS-Federation au Burton Catalyst (2005) • Démonstration d’interopérabilité multi-protocoles de fédération d’identité • Microsoft, IBM, BMC, PingID, Symabs, Trustgenix, DataPower

  33. WS-Fed PRIP • Paramètres URL de la « Query String » • Requêtes de jeton • wa=wsignin1.0 • wtrealm=resource realm URI • [wreply=resource IP/STS Url] • [wctx=anything] • [wct=ISO8601 UTC] • Réponses • wa=wsignin1.0 • wresult=RequestSecurityTokenResponse • [wctx=wctx from the request]

  34. Redirect to requestor’s IP/STS Login Return identity token Return resource token Redirect to resource’s IP/STS Return secured response Detect realm WS-Fed PRIP Requesting Browser Requestor’s IP/STS Target Resource Target’s IP/STS Get resource GET https://res.resource.com/app HTTP/1.1 HTTP/1.1 302 Found Location: https://sts.resource.com/sts?wa=wsignin1.0&wreply=http://res.resource.com/app&wct=2006-03-01T19:06:21Z GET https://sts.resource.com/sts?wa=wsignin1.0&wreply=https://res.resource.com/app&wct=2006-03-01T19:06:21Z HTTP/1.1 HTTP/1.1 200 OK . . . <html xmlns="https://www.w3.org/1999/xhtml"> <head> <title>Working...</title> </head> <body> <form method="post" action="https://res.resource.com/app"> <p> <input type="hidden" name="wa" value="wsignin1.0" /> <input type="hidden" name="wresult" value="&lt;RequestSecurityTokenResponse&gt;...&lt;/RequestSecurityTokenResponse&gt;" /> <button type="submit">POST</button> <!-- included for requestors that do not support javascript --> </p> </form> <script type="text/javascript"> setTimeout('document.forms[0].submit()', 0); </script> </body> </html> HTTP/1.1 200 OK . . . <html xmlns="https://www.w3.org/1999/xhtml"> <head> <title>Working...</title> </head> <body> <form method="post" action="https://sts.resource.com/sts"> <input type="hidden" name="wa" value="wsignin1.0" /> <input type="hidden" name="wctx" value="https://res.resource.com/app" /> <input type="hidden" name="wresult" value="&lt;RequestSecurityTokenResponse&gt;...&lt;/RequestSecurityTokenResponse&gt;" /> <button type="submit">POST</button> <!-- included for requestors that do not support javascript --> </form> <script type="text/javascript"> setTimeout('document.forms[0].submit()', 0); </script> </body> </html> HTTP/1.1 302 Found Location: https://sts.account.com/sts?wa=wsignin1.0&wreply=https://sts.resource.com/sts&wctx= https://res.resource.com/app&wct=2006-03-01T19:06:22Z&wtrealm=resource.com GET https://sts.account.com/sts?wa=wsignin1.0&wreply=https://sts.resource.com/sts&wctx=https://res.resource.com/app&wct=2006-03-01T19:06:22Z&wtrealm=resource.com HTTP/1.1 POST https://sts.resource.com/sts HTTP/1.1 …. . . wa=wsignin1.0 wctx=https://res.resource.com/app wresult=<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse> POST https://res.resource.com/app HTTP/1.1 ... wa=wsignin1.0 wresult=<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse>

  35. WS-Fed PRIP • Requested Security Token Response (RSTR) <RequestSecurityTokenResponsexmlns="http://schemas.xmlsoap.org/ws/2005/02/trust"> <AppliesToxmlns="http://schemas.xmlsoap.org/ws/2004/09/policy"> <EndpointReferencexmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing" > <Address>https://www.treyresearch.net/adfs/fs </Address> </EndpointReference> </AppliesTo> <RequestedSecurityToken> <saml:Assertion…</saml:Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse>

  36. WS-Fed PRIP Syntaxe des assertions SAML 1.1 <saml:Conditions NotBefore="2006-03-01T17:11:30Z" NotOnOrAfter="2006-03-01T22:21:30Z"> <saml:AudienceRestrictionCondition> <saml:Audience> https://www.treyresearch.net/adfs/fs</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> <saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" AuthenticationInstant="2006-03-01T19:29:23Z"> <saml:Subject> <saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"> ohnd@adatum.com </saml:NameIdentifier> </saml:Subject> </saml:AuthenticationStatement> <saml:AttributeStatement> <saml:Subject> … </saml:Subject> <saml:Attribute AttributeName="Group" AttributeNamespace="http://schemas.xmlsoap.org/claims"> <saml:AttributeValue> Purchasing Agent </saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> … </Signature>

  37. Interopérabilité WS-Fed PRP • Adoption de WS-Federation PRIP • Supporté par • BMC Federated Identity Manager • IBM Tivoli Federated Identity Manager • Future fonctionnalité courant 2006 de • CA eTrust SiteMinder Federation Security Services • Citrix Access Suite • Internet2 Shibboleth 1.3 (Shib-ADFS) • PingID PingFederate v3.1 • SourceBurton Group« Federation Products: Building Blocks of a Growing Federation Ecosystem » • http://www.burtongroup.com/research_consulting/doc.aspx?cid=715

  38. Pour plus d’informations sur ADFS • Page d’accueil ADFS sur Microsoft TechNet • http://technet2.microsoft.com/WindowsServer/en/Library/050392bc-c8f5-48b3-b30e-bf310399ff5d1033.mspx • « Overview of Active Directory Federation Services (ADFS) in Windows Server 2003 R2 » • http://go.microsoft.com/fwlink/?LinkId=54650 • « Active Directory Federation Services Design Guide » • http://technet2.microsoft.com/WindowsServer/en/Library/b0f029cb-65ab-44fb-bcfc-5aa02314e06e1033.mspx • « ADFS Step-by-Step Guide » • http://go.microsoft.com/fwlink/?LinkId=49531 • « Windows SharePoint Services and SharePoint Portal Server 2003 Support boundaries for Active Directory Federation Services » • http://support.microsoft.com/default.aspx?scid=kb;en-us;912492 • .NET Show « ADFS » • http://msdn.microsoft.com/theshow/episode047/default.asp Rejoignez les discussions surhttp://www.identityblog.com

  39. Microsoft France 18, avenue du Québec 91 957 Courtaboeuf Cedex www.microsoft.com/france 0 825 827 829 msfrance@microsoft.com

More Related