La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

11 pour les développeurs Code Session : SEC317 Philippe BERAUD Consultant Architecte Direction Technique Microsoft France

Présentations similaires


Présentation au sujet: "11 pour les développeurs Code Session : SEC317 Philippe BERAUD Consultant Architecte Direction Technique Microsoft France"— Transcription de la présentation:

1 11 pour les développeurs Code Session : SEC317 Philippe BERAUD Consultant Architecte Direction Technique Microsoft France philippe.beraud@microsoft.com Pierre COUZY Architecte en système d'informations Division Plateforme et Ecosystème Microsoft France pierre.couzy@microsoft.com

2 22 Description de la session Cette session vous offre un aperçu complet de Windows Identity Foundation (WIF), le nouveau Framework Identity de la plateforme.NET. Vous découvrirez notamment comment le modèle (de contrôle) d'accès fondé sur les revendications s'intègre en toute transparence avec le modèle objet.NET Identité traditionnel tout en donnant également aux développeurs un contrôle complet sur l'ensemble des aspects relatifs à l'authentification, aux autorisations et aux comportements applicatifs pilotés par l'identité. Cette session est illustrée par une mise en œuvre concrète de WIF au travers d'une application ASP.NET existante utilisant des services Web Windows Communication Foundation (WCF).

3 33

4 44 Le parcours virtuel Logiciels + Services Identité dans le cadre des Microsoft TechDays 2010 4 sessions pour faire un point ensemble Session SEC317 "Windows Identity Foundation pour les développeurs" Cette session !! Session SEC207 "Les nouveautés d'AD FS 2.0" Aujourd'hui de 14h30 à 15h30, à revivre prochainement en Session Web Session SEC315 "The 'M'-Based System.Identity Model for Accessing Directory Services" Lundi 8 février, de 11h00 à 12h00, à revivre prochainement en Session Web Session ARC307 "Software + Services Identity Roadmap" Lundi 8 février, de 14h30 à 15h30, à revivre prochainement en Session Web

5 55 Objectifs de la session Compléter la session IND213 "La gestion d'identité dans l'entreprise étendue (b2b/b2c) : Geneva" animée lors des TechDays 2009 http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx? EID=388ec88d-4ce4-4c57-a055-481a25f6d6e5 Faire le point sur la version finale de Windows Identity Foundation (WIF, nom de code Zermatt Framework puis Geneva Framework) Illustrer quelques capacités clés de WIF

6 66 Sommaire Vers un nouveau modèle Une rapide introduction de Windows Identity Foundation (WIF) Une illustration des capacités de WIF

7 77 Les deux premières lignes de toute application connectée 1. Qui êtes-vous ? 2. Quêtes-vous autorisés à faire ?

8 88 Quest-ce quune identité ? Une identité est un ensemble dinformations à propos dune entité, telle quun utilisateur La plupart des applications travaillent avec des identités Les informations didentité influencent des aspects importants du comportement dune application tels que Déterminer ce quun utilisateur est autorisé à faire Contrôler la façon dont lapplication interagit avec lutilisateur

9 99 Le problème… Travailler avec les identités est devenu trop difficile La notion d'identité (numérique) est essentielle, mais pas simple ;-) Les applications doivent utiliser différentes technologies didentité dans différentes situations Kerberos au sein dun domaine Active Directory Utilisateur/Mot de passe, certificat ou OTP sur lInternet WS-Federation et SAML entre les organisations Etc. Il est difficile de concevoir quelque chose qui puisse fonctionner dans tous les contextes demandés par vos clients Vous nen avez jamais fini… Arbre de décision complexe, technologie vers scénario Une solution tactique aujourdhui peut bloquer une interopérabilité future

