Sécurité des Services Web

Slides:



Advertisements
Présentations similaires
3/25/ :58 AM Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France.
Advertisements

PKI et utilisation des cartes à puce en entreprise Philippe Beraud Consultant Principal Microsoft France.
Les Web Services Schéma Directeur des Espaces numériques de Travail
PKI et utilisation des cartes à puce en entreprise
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
M2: Fondements de la Sécurité :authentification
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
CORRECTION DU DEVOIR DE SYNTHESE N° 2
Stéphanie CLAPIÉ Antoine RENARD
Conception de la sécurité pour un réseau Microsoft
Guillaume CACHO Pierre-Louis BROUCHUD
L’architecture .net et ASP.net
Vue d'ensemble Implémentation de la sécurité IPSec
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
Introduction aux services WEB
Sécurité Informatique
Public Key Infrastructure
SSL (Secure Sockets Layer) (couche de sockets sécurisée)
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Mise en place d'un serveur SSL
GESTION DE PARCS D’ORDINATEURS
Virtual Private Network
Sécurisation des services Web avec WSE 3.0 et WCF
Linux – les VPN.
Pki et kerberos.
Le Modele OSI.
Aymeric BERNARD Stéphane BRINSTER Guillaume LECOMTE.
Gestion 100% réalisée par le système Les API du système permettent de : Savoir si le mot de passe est actif Declare Function GetPasswordStatus Lib "Coredll"
© 2006 Microsoft Corporation. Bonjour et Bienvenue !
Enseignant de cours : M. Bouzguenda Lotfi
Services web pour applications web modernes et mobiles
De A à Z Fabrice Meillon & Stanislas Quastana, CISSP
Dématérialisation & Téléprocédures
IPSec : IP Security Protocole fournissant un mécanisme de
La sécurité des réseaux ATM Maryline Laurent-Maknavicius dép. RSM, Télécom Bretagne Avril 1998.
Gestion des clés cryptographiques
CENTRALISATION DES CANDIDATS LOCATAIRES
Cours Web Services ISIMA 3F3
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Dématérialisation & Téléprocédures
La sécurité dans les réseaux mobiles Ad hoc
LE RESEAU INFORMATIQUE SANS FIL WI-FI
Le protocole d’authentification
Pr BELKHIR Abdelkader Master RSD Sécurité des systèmes informatiques
Sécurité et confidentialité dans Microsoft Internet Explorer William Keener Développement de contenu Global Service Automation Microsoft Corporation.
.NET Plateforme, framework, produits Bernard Fedotoff (Pdg) Stéphane Vancauwenberghe (Consultant)
Erreurs commises couramment dans le domaine de la sécurité 1.Sensibilisation aux questions de sécurité 2.Suivi des incidents 3.Gestion déficiente des.
Introduction à la plateforme .NET
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Mastère Professionnel Systèmes de Communication et Réseaux
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
Infrastructure SOA : Opérer ses services de façon industrielle
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
L’enseignement de spécialité SLAM
1 Séminaire Novembre 2001 – PLB – J.M. Vanel 3 - Internet & extranet n Internet - rappel n puis Intranet n Extranet : m définition m contraintes m sécurité.
Web Services : WS-*. Sommaire Définition Historique Description Conclusion.
04/06/2015BATOUMA Narkoy1 An OGSI CredentialManager Service ( Par:Jim Basney, Shiva Shankar Chetan, Feng Qin, Sumin Song, Xiao Tu et Marty Humphrey ) Présentation:
Web Services 17/01/2009.
Confidentialité : L’encryptage
Sommaire  Modifications de l’Active Directory  Présentation de SSL  Configuration de SSL  Tests de fonctionnement ○ Internet Explorer ○ Firefox.
Sécurité des Web Services
Introduction aux technologies des web services en Java EE
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Chapitre 2- Sécurité Informatique 1 Responsable du cours : Héla Hachicha Année Universitaire :
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Transcription de la présentation:

Sécurité des Services Web Avec Windows Communication Foundation (WCF) Philippe BERAUD Consultant Architecte Microsoft France philber@microsoft.com Stéphane GOUDEAU Architecte en Système d’information Microsoft France stephgou@microsoft.com

