Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

48
Développement de Services Développement de Services Web sécurisés et Web sécurisés et interopérables avec WS-* et interopérables avec WS-* et WSE 2.0 SP3 WSE 2.0 SP3 Philippe Beraud Philippe Beraud Consultant Principal Consultant Principal Microsoft France Microsoft France

description

Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3. Philippe Beraud Consultant Principal Microsoft France. Excellence de l’engineering. Mise à jour avancée. Conseils, Outils, Réponse. Isolation et résilience. La stratégie sécurité de Microsoft. - PowerPoint PPT Presentation

Transcript of Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Page 1: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Développement de Services Développement de Services Web sécurisés et Web sécurisés et interopérables avec WS-* et interopérables avec WS-* et WSE 2.0 SP3WSE 2.0 SP3

Développement de Services Développement de Services Web sécurisés et Web sécurisés et interopérables avec WS-* et interopérables avec WS-* et WSE 2.0 SP3WSE 2.0 SP3

Philippe BeraudPhilippe BeraudConsultant PrincipalConsultant PrincipalMicrosoft FranceMicrosoft France

Page 2: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

La stratégie sécurité de MicrosoftLa stratégie sécurité de Microsoft

Isolation et Isolation et résiliencerésilience

Excellence Excellence dede

l’engineeringl’engineering

Conseils,Conseils,Outils,Outils,

RéponseRéponse

Mise à jourMise à jouravancéeavancée

Authentification,Authentification,Autorisation,Autorisation,

AuditAudit

Page 3: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

SommaireSommaire

Vue d’ensemble sur Web Services Architectures (WSA)Vue d’ensemble sur Web Services Architectures (WSA)

Fondamentaux de la sécurité des services Web (Fondamentaux de la sécurité des services Web (WS-WS-SecuritySecurity))

Définir un cadre de confiance entre clients et services (Définir un cadre de confiance entre clients et services (WS-WS-TrustTrust))

Rendre possible une infrastructure B2B gérableRendre possible une infrastructure B2B gérable

Créer un contexte de sécurité (Créer un contexte de sécurité (WS-SecureConversationWS-SecureConversation))

Offrir de meilleures performances vis-à-vis de la sécuritéOffrir de meilleures performances vis-à-vis de la sécurité

Décrire des politiques de sécurité (Décrire des politiques de sécurité (WS-SecurityPolicyWS-SecurityPolicy))

Supprimer le besoin d’écrire du code de sécuritéSupprimer le besoin d’écrire du code de sécurité

Page 4: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-* Web Service Architecture (WSA)WS-* Web Service Architecture (WSA)

STAR pour STAR pour SecureSecure, , TransactionalTransactional, , AsynchronousAsynchronous, , ReliableReliable

« « An Introduction to the Web Services Architecture and Its An Introduction to the Web Services Architecture and Its SpecificationsSpecifications » »

http://msdn.microsoft.com/library/en-us/dnwebsrv/html/introwsa.asphttp://msdn.microsoft.com/library/en-us/dnwebsrv/html/introwsa.asp

HTTP, HTTPS, SMTP, etc.HTTP, HTTPS, SMTP, etc.HTTP, HTTPS, SMTP, etc.HTTP, HTTPS, SMTP, etc. TransportsTransportsTransportsTransports

XML, SOAP, AddressingXML, SOAP, AddressingXML, SOAP, AddressingXML, SOAP, Addressing MessagingMessagingMessagingMessaging

XSD, WSDL, UDDI, Policy, XSD, WSDL, UDDI, Policy, MetadataExchangeMetadataExchangeXSD, WSDL, UDDI, Policy, XSD, WSDL, UDDI, Policy, MetadataExchangeMetadataExchange DescriptionDescriptionDescriptionDescription

ComposableComposableServiceService

AssurancesAssurances

ComposableComposableServiceService

AssurancesAssurancesTransactionTransaction

ssTransactionTransaction

ssReliableReliable

MessagingMessagingReliableReliable

MessagingMessaging

Service Service CompositionComposition

Service Service CompositionComposition

SecuritySecuritySecuritySecurity

BPEL4WS, ManagementBPEL4WS, ManagementBPEL4WS, ManagementBPEL4WS, Management

Page 5: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Tout fonctionne en associationTout fonctionne en associationEx: Le contexte transactionnel fonctionne au-dessus d'une Ex: Le contexte transactionnel fonctionne au-dessus d'une connexion fiableconnexion fiable

Ex: Les participants utilisent Ex: Les participants utilisent WS-SecuritWS-Security pour sécuriser les y pour sécuriser les transactions (pour tous les types de participants)transactions (pour tous les types de participants)

Ne pas « réinventer la roue » pour chaque spécificationNe pas « réinventer la roue » pour chaque spécificationRéutilisation du code, réduction des coûts, un temps de mise à Réutilisation du code, réduction des coûts, un temps de mise à disposition plus courtdisposition plus court

Ex: l’ensemble des ressources est nommé avec Ex: l’ensemble des ressources est nommé avec WS-AddressingWS-Addressing

Le système dans son ensemble est plus stableLe système dans son ensemble est plus stableLes changements ne filtrent pas vers le haut de la pileLes changements ne filtrent pas vers le haut de la pile

Ex: avec Ex: avec WS-SecurityWS-Security, les scénarios de fédération d’identité , les scénarios de fédération d’identité supporte l’ensemble des jetons de sécurité, y compris les futurssupporte l’ensemble des jetons de sécurité, y compris les futurs

Importance de la compositionImportance de la composition

Page 6: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Composition des en-têtesComposition des en-têtes

SecuritySecuritySecuritySecurity

AddressinAddressingg

AddressinAddressingg

Reliable Reliable MessaginMessagin

gg

Reliable Reliable MessaginMessagin

gg

<S:Envelope … > <S:Header> <wsa:ReplyTo> <wsa:Address>http://business456.com/User12</wsa:Address> </wsa:ReplyTo> <wsa:To>http://fabrikam123.com/Traffic</wsa:To> <wsa:Action>http://fabrikam123.com/Traffic/Status</wsa:Action> <wssec:Security> <wssec:BinarySecurityToken ValueType="wssec:X509v3" EncodingType=“wssec:Base64Binary">      dWJzY3JpYmVyLVBlc…..eFw0wMTEwMTAwMD </wssec:BinarySecurityToken> </wssec:Security> <wsrm:Sequence> <wsu:Identifier>http://fabrikam123.com/seq1234</wsu:Identifier> <wsrm:MessageNumber>10</wsrm:MessageNumber> </wsrm:Sequence> </S:Header> <S:Body> <app:TrafficStatus xmlns:app="http://highwaymon.org/payloads"> <road>520W</road><speed>3MPH</speed> </app:TrafficStatus> </S:Body></S:Envelope>