10 10 Vers un nouveau modèle Externalisation de lauthentification Lincorporation de code de gestion d'identité dans le code de base applicatif est une mauvaise idée En termes de compétences, besoin généralement de conseils ; peu d'entre nous sont des experts de l'identité En termes de maintenance, les applications développées ont un couplage fort avec une technologie X En termes de robustesse/flexibilité/interopérabilité De nombreuses technologies d'identité Mots de passe, Kerberos, X.509, SAML, LDAP, etc. Aucune technologie ne sapplique à lensemble des scénarii Intranet versus Internet Collaborateurs, partenaires, clients Applications Web, Smart Client, Services Web (avancés) Les détails techniques de l'authentification doivent être abstraits de la perspective du développeur d'applications

11 11 Vers un autre modèle… Au travers de l'externalisation de lauthentification, pourquoi ne pas enfin définir une approche qui puisse être utilisée dans tous ces cas ? La notion didentité fondée sur des revendications permet datteindre un tel objectif Cela peut rendre la vie des développeurs dapplications et des RSSI considérablement plus simple

12 12 Vers un nouveau modèle Quallons-nous appeler une identité ? Lidentité est un ensemble de revendications (claims) faites par un fournisseur didentité (létat, la banque, lentreprise) qui caractérise une personne ou une "chose" (entité numérique) dans le monde numérique Peut être un identificateur, une caractéristique ou autre chose Mèl=philippe.beraud@microsoft.com, Age > 21, Employeur = Microsoft, Rôle=Architecte, etc. Ces revendications sont physiquement transportées dans des documents (des jetons de sécurité) Ces jetons sont délivrés par des services de distribution de jetons (STS, ou Security Token Service) Les jetons sont utilisés par des applications, sites Web ou services Web, qui font confiance au STS (on les appelle des Relying Parties)

13 13 Vers un nouveau modèle Externalisation de lauthentification et revendications

14 14 Vers un nouveau modèle Externalisation de lauthentification et revendications

15 15 Vers un nouveau modèle Introduction de la plateforme Geneva Objectif : découpler du code applicatif l'authentification utilisateur et la recherche des revendications Composants Active Directory Federation Services (AD FS) 2.0 (ou un autre STS) Authentifie lutilisateur Sappuie sur les sources/référentiels faisant autorité pour les valeurs des revendications utilisateur Émet les valeurs, formats et types spécifiques de revendications requises par lapplication ou le service Windows Identity Foundation (WIF) Valide le jeton de sécurité émis par le STS Extrait les revendications et les met à disposition de lapplication ou du service http://www.microsoft.com/geneva

16 16 Démo L'identité fondée sur les revendications : c'est FACILE !

17 17 Sommaire Vers un nouveau modèle Une rapide introduction de Windows Identity Foundation (WIF) Une illustration des capacités de WIF

18 18 Windows Identity Foundation (WIF) 1.0 Framework pour.NET 3.5 au même titre que WCF, WF, et WPF Un modèle de développement pour les revendications Modèle objet des revendications intégré avec les APIs Identité.NET Modèle de programmation unifié et cohérent pour ASP.NET et WCF Modèle piloté par configuration Framework pour le développement de services de jetons de sécurité (STS) personnalisés avec un minimum d'efforts Outils pour la configuration automatique des applications et services pilotée par les métadonnées Fondés sur les standards OASIS WS-Federation et WS-Trust Et bien plus encore…

19 19 Windows Identity Foundation (WIF) 1.0 Composantes du Framework Modèle objet unifié (ASP.NET vs. WCF) pour les revendications Utilitaire FedUtil Ensemble de modules HTTP.NET pour le traitement des jetons de sécurité, la gestion des sessions, etc. Service c2WTS (Claims to Windows Token Service) Contrôles ASP.NET APIs pour l'émission de jetons et de cartes d'information Support de la plateforme Windows Azure Intégration à Visual Studio

20 20 Windows Identity Foundation (WIF) 1.0 Intégration Visual Studio Outils pour établir et maintenir des relations de confiance Modèles Visual Studio pour le développement de sites et de services Web fondés sur les revendications Contrôles ASP.NET prêts à l'emploi

