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

Sécurisation des services Web avec WSE 3.0 et WCF

Présentations similaires


Présentation au sujet: "Sécurisation des services Web avec WSE 3.0 et WCF"— Transcription de la présentation:

1 Sécurisation des services Web avec WSE 3.0 et WCF
3/31/2017 9:56 PM Sécurisation des services Web avec WSE 3.0 et WCF Pierre COUZY Winwise Stéphane GOUDEAU Microsoft © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Introduction Les Web Services sont un modèle à deux vitesses
3/31/2017 9:56 PM Introduction Les Web Services sont un modèle à deux vitesses Une galerie de normes quasi-exhaustive Multiples consortiums, multiples normes, multiples utilisations Des implémentations très disparates Le plus petit dénominateur commun entre tous les éditeurs L’utilisation en entreprise pêche souvent Par le manque de connaissances des standards disponibles Par un manque d’implémentations simples de ces standards Des scénarios catastrophe se montent peu à peu Implémentation manuelle d’un standard Réinvention de la roue Confiance quasi-absolue dans le comportement des appelants Adaptation du service aux besoins d’un client spécifique © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3 Notre agenda Rappeler brièvement les concepts associés à la sécurité des échanges de messages Présenter les normes associées Montrer comment les implémenter dans le monde Microsoft Identifier les patterns de sécurité des messages Appliquer et composer ces patterns Mettre WCF (ex-Indigo) en perspective … et vous donner les pointeurs permettant d’aller plus loin

4 La sécurité des échanges de message
Authentification L’émetteur est identifié sans ambiguïté Intégrité Les messages n’ont pas été modifiés Confidentialité Les messages n’ont pas été interceptés Non-répudiation L’émetteur ne peut pas renier ses messages Disponibilité Les messages sont traités Routage Le lien avec la sécurité est indirect, mais nous en aurons besoin pour définir des périmètres de confiance

5 Carte des standards WS-*
3/31/2017 9:56 PM Carte des standards WS-* Evolve and Extend Secure, Reliable, Transacted Fundamentals WS-I formed WS-I BP 1.0 As of 2/2004 Interopérabilité Security Roadmap SRT Web Services Whitepaper Reliable Messaging Roadmap Whitepapers WS-Coordination WS-Transaction WS-AtomicTransaction WS-BusinessActivity Transactions WS-ReliableMessaging Reliability WS-Security WS-Federation WS-Federation Active Requestor Profile WS-Trust Security WS-Security Addendum WS-Security Profile for Tokens WS-Security SOAP Message Security WS-Security Username Token Profile WS-Security X.509 Certificate Token Profile WS-Security Kerberos Binding UDDI 1.0 UDDI 2.0 UDDI 3.0 WS-Policy 1.1 WS-PolicyAttachments 1.1 WS-PolicyAssertions 1.1 WSDL WS-Inspection Metadata WS-Policy WS-PolicyAttachments WS-PolicyAssertions WS-SecurityPolicy WS-Discovery WS-MetadataExchange SOAP 1.1 SOAP 1.2 WS-Referral WS-Routing WS-Addressing Messaging WS-Eventing SOAP Messages with Attachments DIME WS-Attachments MTOM 2003 2000 2001 2002 2004 2005 © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 WS-SECURITY

7 Les standards nous concernant
WS-Security Intégrité, confidentialité, et inclusion d’un jeton de sécurité WS-Trust Etablissement de jetons de sécurité WS-Federation Fédération de la gestion d’identité WS-SecureConversation Etablir un contexte de sécurité et échanger des clés de session permettant d’échanger N messages dans un même contexte WS-SecurityPolicy Décrit les assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation

8 Web Services Architecture
Chacun de ces blocs a son propre espace sur MSDN

9 Comment aborder ces standards ?
Chaque scénario comporte des contraintes spécifiques qui demandent une combinaison intelligente de différents standards Pour appréhender cette complexité, on définit des patterns Patterns d’authentification Patterns de confidentialité Patterns d’intégrité etc. Votre rôle est de connaître et composer ces patterns et d’identifier les forces et faiblesses de la solution retenue Le rôle de Microsoft est de fournir des outils simplifiant la mise en œuvre de votre solution.