Sommaire Présenter rapidement WCF inclus dans Windows Vista Rappeler brièvement les concepts associés à la sécurité des échanges de messages et de leur traitement Montrer comment les implémenter avec WCF Identifier les patterns de sécurité des messages Présenter les normes associées Appliquer et composer ces patterns avec une mise en perspective de WCF … et vous donner les pointeurs permettant d’aller plus loin

Quelques concepts

Sécurité des services Web Sécurité des échanges de messages Intégrité Les messages n’ont pas été altérés Confidentialité Le contenu des messages n’a pas été intercepté Non-répudiation L’émetteur ne peut pas renier ses messages Fiabilité Les messages sont reçus et traités Sécurité d’accès aux ressources Authentification L’émetteur est identifié et validé sans ambiguïté Autorisations Les informations d’identité validées sont utilisées pour le contrôle d’accès Fédération

Environnement d’exécution WCF en un « mot » Composante du Microsoft .NET Framework 3.0 Framework unifié pour créer des Applications Orientées Service interopérables Client Service WSDL A C B Point de terminaison B A C Be A Adresse Où ? B « Binding » Comment ? C  Contrat Quoi ? « Behavior » Environnement d’exécution Be

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM WCF et la sécurité WCF assure La sécurité des échanges de messages La sécurité d’accès aux ressources Cf. « Common Security Scenarios » http://msdn2.microsoft.com/en-gb/library/ms730301.aspx Les bindings contrôlent Le type de transport, l’encodage L’authentification et les autorisations L’intégrité et la confidentialité L’identité fédérée Les behaviors contrôlent L’impersonation Les autorisations Le niveau de protection © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Sécurité des échanges de messages

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Modes de sécurité Service Client A Transport B A C A C B Client B B A C A C B Message © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings WCF et mode de sécurité Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Bindings WCF et mode de sécurité Un binding spécifie chaque élément de la pile de communication Transaction, Fiabilité, Sécurité, Encodage, Transport Mode de sécurité pour les bindings Configure l’authentification et des mécanismes de protection du canal Définit comment et quelles informations seront utilisées pour établir l’identité de l’entité 2 niveaux de définition/programmation Modèle « clé en main » = binding standard Modèle avancé de binding personnalisé Code Service  Contrat Binding … Fiabilité Sécurité Encodage Transport Adresse © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Bindings standard Binding Transport Message Par défaut BasicHttpBinding  N/A WSHttpBinding WSDualHttpBinding WSFederationHttpBinding NetTcpBinding NetNamedPipeBinding NetMsmqBinding NetPeerTcpBinding MsmqIntegrationBinding © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Paramétrage du mode de sécurité Par code Par configuration * Utilisation du Microsoft Service Configuration Editor BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Transport; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; host.AddServiceEndpoint(typeof(Microsoft.TechDays07.IFoo), binding, “https://localhost:6060/service”); Code Service <bindings> <wsHttpBinding> <binding name=“transportSecurityBinding”> <security mode=“Transport”/> </binding> </wsHttpBinding> </bindings> Binding <services> <service name=“Microsoft.TechDays07.Service”> <endpoint address=“https://localhost:6060/service” binding=“wsHttpBinding" bindingConfiguration=“transportSecurityBinding” contract=“Microsoft.TechDays07.IFoo”/> </service> </services> Point de terminaison

Utilisation des Web Services Factory Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Utilisation des Web Services Factory Web Services Factory http://msdn2.microsoft.com/en-us/library/aa480534.aspx Web Service Factory Guidance Package http://www.microsoft.com/downloads/details.aspx?familyid=db996113-6e92-4894-9b7e-0debb614d72f&displaylang=en Tools/Guidance Package Manager : Activation du Web Service Factory – Security (WCF) Nécessite Les Guidance Automation Extensions (GAX) http://www.microsoft.com/downloads/details.aspx?familyid=C0A394C0-5EEB-47C4-9F7B-71E51866A7ED&displaylang=en Le Guidance Automation Toolkit http://www.microsoft.com/downloads/details.aspx?familyid=E3D101DB-6EE1-4EC5-884E-97B27E49EAAE&displaylang=en © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings personnalisés pour les scénarios non « clés en main » Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Bindings personnalisés pour les scénarios non « clés en main » Spécification manuelle de chaque élément de la pile de communication Transaction, Fiabilité, Sécurité, Encodage, Transport Cf. « Creating User-Defined Bindings » http://msdn2.microsoft.com/en-us/library/ms733893.aspx Permet de configurer Mode d’authentification Jetons de sécurité supportés Suite d’algorithmes de chiffrement ou de génération de clés L’activation du mécanisme de dérivation des clés Version pour la sécurité de niveau Message Ordre des éléments de l’entête de sécurité Vérification de l’identité Intervalle de renouvellement des clés © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Sécurité de niveau Transport Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Sécurité de niveau Transport HTTPS, SSL over TCP Dépendance du transport Compatible avec les systèmes existants S’applique au message dans son ensemble Confidentialité, intégrité et/ou authentification Point à point Service Client Chiffré/Signé © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Configuration de la sécurité de niveau Transport Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Configuration de la sécurité de niveau Transport Configuration Service <bindings> <wsHttpBinding> <binding name=“transportSecurityBinding”> <security mode=“Transport”> <transport clientCredentialType=“None”/> </security> </binding> </wsHttpBinding> </bindings> Binding <services> <service name=“Microsoft.TechDays07.Service”> <endpoint address=“https://localhost:6060/service” binding=“wsHttpBinding" bindingConfiguration=“transportSecurityBinding” contract=“Microsoft.TechDays07.IFoo”/> </service> </services> Point de terminaison © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Sécurité de niveau Message Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Sécurité de niveau Message Sécurité des services Web avancés (WS-*) Appliquée au niveau des messages SOAP Indépendante du transport et extensible Sécurisé jusqu’au destinataire ultime du message De bout en bout L’expéditeur ne doit faire confiance qu’au destinataire ultime Sécurisation de façon sélective : partie(s) du message Confidentialité, intégrité, non-répudiation et/ou authentification Patterns de protection des messages Le message peut être Chiffré, signé et/ou authentifié La combinaison de ces facteurs assure La confidentialité, l’intégrité et la non-répudiation Nœud intermédiaire Client Service Chiffré/Signé Chiffré/Signé © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Standards sécurité WS-* dans WCF OASIS Web Services Security SOAP Message Security (WS-Security) 1.0 et 1.1 Intégrité, confidentialité, et inclusion d’un jeton de sécurité Couple utilisateur / mot de passe, X.509, Kerberos et SAML OASIS WS-Trust Obtention et renouvellement d’un jeton de sécurité OASIS WS-SecureConversation Etablissement d’un contexte de sécurité et échange des clés de session permettant d’échanger N messages dans un même contexte OASIS WS-SecurityPolicy Description des assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation WS-I Basic Security Profile Core + Kerberos + SAML

WS-Security, la fondation 4/10/2017 9:51 PM WS-Security, la fondation Définit un « framework » pour appliquer de la sécurité aux messages SOAP Intégrité (et non répudiation) W3C XML Signature Syntax and Processing (XMLDSIG) Schéma défini : http://www.w3.org/TR/xmldsig-core Signatures multiples, parties spécifiques Confidentialité W3C XML Encryption Syntax and Processing (XMLENC) Schéma défini : http://www.w3.org/TR/xmlenc-core Chiffrement multiples, parties spécifiques Définit le concept de jetons de sécurité Comment un jeton est transmis dans le message et comment il y est référencé Support des jetons binaires et XML © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Signatures numériques pour l’intégrité 4/10/2017 9:51 PM Signatures numériques pour l’intégrité Signature du message (ou de partie(s) spécifique(s)) Vérification que le message n’a pas été modifié pendant l’échange : non-répudiation Signatures multiples autorisées dans un message Créer une signature numérique (émetteur) Message à envoyer Condensé Signature numérique Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHDFHSD(** Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Fonction de hashage Chiffrement asymétrique Clé privée de l’émetteur © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

XMLDSIG Signature sur l’élément ds:SignedInfo Jeton de sécurité 4/10/2017 9:51 PM XMLDSIG <s:Envelope xmlns:s=“...” xmlns:wsu=“...” xmlns:ws=“...” xmlns:ds=“...” > <s:Header> <ws:Security s:mustUnderstand=“true” > <ws:BinarySecurityToken wsu:Id=“Me” ValueType=“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token- profile-1.0#X509v3” EncodingType=“http://dosc.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message- security-1.0#Base64Binary” > MeIIZFgea4FGiu5cvWEklO8pl... </ws:BinarySecurityToken> … <ds:Signature> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm=“http://www.w3.org/2001/10/xml-exc-c14n#” /> <ds:SignatureMethod Algorithm=“http://www.w3.org/2000/09/xmldsig#rsa-sha1” /> <ds:Reference URI=“#Body” > <ds:DigestMethod Algorithm=“http://www.w3.org/2000/09/xmldsig#sha1” /> <ds:DigestValue>uJhGtef54ed91iKLoA...</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> FR8yaKmNDePQ7E3Hj... </ds:SignatureValue> Jeton de sécurité Référence de la donnée à protéger Condensé de la donnée à protéger Signature sur l’élément ds:SignedInfo © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/10/2017 9:51 PM XMLDSIG … <ds:KeyInfo> <ws:SecurityTokenReference> <ws:Reference URI=“#Me” ValueType=“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- x509-token-profile-1.0#X509v3” /> </ws:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </ws:Security> </s:Header> <s:Body wsu:Id=“Body” > </s:Body> </s:Envelope> Référence au jeton qui peut être utilisé pour vérifier la signature Données signées © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Signatures numériques pour l’intégrité 4/10/2017 9:51 PM Signatures numériques pour l’intégrité Vérifier une signature numérique (destinataire) Signature numérique Condensé Déchiffrement asymétrique Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHDFHSD(** Clé publique de l’émetteur envoyée avec le message ? == ? Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Même fonction de hachage Message d’origine © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Chiffrement XML pour la confidentialité 4/10/2017 9:51 PM Chiffrement XML pour la confidentialité Des parties spécifiques du message peuvent être chiffrées pour assurer la confidentialité Le texte en clair est remplacé par du texte chiffré Chiffrer un message (émetteur) Clé publique du destinataire Clé symétrique générée Clé chiffrée AyD5c%bné”*)9|fDe^bDFaq#xzjFKr@67=&nmdWzm5knvMd’rkvegMs” Chiffrement asymétrique Chiffrement symétrique Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkveq#xzjFrgMs” Message d’origine © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Chiffrement XML pour la confidentialité 4/10/2017 9:51 PM Chiffrement XML pour la confidentialité Déchiffre un message (destinataire) Clé privée du destinataire Clé chiffrée AyD5c%bné”*)9|fDe^bDFaq#xzjFKr@67=&nmdWzm5knvMd’rkvegMs” déchiffrement asymétrique Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkveq#xzjFrgMs” déchiffrement symétrique © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

XMLENC Données chiffrées 4/10/2017 9:51 PM <s:Envelope xmlns:s=“...” xmlns:wsu=“...” xmlns:ws=“...” xmlns:ds=“...” xmlns:xenc=“...” > <s:Header> <ws:Security> <xenc:ReferenceList> <xenc:DataReference URI=“#Body”/> </xenc:ReferenceList> </ws:Security> </s:Header> <s:Body> <xenc:EncryptedData wsu:Id=“Body” > <ds:KeyInfo> <ds:KeyName>CN=Alice</ds:KeyName> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </s:Body> </s:Envelope> Données chiffrées © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Configuration de la sécurité de niveau Message 4/10/2017 9:51 PM Configuration de la sécurité de niveau Message Configuration Service <bindings> <wsHttpBinding> <binding name=“messageSecurityBinding”> <security mode=“Message”/> <message clientCredentialType=“None”/> </security> </binding> </wsHttpBinding> </bindings> <security mode=“Message”> <message clientCredentialType=“Windows”> </security> Binding <security mode=“Message”> <message clientCredentialType=“Certificate”> </security> <services> <service name=“Microsoft.TechDays07.Service”> <endpoint address=“http://localhost:6060/service” binding=“wsHttpBinding" bindingConfiguration=“messageSecurityBinding” contract=“Microsoft.TechDays07.IFoo”/> </service> </services> Point de terminaison [ServiceContract(ProtectionLevel=ProtectionLevel.EncryptAndSign)] public interface IFoo()  Contrat © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Configuration de la sécurité de niveau Message 4/10/2017 9:51 PM Configuration de la sécurité de niveau Message Niveau de protection sélectif [MessageContract] public struct SomeMethod2Request { [MessageHeader(Name =“Foo2Id”, Namespace=“http://Microsoft.TechDays07”, ProtectionLevel= System.Net.Security.ProtectionLevel.Sign)] public string foo2Id; [MessageBody( Namespace=“http://Microsoft.TechDays07”)] public Foo2Item item; }  Contrat © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Sécurité mixte Le transport est responsable de la confidentialité, de l’intégrité et optionnellement de l’authentification serveur Message sécurisé de point à point Le message n’est pas sécurisé une fois extrait Aucune sélection du niveau de protection Dépendance du transport La sécurité de niveau message est utilisée pour établir l’identité client Crédentiels de bout-en-bout © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Configuration de la sécurité mixte 4/10/2017 9:51 PM Configuration de la sécurité mixte Configuration Service Code Client <bindings> <wsHttpBinding> <binding name=“mixedSecurityBinding”> <security mode=“TransportWithMessageCredential”> <message clientCredentialType=“UserName”/> </security> </binding> </wsHttpBinding> </bindings> Binding <services> <service name=“Microsoft.TechDays07.Service”> <endpoint address=“https://localhost:6060/service” binding=“wsHttpBinding” bindingConfiguration=“mixedSecurityBinding” contract=“Microsoft.TechDays07.IFoo”/> </service> </services> Point de terminaison proxy.ClientCredentials.UserName.UserName = username; proxy.ClientCredentials.UserName.Password = password; © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Sécurité d’accès aux ressources Authentification

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Authentification WCF supporte plusieurs modes d’authentification Anonyme, couple utilisateur/mot de passe, Windows, certificat X.509, InfoCard/IssuedToken, personnalisé Les crédentiels Windows et certificat sont automatiquement validés Au niveau Transport ou Message <bindings> <wsHttpBinding> <binding name=“messageSecurityBinding”> <security mode=“Message”> <message clientCredentialType=“Certificate”> </security> </binding> </wsHttpBinding> </bindings> Binding © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Authentification Spécification des paramètres d’identité Client Service <behaviors> <endpointBehaviors> <behavior name=“credentialConfig”> <clientCredentials> <clientCertificate storeLocation=“CurrentUser” storeName=“My” x509FindType=“FindBySubjectName” findValue=“CN=Alice”/> </clientCredentials> </behavior> </behaviors> Behavior  <behaviors> <serviceBehaviors> <behavior name=“credentialConfig” returnUnknownExceptionsAsFaults=“true” > <serviceCredentials x509AuthenticationMapToWindows=“false” > <serviceCertificate storeLocation=“LocalMachine” storeName=“My” x509FindType=“FindBySubjectName” findValue=“localhost" /> </serviceCredentials> </behavior> </behaviors> Behavior 

Configuration de la sécurité de niveau Transport Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Configuration de la sécurité de niveau Transport Authentification Client SSL Code Client -ou- Configuration Client proxy.ClientCredentials.ClientCertificate.SetCertificate( “CN=Alice”, StoreLocation.CurrentUser, StoreName.My); <client> <endpoint address=“https://localhost:6060/service” binding=“wsHttpBinding" bindingConfiguration=“transportSecurityBinding” contract=“Microsoft.TechDays07.IFoo” name=“WSHttpBinding_Ifoo” behaviorConfiguration=“clientCertAutheticationBehavior”/> </client> Point de terminaison <Behaviors> <endpointBehaviors> <behavior name=“clientCertAutheticationBehavior”> <clientCredentials> <clientCertificate findValue=“CN=Alice” storeLocation=“CurrentUser” storeName=“My”/> </clientCredentials> </behavior> </endpointBehaviors> </behaviors> Behavior  © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Configuration de la sécurité de niveau Transport Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Configuration de la sécurité de niveau Transport Authentification Client Windows Kerberos Configuration Service <bindings> <wsHttpBinding> <binding name=“transportSecurityBinding”> <security mode=“Transport”> <transport clientCredentialType=“Windows”/> </security> </binding> </wsHttpBinding> </bindings> Binding <services> <service name=“Microsoft.TechDays07.Service”> <endpoint address=“https://localhost:6060/service” binding=“wsHttpBinding” bindingConfiguration=“transportSecurityBinding” contract=“Microsoft.TechDays07.Ifoo”/> </service> </services> Point de terminaison © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Sécurité d’accès aux ressources Autorisations

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations CLR Scénarios de contrôle d’accès basé sur les rôles Demandes de permissions déclaratives ou impératives Intégration transparente avec les comptes Windows L’identité du client est exposé au service au travers de l’OperationContext.ServiceSecurityContext WindowsIdentity contient l’identité du client WindowsIdentity peut être utilisé pour l’impersonation du client L’identité du client est automatiquement liée au thread principal courant OperationContract (PrincipalPermission) Service (code impératif) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations CLR Contrôlées par un Behavior ServiceAuthorization Rôles ASP.NET PrincipalPermissionMode.UseAspNetRoles Thread.CurrentPrincipal basé sur IPrincipal résultant de l’ASP.NET Role Provider ACLs Windows PrincipalPermissionMode.UseWindowsGroups Thread.CurrentPrincipal basé sur WindowsPrincipal <behavior name=“authorizationBehavior”> <serviceAuthorization principalPermissionMode=“UseAspNetRoles” /> </behavior> Behavior  // Only a client authenticated with a valid certificate that has the // specified subject name and thumbprint can call this method. [PrincipalPermission(SecurityAction.Demand, Name=“CN=Alice; 123456712345677E8E230FDE624F841B1CE9D41E”)] public string SomeMethod1() { ... } Code Service © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations CLR Utilisation d’un fournisseur de rôles Attributs dans le code pour identifier les rôles Fournisseur de rôles Spécifié dans le fichier de configuration sous Providers dans RoleManager Relier les rôles dans le code aux rôles de l’outil d’administration Mécanisme extensible Assignation d’utilisateurs à des rôles Ex. Intégration avec Authorization Manager (AzMan) Cf. « How To: Use Authorization Manager (AzMan) with ASP.NET 2.0 » http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000019.asp [PrincipalPermission(SecurityAction.Demand, Role= “Foo”)] public string SomeMethod1() © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations CLR [PrincipalPermission(SecurityAction.Demand, Role= “Foo”)] public string SomeMethod1() Code Service <roleManager enabled=“true” defaultProvider=“AzManRoleProvider”> <providers> <add name=“AzManRoleProvider” type=“System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, publicKeyToken=b03f5f7f11d50a3a" connectionStringName=“msxml://c:/TechDays07/azmanstore.xml” applicationName=“SecureService”/> </providers> </roleManager> <behaviors> <endpointBehaviors> <behavior name=“authorizationBehavior”> <serviceAuthorization principalPermissionMode=“UseAspNetRoles” roleProviderName=“AzManRoleProvider”/> </behavior> </endpointBehaviors> </behaviors> Behavior  AzMan avec azmanstore.xml © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Impersonation du client Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Impersonation du client Les clients délèguent leurs crédentiels au service Le service peut s’exécuter sous l’identité du client (impersonation) Le service peut invoquer à son tour d’autres services de la part du client (délégation) WSHttpBinding, WSDualHttpBinding, et NetTcpBinding Avec ou sans transition de protocole Cf. «  Kerberos Protocol Transition and Constrained Delegation » http://technet2.microsoft.com/WindowsServer/en/Library/c312ba01-318f-46ca-990e-a597f3c294eb1033.mspx Mécanismes d’authentification supportés Couple utilisateur/mot de passe Windows Kerberos Le client doit explicitement autoriser la délégation de ses crédentiels Certificat X.509 Doit pouvoir être mappé sur un compte Windows © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Impersonation du client Exprimé par code ou par configuration Peut être appliqué Au niveau Service Au niveau Opération Niveau Code <behavior> <serviceAuthorization ImpersonateCallerForAllServiceOperations=“true”/> </authorizationPolicies> </serviceAuthorization </behavior> Behavior  [OperationBehavior(Impersonation=ImpersonationOption.Required)] public string SomeMethod1()  Contrat public string SomeMethod1() { using (ServiceSecurityContext.Current.WindowsIdentity. Impersonate()) ... } Code Service

Impersonation du client Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Impersonation du client Le client définit explicitement le niveau d’impersonation autorisé Code Client -ou- Configuration Client proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; <client> <endpoint address="https://localhost:6060/service" binding="wsHttpBinding" bindingConfiguration=“Binding1" contract="Microsoft.TechDays07.IFoo" name="WSHttpBinding_IFoo" behaviorConfiguration="ClientWindowsCredential"/> </client> <behaviors> <endpointBehaviors> <behavior name="ClientWindowsCredential"> <clientCredentials> <windows allowedImpersonationLevel="Impersonation"/> </clientCredentials> </behavior> </endpointBehaviors> </behaviors> © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorisations basées sur les claims Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations basées sur les claims WCF offre un modèle de définition/programmation unifié basé sur les claims Les claims sont des informations sur une identité Déclaration d’un attribut ou d’un privilège spécifique Les crédentiels sont basés sur des claims Behaviors ServiceCredential et ClientCredential Les jetons de sécurité sont utilisés pour véhiculer les claims Binaires ou XML Utilisateur Windows Certificat X.509 Subject: CN=Alice Issuer: SomeCA SerialNumber: 1234567 ValidFrom: 2006-12-13 ValidUntil: 2007-12-12 SomeDomain\Alice Role: User Role: PM Role: FTE … Alice © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorisations basées sur les claims Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations basées sur les claims Nouveau modèle complémentaire introduit par WCF Plus générique Unification de la représentation des preuves véhiculées dans des jetons hétérogènes sous forme de claims Spécification via configuration de(s) politique(s) d’autorisation Large flexibilité pour exprimer des décisions de contrôles arbitraires basées sur la preuve disponible (claims) Prise en charge de très nombreux scénarios Identité fédérée Cf. « WCF Service Authorization with Claims » http://pluralsight.com/blogs/tjanczuk/archive/2006/06/15/27746.aspx Cf. « WCF Custom Security Tokens » http://pluralsight.com/blogs/tjanczuk/archive/2006/06/16/28046.aspx © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorisations basées sur les claims Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations basées sur les claims Jeton de sécurité Validation SecurityTokenAuthenticator Politique d’autorisation Politique d’autorisation externe Evaluation IAuthorizationPolicy ClaimSets avec Claims Contrôle d’accès ServiceAuthorizationManager Oui -ou- Non © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorisations basées sur les claims Validation Les claims sont extraits des jetons de sécurité Classe dérivée de SecurityTokenAuthenticator Associée à chaque type de jeton de sécurité pour réaliser l’authentification et l’extraction des claims La collection de claims (ClaimSet) est transmise à la couche d’autorisation OperationContext.ServiceSecurityContext.AuthorizationContext AuthorizationContext context = ServiceSecurityContext.Current.AuthorizationContext; foreach (ClaimSet claimSet in context.ClaimSets) { foreach (Claim claim in claimSet.FindClaims(ClaimTypes.Name, Rights.PossessProperty)) ... }

Autorisations basées sur les claims Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Autorisations basées sur les claims Evaluation et politique(s) d’autorisation WCF implémente un jeu de politiques par défaut Unification de la représentation des preuves véhiculées dans des jetons hétérogènes (X.509, Kerberos, SAML, etc.) Point d’extensibilité qui permet de manipuler une collection de claims Développement d’une politique d’autorisation qui évalue les claims en entrée et les transforme le cas échéant en un nouveau jeu de claims Implémentation d’une classe dérivée d’IAuthorizationPolicy Evaluate : EvaluationContext  Collection ClaimSet d’OperationContext.ServiceSecurityContext.AuthorizationContext namespace Microsoft.TechDay07 { public class CustomAuthZPolicy : IAuthorizationPolicy #region IAuthorizationPolicy Members public bool Evaluate(EvaluationContext evaluationContext, ref object state) // TODO } … © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorisations basées sur les claims Contrôle d’accès Implémentation d’une classe d’autorisation dérivée de ServiceAuthorizationManager Appel de CheckAccessCore par WCF pour accorder/refuser l’accès pour chaque message reçu Evaluation d’OperationContext namespace Microsoft.TechDay07 { public class CustomAuthZManager: ServiceAuthorizationManager public override bool CheckAccessCore(OperationContext operationContext) foreach (Claim requiredClaim in _requiredClaims) // Check each required claim if (!FindMatchingClaim(requiredClaim, operationContext)) // Check each claimset return false; } return true;

Autorisations basées sur les claims Spécification du gestionnaire d’autorisation et des politiques Behavior ServiceAuthorization <behavior> <serviceAuthorization principalPermissionMode=“Custom” serviceAuthorizationManagerType=“Microsoft.TechDay07.CustomAuthZManager, service”> <!-- The serviceAuthorization behavior allows one to specify custom authorization policies. --> <authorizationPolicies> <add policyType="Microsoft.TechDay07.CustomAuthZPolicy, policy" /> </authorizationPolicies> </serviceAuthorization Behavior 

Sécurité d’accès aux ressources Fédération

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Identité fédérée Les services Web sont des agents autonomes Comment prouver qui je suis ? Qui peut se porter garant pour moi ? Comment savoir en qui accorder sa confiance ? Met l’accent sur la gestion explicite des relations de confiance entres les applications et services WS-Security permet qu’un message contienne plusieurs jetons de sécurité Certains de ces jetons peuvent correspondre à des identités D’autres jetons peuvent correspondre à des droits accordés Ils peuvent être chiffrés et validés dans le cadre général d’un schéma d’autorisation Nécessite que des processus ou des systèmes qui étaient centralisés évoluent vers un modèle fédéré © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM WS-Trust, la fondation Introduit la notion de Security Token Service (STS) Un STS est potentiellement tout service capable d’émettre des jetons Définit un protocole pour demander et obtenir des jetons de sécurité Le client envoie un message RequestSecurityToken (RST) au STS Ce message demande un jeton de sécurité (entête) Le STS répond avec un message RequestSecurityTokenResponse (RSTR) Ce message contient le jeton de sécurité demandé et les détails associés dans le corps du message Les jetons sont destinés à tout type d’usage Sécurisation d’une séquence de messages, authentification et contrôle d’accès Plusieurs modèles de génération de jetons Le client obtient le jeton Le service obtient le jeton pour le client © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Chaîne de confiance fédérée typique Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Chaîne de confiance fédérée typique Requiert un jeton de FS-A FS-A Service de jetons de Securité (STS) Authentification FS-R Service de jetons de Securité (STS) Autorisation Validation Evaluation Je suis Alice (SAML) Evaluation Validation Accès autorisé pour Alice (SAML) Requiert un jeton de FS-R Je suis Alice (X.509) Voici un jeton pour FS-R (SAML) Validation Messages Contrôle d’accès Client Service fédéré Domaine de confiance Client Domaine de confiance Service © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Chaîne de confiance fédérée typique Support de multiples topologies de confiance n STSes signifie n paires de RST+RSTR Récursivité Récursivité C Indirecte – C garant de A et des identités de C Délégation A Directe B Directe

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Identité fédérée WCF supporte CardSpace Que le bigbang de l’identité commence !! Cf. Session « Introduction à Windows CardSpace » Cf. Hands-on-lab « Windows CardSpace » © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM En guise de conclusion La communication WCF Est sécurisée par défaut L’ensemble des bindings standard sont sécurisés par défaut Le niveau de protection par défaut est encrypt and sign Il est question de jetons de sécurité et de claims Large jeu extensible de types de jeton supportés Offre une expérience de programmation unifiée Conçue pour les scénarios On-Machine, Cross-Machine, et Cross-Internet scenarios Architecture modulaire, flexible et extensible Cohérente entre les bindings, entre les jetons de sécurité Est interopérable et basée sur des standards Basée sur les spécifications/protocoles WS-* Compatible avec les mécanismes de sécurité existants (Kerberos, X.509, HTTPS, etc.) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Où trouver de l’information Next Generation Business Solutions Platform Strategy Review 4/10/2017 9:51 PM Où trouver de l’information Un point d’entrée : netFx3 http://wcf.netfx3.com Documentation MSDN Sécurité WCF http://msdn2.microsoft.com/en-us/library/7ea87fcb-dcfb-4a4a-8b03-6b954575d45b.aspx Des blogs Nicholas Allen http://blogs.msdn.com/drnick Vittorio Bertocci http://blogs.msdn.com/vbertocci Tomasz Janczuk http://pluralsight.com/blogs/tjanczuk © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/10/2017 9:51 PM Questions ? © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

La référence technique pour les IT Pros : La référence technique technet.microsoft.com 4/10/2017 9:51 PM La référence technique pour les développeurs : msdn.microsoft.com Abonnement TechNet Plus : Versions d’éval + 2 incidents support Visual Studio 2005 + Abonnement MSDN Premium S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Votre potentiel, notre passion TM 4/10/2017 9:51 PM Votre potentiel, notre passion TM © 2007 Microsoft France © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.