21 21 Windows Identity Foundation (WIF) 1.0 Modèles Visual Studio Disponibles en C# File New Web Site… ASP.NET Security Token Service Web Site Claims-aware ASP.NET Web Site Claims-aware WCF Services WCF Service Token Service Projets thinktecture STS Starter Kit 1.0 Beta 1 et RP Starter Kit 0.92 http://startersts.codeplex.com/ Construits sur WIF 1.0 Support des fournisseurs ASP.NET, des clients Silverlight, pont avec OpenID, etc.

22 22 Windows Identity Foundation (WIF) 1.0 Contrôles ASP.NET 2 contrôles standards complètement intégrés avec le pipeline WIF et FedUtil FederatedPassiveSignIn SignInStatus 2 contrôles DPE additionnels SecurityTokenVisualizerControl (STVC) http://code.msdn.microsoft.com/TokenVisualizerCtrl ClaimsDrivenModifierControl (CDMC) http://code.msdn.microsoft.com/ClaimsDrivenControl

23 23 Sommaire Vers un nouveau modèle Une rapide introduction de Windows Identity Foundation (WIF) Une illustration des capacités de WIF

24 24 Comment découvrir WIF 1.0 ? Microsoft propose une application dexemple couvrant notamment les thématiques suivantes Externalisation de l'authentification et obtention des revendications Consommation des revendications Autorisations Invocation de services WCF Mise en œuvre d'une STS Personnalisé Délégation didentité http://code.msdn.microsoft.com/FabrikamShipping Nous allons parcourir ensemble une partie de cette application

25 25 Obtention des revendications Challenge L'authentification fournit un identifiant, peut-être des groupes… les applications nécessitent plus dinformations sur lutilisateur Aujourd'hui, les applications doivent faire des requêtes DS ou DB pour obtenir les revendications utilisateur additionnelles Les applications doivent disposer de code vis-à-vis des différentes interfaces DS et DB, reflet de lhétérogénéité des référentiels Les applications ne sont généralement pas autorisées pour requêter dans une autre organisation ! ;-) Les applications hébergées (c.à.d. " dans le nuage") ne sont pas forcément connectées au(x) référentiel(s) d'entreprise "sur site"

26 26 Obtention des revendications Mise en œuvre Etapes Utiliser FedUtil pour se fédérer avec le STS Adatum Corporation Bénéfices Aucune requête DS ou DB nest nécessaire dans l'application Fabrikam Shipping Authentification unique entre les applications, et à travers les pare-feu Mise en oeuvre facilitée d'une fédération entre Adatum Corporation et Fabrikam pour l'accès au service Fabrikam Shipping

27 27 Obtention des revendications Modules HTTP de WIF HTTP Module(s) dans le pipeline ASP.NET de l'application Ils prennent le soin d'exposer la politique, de gérer les redirections de protocole, d'établir des sessions, etc. WSFederationAuthenticationModule (FAM) Implémente le protocole WS-Federation et ses redirections SessionAuthenticationModule Prend en charge la gestion des sessions indépendamment du protocole de "sign-in" ClaimsPrincipalHttpModule Fournit un "hook" pour injecter des revendications dans le principal courant

28 28 Obtention des revendications Fedutil Mise à jour du fichier web.config Déclaration du module WSFederationAuthenticationModule (FAM) Prise en charge de WS-Fed Passive et constitution d'un ClaimsPrincipal Déclaration du module SessionAuthenticationModule Gestion (agnostique vis-à-vis des protocoles) des sessions Consommation des métadonnées du STS pour les revendications Définition des informations de nom et de rôle pour les interfaces bien connues IPrincipal et IIdentity Création des métadonnées de fédération pour l'application Mise à disposition sous FederationMetadata\2007-06 pour consommation par le STS… https:// /FederationMetadata/2007- 06/FederationMetadata.xml

29 29 Obtention des revendications Architecture de WIF Pipeline de traitement ASP.NET en première approche

30 30 Obtention des revendications Architecture de WIF