10 Outils Microsoft pour les Services Web
3/31/2017 9:56 PM Outils Microsoft pour les Services Web V3.0 V2.0 V1.0 Longhorn V3.0 V2.0 Beta 2 (? Go Live) V1.1 V2.0 V1.0 Beta 1 V1.0 V1.0 SDK Windows Communication Foundation Web Services Enhancements .NET Framework SOAP Tool Kit © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 PATTERNS DE SECURITE

12 Patterns d’authentification
L’identité peut circuler Dans le message Dans la couche de transport du message L’authentification peut être Directe (point à point) Mutualisée (déléguée à un serveur tiers) Facteurs importants Présence d’intermédiaires dans la communication Confiance en ces intermédiaires Contraintes réseau spécifiques (firewalls)

13 Patterns d’authentification

14 Jetons d’authentification
3/31/2017 9:56 PM Jetons d’authentification Déclaration d’un droit privilège ou attribut spécifique Les messages véhiculent des jetons de sécurité qui l’expression de ces déclarations Valid To Serial Number Version Subject Public Key Issuer’s Digital Signature Valid From Issuer Other Fields Signature Algorithm Unsigned Username Secret Key Password Proof of Possession Signed X.509 Kerberos XrML SAML © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

15 WS-Security: « UsernameToken »
3/31/2017 9:56 PM WS-Security: « UsernameToken » Username (le mot de passe est facultatif) <UsernameToken Id="..."> <Username>...</Username> <Password Type="...">...</Password> </UsernameToken> PasswordText : mot de passe complet PasswordDigest: hash du mot de passe © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

16 Patterns de protection du message
Le message peut être Chiffré Authentifié Signé La combinaison de ces facteurs assure La confidentialité La non-répudiation L’intégrité

17 Patterns de protection des messages

18 WS-Security : intégrité du message
3/31/2017 9:56 PM WS-Security : intégrité du message Signature du message (ou d’une portion) avec une signature Vérification que le message n’a pas été modifié pendant l’échange ->Non-répudiation Signatures multiples autorisées dans un message Syntaxe XML utilisée pour représenter une signature numérique Algorithme reposant sur XML-Signature : Transformation via clé privée Schéma défini : Sender’s Private Key + = Public Key © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 XML Signature - intégrité
3/31/2017 9:56 PM XML Signature - intégrité Norme de canonisation retenue <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" /> <Reference URI="#Id-e7a3d692-3e96-452a-8a36-a5c346f69c95"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>VKTFU9Zc3vFvmjvYJn6cV1y+e38=</DigestValue> </Reference> </SignatureMethod> </CanonicalizationMethod> </SignedInfo> </Signature> Algorithme retenu pour créer la signature Identification des données signées Données de signature © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

20 WS-Security : Confidentialité
3/31/2017 9:56 PM WS-Security : Confidentialité XML Encryption Chiffrement du message ou d’une portion du message Tags utilisés dans le corps du message (pas dzans l’entête) Supporte les algorithmes à clé symétrique ou asymétrique Schéma défini : Chiffrement des pièces jointes Entête <confidentiality> et tag <encryptedAttachment> Pas de chiffrement des pièces jointes binaires + = Receiver’s Public Key Private Key © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

21 XML-Encryption : confidentialité
3/31/2017 9:56 PM XML-Encryption : confidentialité <S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <S:Header> <wsse:Security> <xenc:ReferenceList> <xenc:DataReference URI="#bodyID"/> </xenc:ReferenceList> </wsse:Security> </S:Header> <S:Body> <xenc:EncryptedData Id="bodyID"> <ds:KeyInfo> <ds:KeyName>CN=Hiroshi Maruyama, C=JP</ds:KeyName> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </S:Body> </S:Envelope> Données chiffrées © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

22 Authentification directe : Patterns et références

23 Sécurité de niveau transport et plateforme
3/31/2017 9:56 PM Sécurité de niveau transport et plateforme La Platforme et le transport fournissent la sécurité Identification de l’appelant Intégrité du message Confidentialité du Message Client Service Transport Sécurisé XML XML Transport Transport © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Sécurité de niveau plateforme
3/31/2017 9:56 PM SOAP Header (optionnel) SOAP Body Authentication IIS (inetinfo.exe) Web Server Authentification Anonyme Basic Digest Integrée Certificats Autorisation NTFS Permissions IP Address Restrictions Authenticated caller’s access token (or IUSR_MACHINE access token) ASP.NET Web Service (aspnet_wp.exe) Locator Remote Resource Authentication Windows None (Custom) Authorization File AuthZ URL AuthZ .NET Roles Identity ASP.NET Process Original Caller Fixed Service Identity © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 Sécurité de niveau message
3/31/2017 9:56 PM Sécurité de niveau message Client Les messages XML véhiculent les informations de sécurité Paramètres d’identification Signatures digitales Les messages peuvent être chiffrés Service XML XML Transport XML Transport Any transport La sécurité est indépendante du protocole de transport © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