Page 7: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Processus d’élaboration des Processus d’élaboration des spécificationsspécifications

Spécification Spécification publiéepubliée

Recueil des Recueil des feedbacksfeedbacks

Révision de la Révision de la spécification, spécification,

itérationitérationImplémentationImplémentation

Organismes de Organismes de normalisationnormalisation

Page 8: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Web Service EnhancementWeb Service Enhancement (WSE) 2.0 (WSE) 2.0

Extension (Extension (Add-onAdd-on) supportée de ) supportée de Visual Studio.NETVisual Studio.NET (VS.NET) et du (VS.NET) et du Framework .NETFramework .NET

Version 2.0 Service Pack 3Version 2.0 Service Pack 3

Téléchargeable depuis Téléchargeable depuis http://msdn.microsoft.com/webservices/building/wsehttp://msdn.microsoft.com/webservices/building/wse

Documentation, Documentation, QuickStartQuickStart (C#, Visual Basic) (C#, Visual Basic)

Boîte à outilsBoîte à outils

WseWsdl2, WseWsdl2, WseSettingsWseSettings, WseCertificate2, WseCertificate2

Cycle de mises à jour plus rapide que VS.NET Cycle de mises à jour plus rapide que VS.NET Proposer le plus tôt possible une implémentation des dernières Proposer le plus tôt possible une implémentation des dernières spécifications WS-* (ou de leur révision) publiées par Microsoft et d’autres spécifications WS-* (ou de leur révision) publiées par Microsoft et d’autres acteursacteurs

WS-SecurityWS-Security,, WS-SecurityPolicy WS-SecurityPolicy,, WS-Trust WS-Trust,, WS-SecureConversation WS-SecureConversation, , WS-ReferralWS-Referral, , WS-AddressingWS-Addressing, , WS-PolicyWS-Policy, , « DIME »« DIME », , WS-AttachmentsWS-Attachments

Simplification considérable du développement de services Web sécurisésSimplification considérable du développement de services Web sécurisés

Y compris à travers de multiples intermédiaires et domaines de Y compris à travers de multiples intermédiaires et domaines de confianceconfiance

Les fonctionnalités additionnelles incluent le support de transports Les fonctionnalités additionnelles incluent le support de transports alternatifs, du routage de message, etc.alternatifs, du routage de message, etc.

Page 9: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Architecture WSE 2.0Architecture WSE 2.0Ensemble de classes implémentant les nouveaux standards Ensemble de classes implémentant les nouveaux standards WS-*WS-*

Manipulation des en-têtes SOAPManipulation des en-têtes SOAP

Notion de pipeline et filtres hébergés par ASP.NET Notion de pipeline et filtres hébergés par ASP.NET Écriture (Injection) d’en-têtes SOAP dans le messages sortantsÉcriture (Injection) d’en-têtes SOAP dans le messages sortants

Transformation du corps SOAP du message Transformation du corps SOAP du message (chiffrement/déchiffrement)(chiffrement/déchiffrement)

Lecture des en-têtes SOAP des messages entrantsLecture des en-têtes SOAP des messages entrants

Possibilité d’insérer ses propres filtres dans le pipelinePossibilité d’insérer ses propres filtres dans le pipeline« « Inside the Web Services Enhancements PipelineInside the Web Services Enhancements Pipeline » »

http://msdn.microsoft.com/library/en-us/dnwse/html/insidewsepipe.asphttp://msdn.microsoft.com/library/en-us/dnwse/html/insidewsepipe.asp

ExpéditeuExpéditeur de r de

messages messages SOAPSOAP

ExpéditeuExpéditeur de r de

messages messages SOAPSOAP

Filtres de Filtres de sortiesortie

Filtres Filtres d’entréed’entrée

Service WebService WebService WebService Web

Filtres Filtres d’entréed’entrée

Filtres de Filtres de sortiesortie

Page 10: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Traitement des en-têtesTraitement des en-têtesNécessité d’interpréter et de comprendre le schéma des en-Nécessité d’interpréter et de comprendre le schéma des en-têtetête

Retourner un Retourner un SSOAP OAP FaultFault dans le cas d’une en-tête dans le cas d’une en-tête mmustUnderstandustUnderstand=="1" non comprise non comprise[WebMethod][SoapHeaders("headers")]Public returnType Foo(…){ ProcessHeaders(headers); …}

… public static void ProcessHeaders(SoapUnknownHeader[] hdrs){ if (hdrs != null) { foreach(SoapUnknownHeader hdr in hdrs) { if (hdr.MustUnderstand==true) { hdr.DidUnderstand=false; throw new SoapHeaderException("Header was not understood", SoapException.MustUnderstandFaultCode); } } }}

Page 11: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Feuille de routeFeuille de route WS-Security (WS-*) WS-Security (WS-*)« « Security in a Web Services World: A Proposed Architecture Security in a Web Services World: A Proposed Architecture and Roadmapand Roadmap » »

http://msdn.microsoft.com/library/en-us/dnwssecur/html/securithttp://msdn.microsoft.com/library/en-us/dnwssecur/html/securitywhitepaper.aspywhitepaper.asp

WSE 2.0WSE 2.0Support de Support de WS-Security, WS-Trust, WS-SecureConversation, WS-Security, WS-Trust, WS-SecureConversation, WS-SecurityPolicyWS-SecurityPolicy

WS-SecureWS-SecureConversationConversationWS-SecureWS-Secure

ConversationConversation WS-S

ecu

rity

WS-S

ecu

rity

Polic

yPolic

yW

S-S

ecu

rity

WS-S

ecu

rity

Polic

yPolic

y

WS-TrustWS-TrustWS-TrustWS-Trust

SOAPSOAPSOAPSOAP Standard W3C, fondation des Standard W3C, fondation des services Webservices WebStandard W3C, fondation des Standard W3C, fondation des services Webservices Web

WS-SecurityWS-SecurityWS-SecurityWS-SecurityStandard de l’OASIS aujourd’hui Standard de l’OASIS aujourd’hui largement supportélargement supportéStandard de l’OASIS aujourd’hui Standard de l’OASIS aujourd’hui largement supportélargement supporté

WS-FederationWS-FederationWS-FederationWS-Federation

Page 12: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-Security, la WS-Security, la fondationfondation« « Web Services Security SOAP Message Security 1.0Web Services Security SOAP Message Security 1.0 » »

WS-SecurityWS-Security 2004, OASIS Standard 200401, Mars 2004 2004, OASIS Standard 200401, Mars 2004

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-messhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdfage-security-1.0.pdf

Disponibilité d’un profil d’interopérabilité WS-IDisponibilité d’un profil d’interopérabilité WS-I Basic Security Profile Working GroupBasic Security Profile Working Group

http://www.ws-i.org/deliverables/workinggroup.aspx?wg=basicsecurityhttp://www.ws-i.org/deliverables/workinggroup.aspx?wg=basicsecurity

Définit un « Définit un « frameworkframework » pour la construction de protocoles de  » pour la construction de protocoles de sécurité capitalisant sur les spécifications XML de sécurité sécurité capitalisant sur les spécifications XML de sécurité existantesexistantes

Intégrité (et non répudiation)Intégrité (et non répudiation)S’appuie surS’appuie sur W3C W3C «  « XML Signature Syntax and ProcessingXML Signature Syntax and Processing » ( » (XMLDSIG)XMLDSIG)

http://www.w3.org/TR/xmldsig-corehttp://www.w3.org/TR/xmldsig-core Signatures multiples, parties spécifiquesSignatures multiples, parties spécifiques

ConfidentialitéConfidentialitéS’appuie surS’appuie sur W3C W3C «  «  XML Encryption Syntax and ProcessingXML Encryption Syntax and Processing » ( » (XMLENC)XMLENC)

http://www.w3.org/TR/xmlenc-corehttp://www.w3.org/TR/xmlenc-core

Chiffrement multiples, parties spécifiquesChiffrement multiples, parties spécifiques

Propagation des jetons de sécuritéPropagation des jetons de sécuritéSupport des jetons binaires et XMLSupport des jetons binaires et XML

Page 13: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-SecurityWS-Security« « FrameworkFramework » conçu pour une sécurité de bout en bout pour les  » conçu pour une sécurité de bout en bout pour les messages SOAPmessages SOAP

De l’émetteur initial via 0-n nœuds intermédiaires au destinataire De l’émetteur initial via 0-n nœuds intermédiaires au destinataire ultimeultime

Sécurité indépendante du transportSécurité indépendante du transportSupport de multiples protocoles de transport et technologies de Support de multiples protocoles de transport et technologies de chiffrementchiffrement

L’émetteur ne doit faire confiance qu’au point de terminaisonL’émetteur ne doit faire confiance qu’au point de terminaison

Par opposition à une sécurité point à point (SSL/TLS et/ou Par opposition à une sécurité point à point (SSL/TLS et/ou IPSecIPSec) plus ) plus simple et connuesimple et connue

Gestion au niveau transport Gestion au niveau transport Restreint les protocoles de transport qui peuvent être utiliséeRestreint les protocoles de transport qui peuvent être utilisée

L’expéditeur doit faire confiance à l’ensemble des L’expéditeur doit faire confiance à l’ensemble des intermédiairesintermédiaires

ÉmetteurÉmetteur DestinataireDestinataireIntermédiaireIntermédiaire IntermédiaireIntermédiaire

……

Page 14: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Jetons de sécuritéJetons de sécurité

Bases pour une authentification et une autorisation distribuéesBases pour une authentification et une autorisation distribuées

Les jetons de sécurité définissent des affirmations faites au Les jetons de sécurité définissent des affirmations faites au sujet d’une identité, d’aptitude ou de privilègessujet d’une identité, d’aptitude ou de privilèges

Nom, adresse mèl, clé, groupe, rôle, etc.Nom, adresse mèl, clé, groupe, rôle, etc.

Attributs/propriétés de sécuritéAttributs/propriétés de sécurité

Microsoft.Web.Services2.SecurityMicrosoft.Web.Services2.Security..SecurityTokenSecurityToken ..UsernameTokenUsernameToken

.SecurityContextTokenSecurityContextToken [jetons de sécurité XML][jetons de sécurité XML] … … ..BinarySecurityTokenBinarySecurityToken ..KerberosTokenKerberosToken(2)(2) .X509SecurityToken.X509SecurityToken [jetons binaires [jetons binaires personnalisés]personnalisés] … …

Quelques exemplesQuelques exemplesNon signéNon signé

Jeton Nom d’utilisateurJeton Nom d’utilisateur

SignéSignéCertificat X.509, ticket Certificat X.509, ticket KerberosKerberos, assertion , assertion SAML, licence SAML, licence XrMLXrML, etc., etc.

Preuve de possessionPreuve de possessionClé secrète, mot de passeClé secrète, mot de passe

L’authentification implique la vérification L’authentification implique la vérification de cette connaissancede cette connaissance

Page 15: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Signatures numériques pour l’intégritéSignatures numériques pour l’intégritéDes parties spécifiques du message peuvent être signées pour Des parties spécifiques du message peuvent être signées pour assurer l’intégrité et la non répudiationassurer l’intégrité et la non répudiation

Savoir que le message n’a pas été altéré, savoir que seul Savoir que le message n’a pas été altéré, savoir que seul l’expéditeur a pu l’envoyerl’expéditeur a pu l’envoyer

Par défaut, WSE signe un ensemble de parties du messagesPar défaut, WSE signe un ensemble de parties du messagesMicrosoft.Web.Services2.Security.MessageSignatureMicrosoft.Web.Services2.Security.MessageSignature

Soap:Envelope/soap:Header/wsa:To, Soap:Envelope/soap:Header/wsa:Action, Soap:Envelope/soap:Header/wsa:To, Soap:Envelope/soap:Header/wsa:Action, Soap:Envelope/soap:Header/wsa:MessageID, Soap:Envelope/soap:Header/wsa:MessageID, Soap:Envelope/soap:Header/wsa:From/wsa:Address, Soap:Envelope/soap:Header/wsa:From/wsa:Address, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Created, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Created, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Expires, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Expires, Soap:Envelope/soap:BodySoap:Envelope/soap:Body

Créer une signature numérique (émetteur)Créer une signature numérique (émetteur)

Clé Clé privéprivé

ee

Message à envoyerMessage à envoyer CondenséCondensé Signature Signature numériquenumérique

Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkveg

Ms”

Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHD

FHSD(**

Fonction de hashage (SHA,

MD5)

Chiffrement asymétrique

Page 16: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

<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> …

Signatures numériques pour l’intégritéSignatures numériques pour l’intégritéExemple de signature numériqueExemple de signature numérique

Référence de la donnée à protégerRéférence de la donnée à protéger

Jeton de sécuritéJeton de sécuritéSignature sur l’élément Signature sur l’élément ds:SignedInfods:SignedInfo

Condensé de la donnée à protégerCondensé de la donnée à protéger

Page 17: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

… <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>

Signatures numériques pour l’intégritéSignatures numériques pour l’intégritéExemple de signature numériqueExemple de signature numérique

Données signéesDonnées signées

Référence au jeton qui peut être utilisé pour vérifier la signatureRéférence au jeton qui peut être utilisé pour vérifier la signature

Page 18: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Signatures numériques pour l’intégritéSignatures numériques pour l’intégrité

Vérifier une signature numérique (destinataire)Vérifier une signature numérique (destinataire)

Message Message d’origined’origine

Même fonction de hashage

CondenséCondensé

Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs”

Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs”

Clé publique Clé publique envoyée avec envoyée avec le messagele message

Déchiffrement asymétrique

Signature Signature numériquenumérique

Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHD

FHSD(**

? == ?

Page 19: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Signature d’un message avec un certificat X.509Signature d’un message avec un certificat X.509

Page 20: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Chiffrement XML pour la confidentialitéChiffrement XML pour la confidentialitéDes parties spécifiques du message peuvent être chiffrés pour Des parties spécifiques du message peuvent être chiffrés pour assurer la confidentialitéassurer la confidentialité

Le texte en clair est remplacé par du texte chiffréLe texte en clair est remplacé par du texte chiffré

Dans WSE, Microsoft.Web.Services2.Security.CryptographyDans WSE, Microsoft.Web.Services2.Security.Cryptography

Chiffrer un message (expéditeur)Chiffrer un message (expéditeur)

Clé Clé symétriqusymétrique généréee générée

Chiffrement asymétrique

Clé Clé publique publique

du du destinataidestinatai

rere AyD5c%bné”*)9|fDe^bDFaq#xzjFKr@67=&nmdWzm5knvMd’rkv

egMs”

Clé Clé chiffréechiffrée

Chiffrement symétrique

Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkveq#xzj

FrgMs”

Page 21: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Chiffrement XML pour la confidentialitéChiffrement XML pour la confidentialité

Déchiffre un message (destinataire)Déchiffre un message (destinataire)

Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkveq#xzj

FrgMs”

AyD5c%bné”*)9|fDe^bDFaq#xzjFKr@67=&nmdWzm5knvMd’rkv

egMs”

Clé Clé chiffréechiffrée

Clé privée Clé privée du du

destinatairedestinataire

Déchiffrement asymétrique

Déchiffrement symétrique

Page 22: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Chiffrement d’un message avec un TGS KerberosChiffrement d’un message avec un TGS Kerberos

Page 23: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Identité et relations de confianceIdentité et relations de confianceLes services Web sont des agents autonomesLes services Web sont des agents autonomes

Le développement, le déploiement, le fonctionnement, l’administration et la sécurité Le développement, le déploiement, le fonctionnement, l’administration et la sécurité varient indépendamment des clients des servicesvarient indépendamment des clients des services

Cette « indépendance forcée » présente d’importantes ramifications qui s’infiltrent Cette « indépendance forcée » présente d’importantes ramifications qui s’infiltrent dans l’architecture des services Webdans l’architecture des services Web

Comment prouver qui je suis ? Qui peut se porter garant pour moi ? Comment savoir Comment prouver qui je suis ? Qui peut se porter garant pour moi ? Comment savoir en qui accorder sa confiance ?en qui accorder sa confiance ?

Met l’accent sur la gestion explicite des relations de confiance entres les Met l’accent sur la gestion explicite des relations de confiance entres les applications et servicesapplications et services

WS-SecurityWS-Security permet qu’un message contienne plusieurs jetons de sécurité permet qu’un message contienne plusieurs jetons de sécurité

Certains de ces jetons peuvent correspondre à des identités d’utilisateursCertains de ces jetons peuvent correspondre à des identités d’utilisateurs

D’autres jetons peuvent correspondre aux droits accordés à un utilisateur D’autres jetons peuvent correspondre aux droits accordés à un utilisateur particulier ou à une applicationparticulier ou à une application

Ils peuvent être chiffrés et validés dans le cadre général d’un schéma Ils peuvent être chiffrés et validés dans le cadre général d’un schéma d’autorisationd’autorisation

Nécessite que des processus ou des systèmes qui étaient centralisés évoluent Nécessite que des processus ou des systèmes qui étaient centralisés évoluent vers un modèle fédérévers un modèle fédéré

Cela s’applique non seulement aux identités de sécurité mais aussi aux annuaires de Cela s’applique non seulement aux identités de sécurité mais aussi aux annuaires de services et à l’administration de systèmesservices et à l’administration de systèmes

Page 24: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-TrustWS-Trust

« « Web Services Trust LanguageWeb Services Trust Language »  » Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, OpenNetwork, Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, OpenNetwork, PingId, Reactivity, RSA, Verisign, Février 2005PingId, Reactivity, RSA, Verisign, Février 2005

http://msdn.microsoft.com/ws/2005/02/ws-trusthttp://msdn.microsoft.com/ws/2005/02/ws-trust

Introduit la notion de Introduit la notion de Security Token Service Security Token Service (STS)(STS)Un STS est potentiellement tout service Web capable d’émettre des Un STS est potentiellement tout service Web capable d’émettre des jetonsjetons

Tout le monde peut émettre des jetonsTout le monde peut émettre des jetons

Définit comment faire du courtage de confianceDéfinit comment faire du courtage de confianceBesoin d’un initiateurBesoin d’un initiateur

Définit un protocole pour demander et obtenir des jetons de Définit un protocole pour demander et obtenir des jetons de sécuritésécurité

Les jetons sont destinés à tout type d’usage comme la sécurisation Les jetons sont destinés à tout type d’usage comme la sécurisation d’une séquence de message, et pas uniquement à l’authentification d’une séquence de message, et pas uniquement à l’authentification

Définit différents modèlesDéfinit différents modèles

Page 25: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Obtention d’un jetonObtention d’un jeton

Demande d’un jeton de sécurité (Demande d’un jeton de sécurité (wsse:ReqIssuewsse:ReqIssue))

Envoi d’un message Envoi d’un message Request Security TokenRequest Security Token (RST) au STS (RST) au STSD’ordinaire signé avec un jeton en qui l’émetteur de jeton fait D’ordinaire signé avec un jeton en qui l’émetteur de jeton fait confianceconfiance

<s:Envelope> … <s:Body wsu:Id='request' > <wst:RequestSecurityToken xmlns:wst=‘...’ > <wst:TokenType> http://www.docs.oasis-open.org/wss/2004/XX/oasis-2004XX-wss-saml-token-profile- 1.0#SAMLAssertion-1.1 </wst:TokenType> <wst:RequestType> http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue </wst:RequestType> </wst:RequestSecurityToken> </s:Body></s:Envelope> Demande d’un nouveau jetonDemande d’un nouveau jetonType de jeton demandéType de jeton demandé

Page 26: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Obtention d’un jetonObtention d’un jetonMessage Message Request Security TokenRequest Security Token Response (RSTR) Response (RSTR) retourné par le retourné par le STSSTS

Contient le jeton demandé et une preuve de possession (optionnelle)Contient le jeton demandé et une preuve de possession (optionnelle)Le jeton comprend une clé que le demandeur peut utiliser pour prouver qu’il Le jeton comprend une clé que le demandeur peut utiliser pour prouver qu’il est autorisé à utiliser le jeton émisest autorisé à utiliser le jeton émis

Support natif par WSE de ces opérationsSupport natif par WSE de ces opérationsMicrosoft.Web.Services2.SecurityMicrosoft.Web.Services2.SecuritySupport également de la création d’un STS personnaliséSupport également de la création d’un STS personnalisé

<s:Envelope> … <s:Body wsu:Id='response' > <wst:RequestSecurityTokenResponse> <wst:RequestedSecurityToken> <saml:Assertion xmlns:saml='...' > … </saml:Assertion> </wst:RequestedSecurityToken> <wst:RequestedProofToken> <xe:EncryptedKey Id='Sym' > … </xe:EncryptedKey> </wst:RequestedProofToken> </wst:RequestSecurityTokenResponse> </s:Body></s:Envelope>

Jeton de sécurité demandéJeton de sécurité demandéPreuve de possessionPreuve de possession

Page 27: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Autres modèles proposésAutres modèles proposésÉchange d’un jeton de sécuritéÉchange d’un jeton de sécurité ((wsse:Reqwsse:ReqExchange)Exchange)

Définit comment échanger un jeton pour un autreDéfinit comment échanger un jeton pour un autre

11

33

AABB

44

CC

22

1. Émission à destination 1. Émission à destination du service C d’un message du service C d’un message signé avec un jeton signé avec un jeton UsernameUsername

2. Demande d’échange du jeton 2. Demande d’échange du jeton UsernameUsername au service de mappage A au service de mappage A (STS)(STS)(utilise (utilise wsse:Reqwsse:ReqExchange)Exchange)

3. Réponse du service de mappage A 3. Réponse du service de mappage A avec le jeton X.509 associé au jeton avec le jeton X.509 associé au jeton UsernameUsername

4. Transfert au service C par le routeur 4. Transfert au service C par le routeur B du message signé avec le certificat B du message signé avec le certificat X.509X.509

T# Jeton de sécuritéJeton de sécurité

T1

T1

T2

T2

Page 28: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Autres modèles proposésAutres modèles proposésValidation d’un jeton de sécurité Validation d’un jeton de sécurité ((wsse:ReqValidatewsse:ReqValidate))

Définit comment vérifier des jetons et des Définit comment vérifier des jetons et des signatures à l’aide d’un STSsignatures à l’aide d’un STS

11

22 33

AA

BB

1. Émission à destination 1. Émission à destination du service B d’un message du service B d’un message avec un jeton de sécuritéavec un jeton de sécurité

2. Envoi par le service B du 2. Envoi par le service B du jeton au service de jeton au service de validation A (utilise validation A (utilise wsse:ReqValidatewsse:ReqValidate))

3. Vérification par le 3. Vérification par le service de validation que service de validation que le jeton est suffisantle jeton est suffisant

T# Jeton de sécuritéJeton de sécurité

T#

T# T#?

Page 29: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Topologies de confianceTopologies de confianceDifférentes topologies vis-à-vis de l’émission de jetonsDifférentes topologies vis-à-vis de l’émission de jetons

Le client obtient un jeton depuis une source bien connue, le service Le client obtient un jeton depuis une source bien connue, le service obtient un jeton pour le client, etc.obtient un jeton pour le client, etc.

Mise en œuvre au travers des protocoles d’authentification Mise en œuvre au travers des protocoles d’authentification utilisant les technologies modernes de chiffrement utilisant les technologies modernes de chiffrement (asymétrique et symétrique)(asymétrique et symétrique)

Confiance directeConfiance directe

Périmètre de Périmètre de confianceconfiance

Périmètre de Périmètre de confianceconfianceAA

BB

1. Demande d’un jeton au STS A 1. Demande d’un jeton au STS A (utilise (utilise wsse:ReqIssuewsse:ReqIssue), jeton dans ), jeton dans la réponse la réponse wsse:RequestSecurityTokenRespowsse:RequestSecurityTokenResponsense

11

22

2. Émission d’un message à 2. Émission d’un message à destination du service B avec le destination du service B avec le jetonjeton

T#

P#

Jeton de sécuritéJeton de sécurité

Preuve de possessionPreuve de possession

T1

P1

T1

C

Page 30: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Topologies de confianceTopologies de confiance

Obtention d’un Obtention d’un jeton d’identitéjeton d’identitéObtention d’un Obtention d’un jeton d’identitéjeton d’identité

Confiance via « courtier »Confiance via « courtier »Le client et le service peuvent faire chacun confiance à un Le client et le service peuvent faire chacun confiance à un STS ce qui évite d’avoir à gérer une confiance directeSTS ce qui évite d’avoir à gérer une confiance directe

Obtention d’un Obtention d’un jeton d’accèsjeton d’accès

Obtention d’un Obtention d’un jeton d’accèsjeton d’accès

AA BB

1122

33

C

T#

P#

Jeton de sécuritéJeton de sécurité

Preuve de possessionPreuve de possession

T2

P2

T1

T1

P1

T2

Page 31: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Topologies de confianceTopologies de confiance

Obtention d’un Obtention d’un jeton d’identitéjeton d’identitéObtention d’un Obtention d’un jeton d’identitéjeton d’identité

Confiance indirecteConfiance indirecteC fait confiance à B qui se porte garant de A qui répond du clientC fait confiance à B qui se porte garant de A qui répond du client

CCAA

BB

Directe - Échange d’une Directe - Échange d’une clé symétrique ou d’un clé symétrique ou d’un

certificatcertificat

Directe - Échange d’une Directe - Échange d’une clé symétrique ou d’un clé symétrique ou d’un

certificatcertificat

Directe - Échange d’une Directe - Échange d’une clé symétrique ou d’un clé symétrique ou d’un

certificatcertificat

Directe - Échange d’une Directe - Échange d’une clé symétrique ou d’un clé symétrique ou d’un

certificatcertificat

Indirecte – B garant de A Indirecte – B garant de A et des identités de Bet des identités de B

Indirecte – B garant de A Indirecte – B garant de A et des identités de Bet des identités de B

……RécursivitéRécursivité……RécursivitéRécursivité

11

22

T1

P1

T#

P#

Jeton de sécuritéJeton de sécurité

Preuve de possessionPreuve de possession

Page 32: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Topologies de confianceTopologies de confiance

DélégationDélégation

11 22

33

44

55

Page 33: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Modèle de fédération piloté par les méta Modèle de fédération piloté par les méta donnéesdonnées

Service d’identitéService d’identité

Services de Services de pseudonymes et pseudonymes et

d’attributsd’attributs

Service CibleService Cible

Politique d’accès

Service de jetons de Service de jetons de sécuritésécurité(le service de contrôle (le service de contrôle d’accès fournit les jetons d’accès fournit les jetons de permission)de permission)

Les services comprennent des jetons spécifiques, les services Les services comprennent des jetons spécifiques, les services de jetons de sécurité traduisent les jetons (de ce que le de jetons de sécurité traduisent les jetons (de ce que le principalprincipal possède à ce que le service a besoin) et WS-* fournit possède à ce que le service a besoin) et WS-* fournit une pile standard et l’enveloppeune pile standard et l’enveloppe

Politique de fédération

T1 T1

T2

T2

C

P1

P2

Page 34: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-SecureConversationWS-SecureConversation

Les nœuds doivent souvent échanger plus d’un messageLes nœuds doivent souvent échanger plus d’un message

Une conversation implique plusieurs échanges entre un client Une conversation implique plusieurs échanges entre un client et un service Webet un service Web

WS-Security WS-Security fournit des mécanismes de sécurité vis-à-vis de fournit des mécanismes de sécurité vis-à-vis de messages uniquesmessages uniques

L’utilisation de clés asymétriques est lente pour de multiples L’utilisation de clés asymétriques est lente pour de multiples messages messages

Spécifier des clés symétriques pour chaque message est lourd, Spécifier des clés symétriques pour chaque message est lourd, verbeux, et inefficaceverbeux, et inefficace

Impact sur la taille des messages et les performancesImpact sur la taille des messages et les performances

WS-SecureConversationWS-SecureConversation définit les mécanismes pour adresser définit les mécanismes pour adresser celacela

« « Web Services Secure Conversation LanguageWeb Services Secure Conversation Language »  » Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, OpenNetwork, PingId, Reactivity, RSA, Verisign, Février 2005OpenNetwork, PingId, Reactivity, RSA, Verisign, Février 2005

http://msdn.microsoft.com/ws/2005/02/ws-secure-conversationhttp://msdn.microsoft.com/ws/2005/02/ws-secure-conversation

Page 35: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-SecureConversationWS-SecureConversationÉtablit un contexte de sécurité partagé ou Établit un contexte de sécurité partagé ou Security Context Security Context TokenToken (SCT) (SCT)

Beaucoup plus performant pour de multiples appels Beaucoup plus performant pour de multiples appels

Le contexte contient les clés/secrets et d’autre informationLe contexte contient les clés/secrets et d’autre information

Peut être sans étatPeut être sans état

L’état est embarqué dans le jeton de sécuritéL’état est embarqué dans le jeton de sécurité

Le contexte est établi à l’aide de Le contexte est établi à l’aide de WS-TrustWS-TrustDéfinit un profil distinct d’émission, de renouvellement et Définit un profil distinct d’émission, de renouvellement et d’annulationd’annulation

<s:Envelope xmlns:s='http://www.w3.org/2003/05/soap-envelope' > <s:Header> <ws:Security s:mustUnderstand='true' > <wsc:SecurityContextToken> <wsc:Identifier> uuid:652d2aaa-4857-4d8c-865c-f9549e5806f0 </wsc:Identifier> </wsc:SecurityContextToken> </ws:Security> </s:Header> <s:Body wsu:Id='request'> … </s:Body></s:Envelope>

Page 36: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Créer des conversations sécuriséesCréer des conversations sécurisées

Dans WSE, ce jeton « léger » prend la place d’un jeton exigeant Dans WSE, ce jeton « léger » prend la place d’un jeton exigeant un traitement plus intensifun traitement plus intensif

Microsoft.Web.Services2.SecurityMicrosoft.Web.Services2.Security

Le STS peut être localisé au niveau du service ou être un point Le STS peut être localisé au niveau du service ou être un point de terminaison distinctde terminaison distinct

Les services peuvent émettre leurs propres Les services peuvent émettre leurs propres SCTsSCTs

Plus besoin de déployer un émetteur de Plus besoin de déployer un émetteur de SCTsSCTs

Élément de configuration à activerÉlément de configuration à activer<autoIssueSCT enabled=true />

Demande d‘unDemande d‘un SCT SCT

ClientClientClientClientService Web Service Web

et STSet STSService Web Service Web

et STSet STSSCT SCT émis vers le émis vers le clientclient

SCT

Séries de messages signés Séries de messages signés avecavec le SCT le SCT émisémis

SCT

Page 37: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Dérivation de clésDérivation de clés

L’échange de clefs et leur réutilisations amène des L’échange de clefs et leur réutilisations amène des vulnérabilités en termes de sécuritévulnérabilités en termes de sécurité

Le degré d’aléatoire (entropie) n’est pas connu des deux partiesLe degré d’aléatoire (entropie) n’est pas connu des deux parties

Les clés sont utilisées sur une période prolongée et/ou sur des Les clés sont utilisées sur une période prolongée et/ou sur des données similairesdonnées similaires

Il est plus sûr d’échanger un secret et de dériver des clés sur Il est plus sûr d’échanger un secret et de dériver des clés sur cette basecette base

DerivedKeyDerivedKeyDéfinit l’utilisation des clés dérivéesDéfinit l’utilisation des clés dérivées

Autorise la dérivation de multiples clés sur la base de la Autorise la dérivation de multiples clés sur la base de la combinaison d’un secret initial, de combinaison d’un secret initial, de noncesnonces et de libellés au cours du et de libellés au cours du tempstemps

DerivedKeyDerivedKey sur la base d’un SCT sur la base d’un SCTUtilisation des jetons clé dérivéeUtilisation des jetons clé dérivée

Référence un secret (ici le SCT qui implique une cible)Référence un secret (ici le SCT qui implique une cible)

Il est recommandé de générer des Il est recommandé de générer des noncesnonces pour chaque pour chaque messagemessage

Page 38: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Dérivation de clésDérivation de clés

SCT

DK1 DK2

…<wss:Security> <wsc:SecurityContextToken wsu:Id='Session' > <wsc:Identifier> uuid:55281202-fdc8-460f-b154-745ab6029391 </wsc:Identifier> </wsc:SecurityContextToken> <wsc:DerivedKeyToken wsu:Id='DKT1' > <wss:SecurityTokenReference> <wss:Reference URI='#Session' ValueType='http://schemas.xmlsoap.org/ws/2004/04/security/sc/sct' /> </wss:SecurityTokenReference> <wsc:Length>16</wsc:Length> <wsc:Nonce>KMkRDInROAJQcLcTjyxliw==</wsc:Nonce> </wsc:DerivedKeyToken> …</wse:Security>…

Security Context TokenSecurity Context Token

Jeton Jeton DerivedKeyDerivedKey

DK

Page 39: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-PolicyWS-PolicyAu delà de ce que WSDL fournit, quoi d’autre est nécessaire Au delà de ce que WSDL fournit, quoi d’autre est nécessaire pour décrire un service Web pour décrire un service Web ??

Exigences de sécurité, Garantie de transmission fiable de messages, Exigences de sécurité, Garantie de transmission fiable de messages, Version du protocole, Etc.Version du protocole, Etc.Ces autres attributs d'un service peuvent être décrits avecCes autres attributs d'un service peuvent être décrits avec WS- WS-PolicyPolicy

« « Web Services Policy FrameworkWeb Services Policy Framework »»BEA Systems, IBM, Microsoft, SAP, Sonic Software, BEA Systems, IBM, Microsoft, SAP, Sonic Software, VeriSignVeriSign, , Septembre 2004Septembre 2004http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-policy.http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-policy.aspasp Langage basé sur XML pour la description des exigences d’un Langage basé sur XML pour la description des exigences d’un serviceservice

Une politique peut être appliquée côté émission ou réceptionUne politique peut être appliquée côté émission ou réceptionRéduit la quantité de code à écrireRéduit la quantité de code à écrire

Un fichier de politique contient des politiques et des mappagesUn fichier de politique contient des politiques et des mappagesWSE n’offre pas de support de WSE n’offre pas de support de WS-PolicyAttachmentWS-PolicyAttachment aujourd’hui aujourd’hui Une politique est mappée sur un message particulier à l’exécutionUne politique est mappée sur un message particulier à l’exécution

Page 40: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

WS-SecurityPolicyWS-SecurityPolicy

« « Web Services Security Policy LanguageWeb Services Security Policy Language » »

IBM, Microsoft, RSA, IBM, Microsoft, RSA, VeriSignVeriSign, Décembre 2002, Décembre 2002

http://msdn.microsoft.com/ws/2002/12/ws-security-policyhttp://msdn.microsoft.com/ws/2002/12/ws-security-policy

Définit un ensemble d'assertions pour l’expression d’exigences Définit un ensemble d'assertions pour l’expression d’exigences relatives à relatives à WS-SecurityWS-Security

Exigence d’intégrité Exigence d’intégrité <Integrity><Integrity>

Exigence de confidentialité Exigence de confidentialité <Confidentiality><Confidentiality>

Exigence en termes de jeton de sécurité Exigence en termes de jeton de sécurité <<SecurityTokenSecurityToken>>

Peut être intégrée dans les deux autres Peut être intégrée dans les deux autres

Positionnées via le Positionnées via le Security Settings WizardSecurity Settings Wizard

Page 41: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Fichier de politiqueFichier de politique<?xml version="1.0" encoding="utf-8"?> <policyDocument xmlns="http://.../Policy"> <mappings xmlns:wse="http://.../Policy"> <defaultEndpoint> <defaultOperation> <request policy="#signed-body-x509" /> <response policy="" /> </defaultOperation> </defaultEndpoint> </mappings> <policies xmlns:wsu="http://...wssecurity-utility-1.0.xsd" xmlns:wsp="http://.../policy"

xmlns:wssp="http://.../secext" xmlns:wse="http://.../Policy" xmlns:wsse="http://...wssecurity-secext-1.0.xsd" xmlns:wsa="http://.../addressing">

<wsp:Policy wsu:Id="signed-body-x509"> <wsse:Integrity wsp:Usage="wsp:Required" > <TokenInfo> <SecurityToken> <TokenType>X509v3</TokenType> </SecurityToken> </TokenInfo> <MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part"> wsp:Body() </MessageParts> </wsse:Integrity> </wsp:Policy></policies></policyDocument>

PolitiquePolitique

Page 42: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Mise en œuvre d’une conversation sécurisée via Mise en œuvre d’une conversation sécurisée via l’expression de politiques l’expression de politiques

Page 43: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Fonctionnalités additionnelles de WSEFonctionnalités additionnelles de WSE

Éditeur de configuration autonomeÉditeur de configuration autonome

X.509 X.509 Certificate WizardCertificate Wizard pour la gestion des certificats pour la gestion des certificats

De très nombreux exemples de mise en œuvreDe très nombreux exemples de mise en œuvre

Page 44: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

En route vers IndigoEn route vers Indigo

WSE constitue la première implémentation Microsoft des WSE constitue la première implémentation Microsoft des spécifications WS-*spécifications WS-*

Indigo, composante de WinFX offrira une couverture complète Indigo, composante de WinFX offrira une couverture complète de la pile WS-*de la pile WS-*

Framework unifié pour la conception d’applications orientées Framework unifié pour la conception d’applications orientées service au sein de la plate-forme Windowsservice au sein de la plate-forme Windows

« « Introducing Indigo: An Early LookIntroducing Indigo: An Early Look » »

http://msdn.microsoft.com/library/en-us/dnlong/html/http://msdn.microsoft.com/library/en-us/dnlong/html/introindigov1-0.aspintroindigov1-0.asp

Composante de la nouvelle interface de programmation Composante de la nouvelle interface de programmation WinFXWinFX introduite par Windows « introduite par Windows « LonghornLonghorn » »

http://msdn.microsoft.com/Longhorn/understanding/pillars/indigohttp://msdn.microsoft.com/Longhorn/understanding/pillars/indigo

Microsoft Pre-Release Software Code Named “Avalon” and Microsoft Pre-Release Software Code Named “Avalon” and “Indigo” Beta1 RC“Indigo” Beta1 RC

http://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?familyid=b789bc8d-4f25-4823-b6aa-familyid=b789bc8d-4f25-4823-b6aa-c5edf432d0c1&displaylang=en c5edf432d0c1&displaylang=en

Page 45: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Résumé de la sessionRésumé de la session

WSE offre dès aujourd’hui de nombreux services de sécurité WSE offre dès aujourd’hui de nombreux services de sécurité avancés avec un haut niveau d’abstractionavancés avec un haut niveau d’abstraction

AuthentificationAuthentification

Jetons de sécurité : Jetons de sécurité : Microsoft.Web.Services2.Security.SecurityTokenMicrosoft.Web.Services2.Security.SecurityToken

Couple utilisateur/mot de passe : Couple utilisateur/mot de passe : UsernameTokenUsernameToken

Jetons binaires : Jetons binaires : BinarySecurityTokenBinarySecurityToken

Certificat X509 : X509SecurityTokenCertificat X509 : X509SecurityToken

Jeton Jeton KerberosKerberos : : KerberoKerberossTokenToken, , KerberoKerberossTokenToken22

SAML : Microsoft.Web.Services2.Security.SAMLSAML : Microsoft.Web.Services2.Security.SAML

Signature des messagesSignature des messages

XML Signature : XML Signature : Microsoft.Web.Services2.Security.MessageSignatureMicrosoft.Web.Services2.Security.MessageSignature

Chiffrement des messagesChiffrement des messages

XML XML EncryptionEncryption : Microsoft.Web.Services2.Security.Cryptography : Microsoft.Web.Services2.Security.Cryptography

Gestion et définition de relation de confiance entre entitésGestion et définition de relation de confiance entre entités

WS-Trust : Microsoft.Web.Services2.SecurityWS-Trust : Microsoft.Web.Services2.Security

Contexte de sécurité entre deux services pour des échanges de Contexte de sécurité entre deux services pour des échanges de plusieurs messages dans ce même contexteplusieurs messages dans ce même contexte

WS-SecureConversationWS-SecureConversation : Microsoft.Web.Services2.Security : Microsoft.Web.Services2.Security

Page 46: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Pour plus d’informationsPour plus d’informationsMSDN Web Services Developer CenterMSDN Web Services Developer Center

http://msdn.microsoft.com/webserviceshttp://msdn.microsoft.com/webservices« « Web Services Enhancements (WSE)Web Services Enhancements (WSE) » »

http://msdn.microsoft.com/webservices/building/wse/default.aspxhttp://msdn.microsoft.com/webservices/building/wse/default.aspx « « WS-Security Drilldown in WSE 2.0WS-Security Drilldown in WSE 2.0 » »

http://msdn.microsoft.com/library/en-us/dnwse/html/wssecdrill.asphttp://msdn.microsoft.com/library/en-us/dnwse/html/wssecdrill.asp « « Securing the Username Token with Web Services Enhancements Securing the Username Token with Web Services Enhancements 2.02.0 » »

http://msdn.microsoft.com/library/en-us/dnwse/html/http://msdn.microsoft.com/library/en-us/dnwse/html/securusernametoken.asp securusernametoken.asp

« « Managing Security Context Tokens in a Web FarmManaging Security Context Tokens in a Web Farm  »»

http://msdn.microsoft.com/library/en-us/dnwebsrv/html/sctinfarm.asphttp://msdn.microsoft.com/library/en-us/dnwebsrv/html/sctinfarm.asp « « Using Role-Based Security with Web Services Enhancements Using Role-Based Security with Web Services Enhancements 2.02.0 » »

http://msdn.microsoft.com/library/en-us/dnwse/html/http://msdn.microsoft.com/library/en-us/dnwse/html/wserolebasedsec.aspwserolebasedsec.asp

« « Web Service Enhancements 2.0 Support for WS-PolicyWeb Service Enhancements 2.0 Support for WS-Policy » »http://msdn.microsoft.com/library/en-us/dnwse/html/wse2wspolicy.asphttp://msdn.microsoft.com/library/en-us/dnwse/html/wse2wspolicy.asp

NewsgroupsNewsgroupsmicrosoft.public.framework.webservicesmicrosoft.public.framework.webservicesmicrosoft.public.framework.webservices.enhancementsmicrosoft.public.framework.webservices.enhancements

Page 47: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Pour plus d’informationsPour plus d’informations

« « Web Services Security Specifications Index PageWeb Services Security Specifications Index Page » »http://msdn.microsoft.com/library/en-us/dnglobspec/html/http://msdn.microsoft.com/library/en-us/dnglobspec/html/wssecurspecindex.aspwssecurspecindex.asp

« « Web Services Protocol WorkshopsWeb Services Protocol Workshops » »http://msdn.microsoft.com/webservices/community/workshops/http://msdn.microsoft.com/webservices/community/workshops/default.aspxdefault.aspx

Page 48: Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3

Microsoft FranceMicrosoft France18, avenue du Québec18, avenue du Québec

91 957 Courtaboeuf Cedex91 957 Courtaboeuf Cedex

www.microsoft.com/france

0 825 827 8290 825 827 829

[email protected]@microsoft.com