31 31 Obtention des revendications Traces au sein du pipeline WIF Introduites à partir de la RC Activation au sein du fichier.config Peuvent être visualisées avec SvcTraceViewer.exe %Program Files%\Microsoft SDKs\Windows\[v6.0A\v6.1\v7.0]\bin <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\WIF.xml" />

32 32 Obtention des revendications Traces au sein du pipeline WIF

33 33 Obtention des revendications Modèle de revendications dans WIF Et mes (Generic/Windows)Principal/((Generic/Windows)Identity dans tous cela ? IClaimsIdentity étend IIdentity, en y ajoutant le support des revendications Collection de revendications Revendications Name et Role pour la compatibilité arrière Peut inclure la chaîne de délégué (Actor) pour les scénarios de ActAs IClaimPrincipal étend IPrincipal, en y ajoutant une collection de ClaimsIdentity public interface IClaimsIdentity : IIdentity { ClaimCollection Claims { get; } string NameClaimType { get; set; } ICollection RoleClaimTypes { get; } string Label { get; set; } IClaimsIdentity Actor { get; set; } SecurityToken BootstrapToken { get; set; } } public interface IClaimsPrincipal : IPrincipal { ClaimsIdentityCollection Identities { get; } }

34 34 Obtention des revendications Modèle de revendications dans WIF Propriétés clé de la classe Claim ClaimType, Value, ValueType, Issuer Les chaînes permettent d'éviter les complexités de la désérialisation public class Claim { // some members omitted for brevity public virtual string ClaimType { get; } public virtual string Value { get; } public virtual string ValueType { get; } public virtual IDictionnary Properties; public virtual string Issuer { get; } public virtual string OriginalIssuer { get; } public virtual string IClaimIdentity Subject { get; } }

35 35 Obtention des revendications Consommation des revendications dans le code IClaimsIdentity id =((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0]; // you can use a simple foreach loop to find a claim... string usersEmail = null; foreach (Claim c in id.Claims) { if (c.ClaimType == System.IdentityModel.Claims.ClaimTypes.Email) { UsersEmail = c.Value; break; } // you can also use LINQ to find a claim string usersFirstName = (from c in id.Claims where c.ClaimType == System.IdentityModel.Claims.ClaimTypes.GivenName select c).First().Value;

36 36 Démo Externalisation de l'authentification, obtention et consommation des revendications Fabrikam Shipping

37 37 Personnalisation à l'aide de revendications Mise en œuvre Etapes Utiliser FedUtil pour créer un STS local Fabrikam Envoyer des revendications pour la personnalisation Modifier l'application pour utiliser les revendications Se re-fédérer avec le STS Adatum Corporation Bénéfices Aucun code applicatif nécessaire pour requêter des informations sur l'utilisateur d'un annuaire ou d'une base de données La transformation de revendications au niveau des STS fournit une capacité dadaptation dimpédance pour les valeur/type de revendications

38 38 Et les autorisations dans tout cela ? Les rôles ASP.NET fonctionnent en tant que tels IsInRole, élément N'importe quel type de revendication en entrée peut être utilisé comme rôle ! Pour autant, un contrôle d'accès fondé sur les revendications peut être beaucoup plus sophistiqués que RBAC avec des règles métier conditionnées par différentes notions Plages horaires, montants de délégation, etc.

39 39 Et les autorisations dans tout cela ? WIF permet de modéliser l'information d'autorisation comme Une ressource que le sujet souhaite accéder Les actions que le sujet souhaite réaliser sur la ressource Ceci correspond à un AuthorizationContext Cette information ou politique peut être stockée dans le fichier web.config de l'application et consommée par un point d'extensibilité de WIF : classe ClaimsAuthorizationManager Hook pour votre logique d'autorisation Définition de votre implémentation de CheckAccess Ajout dans le pipeline de WIF via config [ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "Directory", Operation = "Browse")] private bytes[] GetVideoFile(string path) {}

40 40 WIF et WCF Initialisation du pipeline WIF dans WCF Même modèle de programmation que dans ASP.NET… …mais avec une architecture de "hosting" différente Services "Self-Hosted" : Invoquer FederatedServiceCredentials.ConfigureServiceHost(host) dans votre ServiceHost avant de l'ouvrir (.Open) Services activés Web : Dériver une nouvelle usine à partir de ServiceHostFactory Faire un "Override" sur la méthode CreateServiceHost et faire l'appel à ConfigureServiceHost ci-avant en son sein Déclarer votre fabrique personnalisée dans la directive @ServiceHost de votre fichier.svc

41 41 WIF et WCF Liaisons WIF UserNameWSTrustBinding CertificateWSTrustBinding WindowsWSTrustBinding KerberosWSTrustBinding IssuedTokenWSTrustBinding

42 42 Démo Autorisations, WIF et services WCF Fabrikam Shipping

43 43 Développer un STS avec WIF WIF fournit les briques de bases pour le développement de STS personnalisé AD FS 2.0 a été développé sur la base de WIF ! Même modèle de programmation pour l'ensemble des fonctions de "hosting" Actif : WCF Passif : ASP.NET Les assistants et modèles permettent de créer instantanément un squelette de STS Parfaitement adapté à des fins de testabilité Activités principales Décider en qui faire confiance Décider quel type de crédentités vous accepterez Fournir tout le matériel cryptographique pour la signature et le chiffrement Hook dans la logique d'extraction de revendications

44 44 Délégation didentité

45 45 Délégation didentité IClaimsIdentity Sample Fill

46 46 Délégation didentité Mise en œuvre Étapes Coder le service WCF BE Écrire du code dans le FE Fabrikam Shipping pour invoquer le service BE à l'aide dun jeton ActAs Mettre en place un STS personnalisé local pour le support de la délégation d'identité Bénéfices Contrôle granulaire fin de la politique de la délégation Préservation de l'identité de l'appelant d'origine Il est possible de mapper lutilisateur sur un compte AD "Shadow" pour l'accès aux ressources protégées via Kerberos (c2WTS) Audit précis au niveau du service BE Les accès et laudit reflètent les identités aussi bien de l'utilisateur et que de l'application FE Modèle de programmation WCF familier

47 47 Démo STS personnalisé, délégation d'identité Fabrikam Shipping

48 48 Ce que contient lapplication exemple Externalisation de l'authentification et obtention des revendications Consommation des revendications Autorisations Invocation de services WCF Mise en œuvre d'une STS Personnalisé Délégation didentité

49 49 Pour autant, nous avons à peine abordé les capacités du Framework… …comme par exemple les thématiques suivantes Mise en œuvre avec AD FS 2.0 Assurance vis-à-vis du niveau de lauthentification Gestion avancée des sessions Fermes Web c2WTS TrustChannel Windows Azure Etc.

50 50 Windows Identity Foundation (WIF) 1.0 En résumé Framework fondé sur les revendications et intégré à ASP.NET et WCF Implémentation des protocoles WS-Trust et WS-Federation Framework pour la définition de STS personnalisés Pour vous aider le cas échéant à assurer les transformations nécessaires en fonction de vos spécificités Service Revendications-vers-Jeton NT Intégration Visual Studio : outils, modèles, STS local de développement Intégration Windows Azure

51 51 En guise de conclusion Les revendications sont flexibles et puissantes Une identité fondée sur les revendications simplifie considérablement l'authentification, le contrôle d'accès et la personnalisation dans vos applications Les STS sont là pour vous aider à obtenir les bonnes informations didentité pour vos applications La plateforme Geneva vous offre un modèle de programmation cohérent pour chaque situation WIF facile la vie des développeurs pour programmer avec les revendications

52 52 Evaluer WIF 1.0 aujourd'hui Télécharger WIF depuis le centre d'évaluation http://msdn.microsoft.com/fr-fr/evalcenter/dd440951.aspx WIF 1.0 pour Windows Server 203 SP2 http://www.microsoft.com/downloads/details.aspx?FamilyID=BE4DB6 A0-B76D-446D-810C-EA3C25B3969A&displayLang=en WIF 1.0 pour Windows Vista, Windows 7, Windows Server 2008 (R2) http://www.microsoft.com/downloads/details.aspx?FamilyID=eb9c34 5f-e830-40b8-a5fe-ae7a864c4d76&displaylang=en SDK WIF 1.0 http://www.microsoft.com/downloads/details.aspx?familyid=C148B2 DF-C7AF-46BB-9162-2C9422208504&displaylang=en Continuer l'analyse du scénario exemple Fabrikam Shipping http://code.msdn.microsoft.com/FabrikamShipping Cf. billet http://blogs.msdn.com/vbertocci/archive/2009/06/16/announcing- fabrikamshipping-in-depth-semi-realistic-sample-for-geneva- framework.aspx

53 53 Evaluer WIF 1.0 aujourd'hui Suivre les sessions sur Channel 9 Session "Windows Identity Foundation Ships!" http://channel9.msdn.com/shows/Identity/Windows-Identity- Foundation-Ships/ Session " Windows Identity Foundation RC is Here!" http://channel9.msdn.com/shows/Identity/Windows-Identity- Foundation-RC-is-here/ Quelques lectures http://www.microsoft.com/downloads/details.aspx?FamilyID=9ca5c685- 3172-4d8f-81cb-1a59bdc9f7e3&displaylang=en Livre blanc "Claims-Based Identity for Windows" Livre blanc "Microsoft Windows Identity Foundation (WIF) Whitepaper for Developers" Guide Patterns & Practices "Claims Based Identity & Access Control" http://msdn.microsoft.com/en- us/library/ff359115%28lightweight%29.aspx

54 54 Se former à WIF 1.0 Suivre le cours en ligne sur Channel 9 http://go.microsoft.com/fwlink/?LinkId=148795 Identité et sites Web, Identité et services Web, fournisseur d'authentification ASP.NET et Fédération, Identité et la plateforme Azure Nouveau HOL "Federated Authentication in a Windows Azure Web Role Application" http://channel9.msdn.com/learn/courses/Azure/IdentityAzure/WIFon WAZLab/ Version autonome : http://code.msdn.microsoft.com/wifwazpassive Télécharger et suivre le Kit de formation Identité pour les développeur (PDC 2009) http://go.microsoft.com/fwlink/?LinkId=148795

55 55 Se former à WIF 1.0 Suivre les sessions du parcours "Identité" de la PDC 2009 http://microsoftpdc.com SVC28 : System.Identity Model Accessing Directory Services PR11 : Leveraging & Extending SharePoint Identity Features SVC26 : How Microsoft SharePoint 2010 was Built with WIF SVC17 : Enabling SSO to Windows Azure Applications SVC02 : Windows Identity Foundation Overview SVC19 : REST Security Services in Windows Azure using the Access Control Service

56 56 Pour aller plus loin… Documentation WIF sur MSDN http://msdn.microsoft.com/en-us/library/ee748484.aspx Centre de développement MSDN Sécurité pour la gestion de l'identité http://msdn.microsoft.com/security/aa570351.aspx Forum MSDN "Claims based access platform (CBA), code- named Geneva" http://social.msdn.microsoft.com/Forums/fr-FR/Geneva/threads Weblogs Blog "Geneva" Team http://blogs.msdn.com/card/ blog Vibro.NET http://blogs.msdn.com/vbertocci/ Blog www.leastprivilege.com http://www.leastprivilege.com

57 57 Questions / Réponses

58 58 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Votre potentiel, notre passion TM


Télécharger ppt "11 pour les développeurs Code Session : SEC317 Philippe BERAUD Consultant Architecte Direction Technique Microsoft France"

Présentations similaires


Annonces Google