26 Authentification via broker : Patterns et références

27 WS-Trust : Acquisition de jetons de sécurité
3/31/2017 9:56 PM WS-Trust : Acquisition de jetons de sécurité Plusieurs modèles de génération de jetons Le client obtient le jeton Le service obtient le jeton pour le client Fondée essentiellement sur deux éléments envoyés dans le corps SOAP : <RequestSecurityToken> Un message <RequestSecurityToken> est envoyé au service de confiance Ce message demande un jeton de sécurité <RequestSecurityTokenResponse> Le service de confiance répond avec in message <RequestSecurityTokenResponse> Ce message contient le jeton de sécurité demandé et les détails associés © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

28 Principes de fonctionnement
3/31/2017 9:56 PM Principes de fonctionnement 7 L’application relaye le jeton de sécurité au consommateur d’identité 6 Le fournisseur d’identité produit le jeton de sécurité contenant les preuves requises Jeton Fournisseur d’identité Service de jetons de sécurité Consommateur d’identité Politique Politique 5 Le sélecteur d’identité présente les crédentiels au fournisseur d’identité et demande un jeton de sécurité Crédentiels 1 Accès à la Ressource 2 Lecture de la politique définissant les preuves requises et les fournisseurs d’identité : « Je souhaiterais recevoir un jeton contenant givenName et lastName dont le tokenType est SAML 1.1, émis par n’importe qui » Application cliente Sélecteur d’identité 3 Filtrage des cartes qui pourraient satisfaire les exigences du consommateur d’identité 4 L’utilisateur sélectionne une carte depuis la liste des identités appropriées dans le sélecteur d’identité © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

29 WS-SecureConversation : Création d’un contexte de sécurité
3/31/2017 9:56 PM WS-SecureConversation : Création d’un contexte de sécurité Request for SCT SCT Issued to client Series of messages signed with issued SCT Client Server © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

30 WSE

31 “SOAP Extensions” Client WS Fournisseur WS
3/31/2017 9:56 PM “SOAP Extensions” RETOUR SERIALIZE (natif XML) Interception (avant et après) ! RETOUR DESERIALIZE (XML  natif) Interception (avant et après) ! ALLER SERIALIZE (natif XML) Interception (avant et après) ! ALLER DESERIALIZE (XML  natif) Interception (avant et après) ! Client WS Fournisseur WS <FlightInfo> <flightNo/> <departTime/> <.../> </FlightInfo> FlightInfo FlightInfo “serialize” “deserialize” “deserialize” “serialize” Utilisée pour des fonctionnalités plus avancées Intercepte les appels destinés à un service Web Prétraitement et post-traitement © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 Web Service Enhancements (WSE)
3/31/2017 9:56 PM Web Service Enhancements (WSE) Extension à Visual Studio.NET et au framework .NET pour supporter les dernières spécifications WS-*: WS-Security, WS-Addressing, WS-Policy, messaging (MTOM) Un jeu de filtres hébergés par ASP.NET interceptant les messages SOAP entrants et sortants (injections des en-têtes SOAP dans les messages, notion de pipeline)  Soap Extension Possibilité d’insérer ses propres filtres dans le pipeline © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Configuration depuis Visual Studio
3/31/2017 9:56 PM Configuration depuis Visual Studio <configuration> <system.web> <webServices> <soapExtensionTypes> <add type="Microsoft.Web.Services3.WebServicesExtension, Microsoft.Web.Services3,Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0"/> </soapExtensionTypes> </webServices> </system.web> </configuration> © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

