Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afRandi Lorentzen Redigeret for ca. et år siden
1
1 Mød Microsoft – for udviklere & arkitekter WSE 2.0 Carsten Juel Andersen Captator – de danske.NET eksperter juel@captator.dk http://www.captator.dk
2
2 Agenda WSE overblik MS’s implementation af WS-* standarderne WSE arkitektur De enkelte WS-* standarder WSE drilldown WS Security WS Attachments Captator WSE 2.0 eksempel
3
3 Web Services Arkitektur Motivation for WSE Fundamentale standarder - WSDL & SOAP Sikkerhed kun via f.eks. HTTP/S, Basic-Auth. Ingen transaktioner på tværs af web service kald IBM og Microsoft (med flere) har arbejdet på udvidelserne implementeret i WSE Resultat: En række selvstændige specs, der kan bruges individuelt eller sammen Er udvidelser til de fundamentale standarder Kan tages i brug en af gangen, da de alle er bygget op efter et ”kompositions-princip”
4
4 WS-* specifikationer XML Web Services Sikker, pålidelig og transaktionel BPEL4WS Security Reliable Messaging Transactions XSD, WSDL, UDDI, Policy XML, SOAP, Addressing HTTP, HTTPS, SMTP,... Service Composition Composable Service Assurances Description Messaging Transport MetadataExchange
5
5 Web Services Arkitektur Design retningslinier Kombinerbare (Composability) Modulært Forbundne (Federated) Pålideligt Decentralt og autonomt Transport uafhængigt
6
6 WS-* og Soap headers Kombinerbare (Composability) Hver WS standard definerer egne tags i SOAP header Hver standard er som sådan uafhængig af de øvrige http://business456.com/User12 http://fabrikam123.com/Traffic http://fabrikam123.com/Traffic/Status <wssec:BinarySecurityToken ValueType="wssec:X509v3" EncodingType="wssec:Base64Binary"> dWJzY3JpYmVyLVBlc......eFw0wMTEwMTAwMD http://fabrikam123.com/seq1234 10 520W 3MPH WS-Addressing WS-Security WS-Reliable Messaging
7
7 WSE arkitekturen KlientServer Output filtre Input filtre Input filtre Output filtre WSE funktionaliteter er implementeret som input og output filtre
8
8 WSE arkitekturen SoapContext-objekterne .Addressing .Attachments .Referrals .Security … Fyldes af brugerens kode, når der sendes en message Læses af brugerens kode, når der modtages en message
9
9 Afsendelse af message Kode WSE runtime SOAP Context SOAP Custom filtre Routing Security DIME RequestSoapContext
10
10 Modtagelse af message Kode WSE runtime SOAP Context SOAP Custom filtre Routing Security DIME ResponseSoapContext
11
11 WSE tools WseCertificate2.exe X509 certifikater WseConfigEditor2.exe Opdaterer app.config / web.config WseWsdl2.exe Proxy generator Visual Studio Plugin (a’ka WseConfigEditor.exe)
12
12 WS-Addressing WS Addressing Afkobler adresse informationer fra transportlaget og placerer dem i selve SOAP beskeden Så kan en kommunikation genoptages selvom forbindelsen afbrydes Muliggør at svar sendes til en anden end den oprindelige afsender af SOAP requested Routing af Web Service kald
13
13 WS-Addressing Routeren videresender den modtagne SOAP message udfra den specificerede referral cache-fil Skaber uafhængighed af hvilken maskine, der implementerer en given XML Web Service
14
14 WS-Policy Hvad forventer servicen af klienten WS-Policy og WS-PolicyAttachments muliggør beskrivelse af en vilkårlig politik, som servicen forventer kalderen overholder Eksempel wsse:Kerberosv5TGT wsse:X509v3
15
15 Sikkerhed i WSE 2.0 Bruger validering (Authentication) Understøtter gængse formater Integritet Hvem er afsenderen? Er beskeden nået uændret frem? Hemmligholdelse (Privacy) Kan beskeden aflyttes? Symmetrisk og asymmetrisk kryptografi XML
16
16 WS-Security WS-Security Signerede, krypterede security tokens Signering af del eller hele SOAP message - integritet Forsegle del af eller hele SOAP message - confidentiality WS-Security benytter Eksisterende sikkerhedsmodeller: Kerberos, X509 m.v.
17
17 WS Security SecurityToken Når man skal underbygge en ”påstand” benyttes SecurityToken En ”påstand” kan f.eks. være identiteten af kalderen SecurityToken UserNameToken BinarySecurityToken X509SecurityToken KerberosToken SecurityContextToken [CustomXMLBasedToken] [CustomBinaryToken] Klient SecurityToken Service SecurityTokenManager SecurityToken Opret objekt Udfra Username så uddrag password Er password i SecurityToken identisk med password fra SecurityTokenManger så gennemføres web service kaldet
18
18... cja PaSSword KwIi+XJqpiintiYCzqPi2A== 2004-10-06T08:37:52Z... WS Security SecurityToken Klienten opretter et SecurityToken Det resulterer i følgende SOAP Header using Microsoft.Web.Services2.Security.Tokens;... // Create the Username token UsernameToken token = new UsernameToken( "cja", "PaSSword", PasswordOption.SendPlainText ); // Create an instance of the web service proxy WeblogProxy proxy = new WeblogProxy(); // Add the token to the request context proxy.RequestSoapContext.Security.Tokens.Add(token); // Call the web service ConfirmedWeblogEntry confirmed = proxy.AddEntry(newEntry);...
19
19... <securityTokenManager type="WeblogService.WeblogAuthManager, WeblogService" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" qname="wsse:UsernameToken"/>... WS Security SecurityToken For custom validering, opret f.eks. egen SecurityTokenManager Skal konfigureres i web.config using Microsoft.Web.Services2.Security.Tokens; public class DummyAuthManager : UsernameTokenManager { protected override string AuthenticateToken(UsernameToken token) { // oversimplificeret check af username / password if (token.Username == "cja") return "PaSSword"; else return base.AuthenticateToken(token); }
20
20 WS Security SimpelAuthentication kan downloades fra http://www.captator.dk/?article=138
21
21 WS Security Authentication kun første skridt... Signering af SOAP messages Sikre at beskeden ikke er ændret undervejs Kryptering af SOAP messages Sikre at beskeden ikke kan aflyttes
22
22 WS Security Signering af SOAP messages using Microsoft.Web.Services2.Security.Tokens;... HelloWorldService2 proxy = new HelloWorldService2(); // Hent/opret KerberosToken string targetPrincipal = "host/captator-mover2"; // "host/" + new System.Uri(hws.Url).Host; KerberosToken token = new Tokens.KerberosToken(targetPrincipal); // Tilføj KerberosToken til SoapContext proxy.RequestSoapContext.Security.Tokens.Add(token); // Foretag Signering af SOAP Request Microsoft.Web.Services2.Security.MessageSignature sig = new Microsoft.Web.Services2.Security.MessageSignature(token); proxy.RequestSoapContext.Security.Elements.Add(sig); // Kald webservice... Følgende dele af soap signeres soap:Envelope/soap:Header/wsa:To soap:Envelope/soap:Header/wsa:Action soap:Envelope/soap:Header/wsa:MessageID soap:Envelope/soap:Header/wsa:From/wsa:Address soap:Envelope/soap:Header/wsu:Timestamp/wsu:Created soap:Envelope/soap:Header/wsu:Timestamp/wsu:Expires soap:Envelope/soap:Body Følgende dele af soap signeres soap:Envelope/soap:Header/wsa:To soap:Envelope/soap:Header/wsa:Action soap:Envelope/soap:Header/wsa:MessageID soap:Envelope/soap:Header/wsa:From/wsa:Address soap:Envelope/soap:Header/wsu:Timestamp/wsu:Created soap:Envelope/soap:Header/wsu:Timestamp/wsu:Expires soap:Envelope/soap:Body
23
23 WS Security Kryptering af SOAP Body using Microsoft.Web.Services2.Security.Tokens;... HelloWorldService2 proxy = new HelloWorldService2(); // Hent/Opret X509 token X509SecurityToken token = GetServerToken(); proxy.RequestSoapContext.Security.Tokens.Add(token); Microsoft.Web.Services2.Security.MessageSignature sig = new Microsoft.Web.Services2.Security.MessageSignature(token); proxy.RequestSoapContext.Security.Elements.Add(sig); // Kryptér SOAP body Microsoft.Web.Services2.Security.EncryptedData encrypted = new Microsoft.Web.Services2.Security.EncryptedData(token); proxy.RequestSoapContext.Security.Elements.Add(encrypted); // Kald webservice... Kun SOAP:body krypteres her. Man kan også eksplicit udpege dele af SOAP:Headeren, således de krypteres. Et godt bud kunne være en SecurityToken indeholdende username og password Kun SOAP:body krypteres her. Man kan også eksplicit udpege dele af SOAP:Headeren, således de krypteres. Et godt bud kunne være en SecurityToken indeholdende username og password
24
24 WS Security Signering og kryptering kan downloades fra http://www.captator.dk/?article=138
25
25 Øvrige Security standarder WS-Trust Benytter en Security Token Service (STS) STS er i sig selv en XML web service, der validerer en security token Muliggør at flere sikkerhedsteknologier kan ”samarbejde” WS Secure Conversation Etablering af krypteret SOAP forbindelse
26
26 Security WS Trust Mange mulige modeller for udstedelse af tokens Klient henter token fra kendt kilde Service henter token for klienten Etc… Klient Token udsteder ServiceKlientService Token udsteder2 Token udsteder1 Klient Token udsteder Service
27
27 Security WS Secure Conversation Fungerer a’la HTTPS hvad angår nøgler, således at flere på hinanden følgende request mellem samme klient og server kræver mindre processorkraft for at kryptere og dekryptere Client Service And Token Issuer Request for SCT SCT Issued to client Series of messages signed with issued SCT
28
28 WS-Attachments Direct Internet Message Encapsulation DIME er et Letvægts, binært message format Kan indpakke information (payload) af vilkårlig type og størrelse Understøtter streaming DIME indpakker en SOAP message og et antal attachments i en enkelt DIME message
29
29 Eksempel – WS-Attachment Up- og download af billeder Web Service metoder Public Class AttachmentService Inherits System.Web.Services.WebService _ Public Function UploadPicture(ByVal imageFilename As String) As String '... End Function _ Public Function GetPictureFilenames() As String() '... End Function _ Public Sub DownloadPicture(ByVal imageFilename As String) '... End Sub End Class Billedet sendes med som attachment fra klient til web service Billedet sendes med som attachment fra klient til web service Billedet sendes med som attachment fra web service til klient Billedet sendes med som attachment fra web service til klient Bemærk at attachments ikke umiddelbart fremgår af metodesignatur
30
30 Eksempel – WS-Attachment Up- og download af billeder Klient Web service Private Sub UploadPicture(ByVal imageFilename As String, _ ByVal imageStream As System.IO.Stream) Dim ws As New AttachmentsWS.AttachmentService Dim attachment As New Microsoft.Web.Services2.Attachments.Attachment( _ "image/gif", imageStream) ws.RequestSoapContext.Attachments.Add(attachment) ws.UploadPicture(imageFilename) End Sub _ Public Sub UploadPicture(ByVal imageFilename As String) ' Check om der er medsendt en attachment (se demo) Dim stream As System.IO.Stream = _ Microsoft.Web.Services2.RequestSoapContext.Current.Attachments(0).Stream Dim imageByteArr(CInt(stream.Length - 1)) As Byte stream.Read(imageByteArr, 0, CInt(stream.Length)) stream.Close() ' Brug det gemte imageByteArr (se demo) End Sub Opret attachment og tilføj denne til RequestSoapContext Opret attachment og tilføj denne til RequestSoapContext Åbn attachment fra RequestSoapContext og indlæs den i et bytearray (i dette eksempel) Åbn attachment fra RequestSoapContext og indlæs den i et bytearray (i dette eksempel)
31
31 WS Attachments Up- og download af billeder kan downloades fra http://www.captator.dk/?article=138
32
32 Evolve and Extend Secure, Reliable, Transacted Fundamentals Web Services arkitektur Tidslinie 200320002001200220042005 WS-ReliableMessaging Reliability WS-I formed Interoperability WS-I BP 1.0 Security Roadmap Whitepapers Reliable Messaging Roadmap SRT Web Services Whitepaper WS-Security WS-Trust Security WS-Security Addendum WS-Security Profile for Tokens WS-Security Addendum WS-Security Profile for Tokens WS-Federation WS-Federation Active Requestor Profile WS-Federation WS-Federation Active Requestor Profile WS-Security SOAP Message Security WS-Security Username Token Profile WS-Security X.509 Certificate Token Profile WS-Security SOAP Message Security WS-Security Username Token Profile WS-Security X.509 Certificate Token Profile WS-Security Kerberos Binding WS-Coordination WS-Transaction WS-Coordination WS-Transaction Transactions WS-AtomicTransaction WS-BusinessActivity SOAP 1.1 Messaging SOAP Messages with Attachments SOAP Messages with Attachments WS-Referral WS-Routing WS-Referral WS-Routing DIME WS-Attachments WS-Addressing SOAP 1.2 MTOM WS-Eventing WS-Policy 1.1 WS-PolicyAttachments 1.1 WS-PolicyAssertions 1.1 WS-Policy 1.1 WS-PolicyAttachments 1.1 WS-PolicyAssertions 1.1 WS-Policy WS-PolicyAttachments WS-PolicyAssertions WS-SecurityPolicy WS-Policy WS-PolicyAttachments WS-PolicyAssertions WS-SecurityPolicy Metadata UDDI 1.0 WSDL UDDI 2.0 WS-Inspection UDDI 3.0 WS-Discovery WS-MetadataExchange WS-Discovery WS-MetadataExchange Opdateret februar 2004
33
33 Eksempel fra Captator E-handelsportal Slutkunde med web-browser IIS Web Site & WSE 2.0 Web Services SQL Shop-administrator MSDE database Filer til data integration ERP system Data, applikation og komponenter PC
34
34 Eksempel fra Captator E-handelsportal Automatisk opdatering af Smart Client Login Token + userobjects Nyere version ? Fil-liste “App.exe + util.dll + img.jpg” Shop- administrator WSE MSDE database + Upgrade SQL Applikation + Database opdateres Client Side Server Side
35
35 Eksempel fra Captator E-handelsportal Data synkronisering (klient server) WSE dbo.SyncHistory Table ClientTs ServerTs Order 0x0034 0x0E92 Picture 0x0003 null dbo.Order Id Navn ServerTs 12 Hans 0x0E92 13 Bent 0x0E93 dbo.SyncHistory Table ClientTs ServerTs Order 0x0035 0x0E93 Picture 0x0006 0x4F71 IIS Bent Ordre dbo.Picture Id FilSti ServerTs 893 img.jpg 0x4F69 894 dog.gif 0x4F70 895 cat.jpg 0x4F71 ClientTs afgør upload ServerTs afgør download De enkelte tabeller og dbo.SyncHistory opdateres MSDE database
36
36 Ressourcer Links til yderligere information .NET nyheder, artikler, information... http://www.captator.dk http://www.captator.dk Msdn Webservices homepage http://msdn.microsoft.com/webservices/ Msdn WSE 2.0 artikler og downloads http://msdn.microsoft.com/webservices/ building/wse/ http://msdn.microsoft.com/webservices/ building/wse/ Flere events? http://www.microsoft.dk/msdn/events
37
37 ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.