Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

1 Mød Microsoft – for udviklere & arkitekter WSE 2.0 Carsten Juel Andersen Captator – de danske.NET eksperter

Lignende præsentationer


Præsentationer af emnet: "1 Mød Microsoft – for udviklere & arkitekter WSE 2.0 Carsten Juel Andersen Captator – de danske.NET eksperter"— Præsentationens transcript:

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.


Download ppt "1 Mød Microsoft – for udviklere & arkitekter WSE 2.0 Carsten Juel Andersen Captator – de danske.NET eksperter"

Lignende præsentationer


Annoncer fra Google