34 Mais aussi depuis un outil externe
3/31/2017 9:56 PM Mais aussi depuis un outil externe © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 Sécurité : la couverture de WSE
3/31/2017 9:56 PM Sécurité : la couverture de WSE Authentification Jetons de sécurité : Microsoft.Web.Services3.Security.SecurityToken Couple utilisateur/mot de passe : UsernameToken Jetons binaires : BinarySecurityToken Certificat X509 : X509SecurityToken Jeton Kerberos : KerbersoSecurityToken SAML : Microsoft.Web.Services3.Security.SAML Signature des messages XML Signature : Microsoft.Web.Services3.Security.MessageSignature Chiffrement des messages XML Encryption : Microsoft.Web.Services3.Security.Cryptography Gestion et définition de relation de confiance entre entités WS-Trust : Microsoft.Web.Services3.Security Contexte de sécurité entre deux services pour des échanges de plusieurs messages dans ce même contexte WS-SecureConversation : Microsoft.Web.Services3.Security © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

36 SCENARIO 1 Approche programmatique

37 Exemple : Le certificat
Obtention Par une autorité de certification tels que CertiNomis Verisign Thawte Un service interne Windows Server 2000 ou 2003 (makecert.exe) J2EE (keytool.exe), Apache, etc.

38 X509 : coté serveur Au minimun, il convient de
Vérifier qu’il y a bien un contexte de sécurité Vérifier qu’il y a bien la présence d’un élément de sécurité Déclarer dans le fichier web.config L’utilisation de WSE L’utilisation de l’authentification X509 WSE fait le reste !

39 Le code serveur Le service Web Vérification De la présence
using Microsoft.Web.Services; using Microsoft.Web.Services.Timestamp; using Microsoft.Web.Services.Security; using Microsoft.Web.Services.Security.Tokens; using Microsoft.Web.Services.Security.X509; namespace ConvertToolsLogin { public class ConvertTools { [System.Web.Services.WebMethod] public double ConvertEuros2Francs(double euros) { CheckAutorization(); return euros * ; } private void CheckAutorization() { if(Microsoft.Web.Services.RequestSoapContext.Current == null) throw new System.ApplicationException("Seules les requêtes SOAP sont acceptées..."); if(Microsoft.Web.Services.RequestSoapContext.Current.Security.Tokens.Count==0) throw new System.ApplicationException("Seules les requêtes SOAP sécurisée sont acceptées..."); Le service Web Vérification De la présence Du certificat

40 Le fichier web.config Utilisation des extensions Soap Gestion des
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="microsoft.web.services" type="Microsoft.Web.Services.Configuration.WebServicesConfiguration, Microsoft.Web.Services, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> <webServices> <soapExtensionTypes> <add type="Microsoft.Web.Services.WebServicesExtension, Microsoft.Web.Services, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" /> </soapExtensionTypes> </webServices> </system.web> <microsoft.web.services> <security> <x509 allowTestRoot="true" allowRevocationUrlRetrieval="false" verifyTrust="false" /> </security> <tokenIssuer> <serverToken> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <wsse:SecurityTokenReference xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wsse:KeyIdentifier ValueType="wsse:X509v3">WuaA9VPIiNkMjQJ8HXODG4tNFjE=</wsse:KeyIdentifier> </wsse:SecurityTokenReference> </KeyInfo> </serverToken> </tokenIssuer> <protocols> <security version="http://schemas.xmlsoap.org/ws/2002/12/secext" /> <timestamp version="http://schemas.xmlsoap.org/ws/2002/07/utility" /> </protocols> </microsoft.web.services> </configuration> Utilisation des extensions Soap Gestion des extensions Soap Configuration X509

41 X509 : coté client Recherchez et chargez un certificat dans un objet X509Certificat Insérez la trace du certificat dans l’entête Soap Invoquez le service Web

42 Le code client X509SecurityToken X509Token = GetX509Token(); Ajout du
using Microsoft.Web.Services.Security; using Microsoft.Web.Services.Security.X509; public class TestConvertTools { public static void Main() { ConvertTools c = new ConvertTools(); X509SecurityToken X509Token = GetX509Token(); c.RequestSoapContext.Security.Tokens.Add( X509Token ); c.RequestSoapContext.Timestamp.Ttl = 60000; System.Console.WriteLine("Euros vers francs : "+c.ConvertEuros2Francs(15)); } private static X509SecurityToken GetX509Token() { X509CertificateStore entrepot = X509CertificateStore.CurrentUserStore(X509CertificateStore.MyStore); if(!entrepot.OpenRead()) throw new System.ApplicationException("Pas d'entrepot de certificats !!!"); string ClientBase64KeyId = "gBfo0147lM6cKnTbbMSuMVvmFY4="; X509CertificateCollection certs = entrepot.FindCertificateByKeyIdentifier( System.Convert.FromBase64String( ClientBase64KeyId ) ); if(certs==null) throw new System.ApplicationException("Le certificat exemple n'existe pas..."); X509SecurityToken X509Token = null; if (certs.Count > 0) X509Token = new X509SecurityToken( ((X509Certificate) certs[0]) ); else throw new System.ApplicationException("Le certificat exemple n'a pas été trouvé..."); return X509Token; Ajout du Certificat dans l’en-tête SOAP Recherche et Récupération D’un certificat

43 Démonstration Scenario 1 3/31/2017 9:56 PM
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

44 SCENARIO 2 Approche déclarative

45 3/31/2017 9:56 PM WS-SecurityPolicy « Web Services Security Policy Language » IBM, Microsoft, RSA, VeriSign, Décembre 2002 Définit un ensemble d'assertions de politique lié aux concepts définis par les autres spécifications de sécurité Permet aux participants de spécifier Types de jeton, émetteurs, etc. Exigences d’intégrité et de confidentialité Algorithmes supportées Exemples Politique des applications et services Quels sont les jetons/assertions nécessaires pour la requête ? Où les clients peuvent-ils obtenir ces jetons/assertions ? Politique de services de jetons de sécurité Quels sont les jetons/assertions acceptés ? Quels sont les jetons/assertions fournis ? Politique © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

46 Capitaliser sur des scénarios de sécurité “clé en main”
3/31/2017 9:56 PM Capitaliser sur des scénarios de sécurité “clé en main” Meilleures pratiques : 5 scénarios 1 scenario = 1 assertion (« Policy ») UsernameOverCertificate AnnonymousOverCertificate UsernameOverTransport Kerberos MutualX509 © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

47 Scénario de sécurité “clé en main”
3/31/2017 9:56 PM UsernameOverCertificate Internet Intranet Username/Password for Authentication Confidential, signed request using a key protected with the server certificate Application Server Confidential, signed response using the supplied key Authenticate username/ Password © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

48 Démonstration Scenario 2 3/31/2017 9:56 PM
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

49 Windows Communication Foundation

50 Windows Communication Foundation
3/31/2017 9:56 PM Windows Communication Foundation “Framework unifié pour créer des applications orientées services sur la plate-forme Windows” Unification des technologies middleware Architecture modulaire et composable Interopérabilité avec les autres plateformes Interopérabilité avec les technologies courantes Model de programmation orienté service Support natif des protocoles WS-* © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

51 Architecture « composable »
3/31/2017 9:56 PM Architecture « composable » CLR Type Integration Transaction Behavior Security Channel TCP Transport Code du Service CLR Type Integration Transaction Behavior Instancing Behavior Security Channel TCP Transport Modèle de service Influence et étend le modèle de programmation fondé sur les messages entrants Messaging Echange les messages et permet l’extension des canaux qui assurent le transfert des messages © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

52 Address, Binding, Contract
3/31/2017 9:56 PM Address, Binding, Contract Client Service C B A A B C C B A C B A Bv Bv Address Où? Binding Comment? Contract Quoi? Endpoint © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

53 Demo Service

54 Demo Client

55 Mode de sécurité par défaut
3/31/2017 9:56 PM Mode de sécurité par défaut Binding Mode de sécurité par défaut basicHttpBinding None wsHttpBinding Message wsDualHttpBinding wsFederationBinding netTcpBinding Transport netNamedPipeBinding netMsmqBinding netPeerTcpBinding msmqIntegrationBinding © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

56 Paramétrage du mode de sécurité
Par code : BasicHttpBinding b = new BasicHttpBinding(); b.Security.Mode = BasicHttpSecurityMode.Transport; b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; host.AddServiceEndpoint(typeof(IEchoService), b, "svc"); Par configuration : <basicHttpBinding> <binding name="TransportSecurity"> <security mode="Transport" /> </binding> </basicHttpBinding>

57 Niveau de protection des messages
3 niveaux de protection : None Sign EncryptAndSign Configuration du niveau de protection : <bindings> <netTcpBinding> <binding name="protectionSecurity" <security mode="Transport" > <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/> </security> </binding> </netTcpBinding> </bindings>

58 Modes d’authentification
3/31/2017 9:56 PM Modes d’authentification WCF supporte plusieurs modes d’authentification : Anonyme Windows : Scénarios Intranet Jetons Utilisateur (avec/sans fournisseur ASP.NET) : Scénarios B2C d’hier InfoCard : Scénarios B2C de demain Certificats : Scénarios B2B Jetons délivrés par un Security Token Service : Scénarios B2B de demain Encapsulation dans la couche transport ou au sein de messages Configuration du mode d’authentification : <bindings> <wsHttpBinding> <binding name = "authentificationModeSecurity" securityMode = "Message"> <wsSecurity authenticationMode="certificate"/> </binding> </wsHttpBinding> </bindings> © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

59 Spécification des paramètres d’identité
Spécification du mode d’authentification par code « SetUserNamePassword » Spécification du mode d’authentification par configuration : Client : <behaviors> <behavior name="credentialConfig"> <clientCredentials> <clientCertificate storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName" findValue="client.com"/> </clientCredentials> </behavior> </behaviors> Service : <behavior name="credentialConfig" returnUnknownExceptionsAsFaults="true" > <serviceSecurityCredentials x509AuthenticationMapToWindows="false"> <serviceX509Certificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" /> </serviceSecurityCredentials>

60 Gestion des autorisations
3/31/2017 9:56 PM Gestion des autorisations Attributs dans le code pour identifier les Rôles [PrincipalPermission(SecurityAction.Demand, Role = Administrator")] string IResourceAccessContract.AccessDiamond() Fournisseur de rôles Spécifié dans le fichier de Configuration Relier les rôles dans le code aux rôles de l’outil d’administration Mécanisme extensible Assignation d’utilisateurs à des rôles avec l’outil d’administration (Authorization Manager) © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

61 Démonstration WCF 3/31/2017 9:56 PM
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

62 Patterns

63 Patterns…

64 3/31/2017 9:56 PM Conclusion WS-Security permet aux services Web de bénéficier des technologies de sécurité existantes Authentification Jetons de sécurité Signature des messages : XML Signature Chiffrement des messages : XML Encryption Microsoft fournit aujourd’hui deux implémentations de WS-Security : WSE 3.0 et Windows Communication Foundation (Beta 2) WSE 3.0 est interopérable avec WCF Les assertions de scénarios de sécurité « clé en main » WSE sont équivalentes aux éléments « binding » de sécurité de WCF Ces deux briques technologiques permettent de programmer ou configurer : Authentification, autorisations, confidentialité, et traçabilité En proposant des scénarios de sécurisation par défaut En capitalisant sur l’infrastructure Windows pour les scénarios intranet © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

65 Roadmap Plateforme 2005 2006 2007 “Longhorn” Server
3/31/2017 9:56 PM Roadmap Plateforme 2007 “Longhorn” Server 2006 WinFX Beta 2 (Janvier 2006) Biztalk 2006 (mars 2006) Vista (fin 2006) WinFX (fin 2006) Office “12” septembre 2006 2005 Visual Studio 2005 (depuis le 8 Novembre) SQL Server 2005 (depuis le 8 Novembre) Windows Server 2003 R2 (ADFS) Biztalk 2006 Beta 2 Office “12” Beta 1 © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

66 3/31/2017 9:56 PM Resources Portail des architectes MS France WSE WCF © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

67 Les dates Visual Studio Team System vu par le développeur
Architecture orientée service avec Windows Communication Foundation Intégrer un workflow dans vos applications avec Windows Workflow Foundation Office 12 vu par le développeur Vers le Web 2 Vers une nouvelle expérience utilisateur

68 7 Mars  : Nantes 9 Mars  : Lille 14 Mars : Strasbourg 23 Mars : Paris 28 Mars : Marseille 30 Mars : Toulouse 4 Avril : Lyon

69 Microsoft France 18, avenue du Québec 91 957 Courtaboeuf Cedex
3/31/2017 9:56 PM Microsoft France 18, avenue du Québec Courtaboeuf Cedex © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Télécharger ppt "Sécurisation des services Web avec WSE 3.0 et WCF"

Présentations similaires


Annonces Google