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

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
GSAK – helt fra start Hvad er GSAK ? Download og installation GSAK
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Introduktion til ASP.NET 2 Michell Cronberg Microsoft MVP, MCAD TechTalks hos Microsoft.
Drupal[.org] Open Source CMS 6/
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2.
SMALL BUSINESS er BIG BUSINESS Tips og Tricks til Small Business Server Rico Raja marts 2006.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
Student Application Manager Lars Ole Nielsen, IT Arkitekt.
Communication & Design ODEUM e-Plan Landinspektør Martin Høgh Urban Planning and Transport.
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
SMALL BUSINESS er BIG BUSINESS ISA Workshop Rico Raja, Technology Specialist Brian Thumann Madsen, Senior Executive Consultant.
Web Services Protokoller og Arkitektur
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
Projektledelse IT-projektledelse (ITP) Projektledelse og Produktion af Digitalt Indhold (DPI) Projektledelse IT-projektledelse (ITP) Projektledelse og.
Forside Titel Navn, sted eller begivenhed, dato. CHALLENGES FOR THE BANKING SECTOR - IN THE AFTERMATH OF THE CRISIS Louise C. Mogensen Deputy Chief Executive.
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Problemer med at bruge tympanometri? Slagelse og Middelfart okt.-nov
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
CodeIgniter Database Brugerinput Form Validation 20101JFH.

Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 ServerServer.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 KlientKlient.
FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.
Projektledelse IT-projektledelse (ITP) Projektledelse IT-projektledelse (ITP) Lektion september 2004 Peter Olaf Looms.
Visual Studio Team System Work Item tracking med Microsoft templates.
Selected Partner Network briefing – d. 17. september 2008 How to Sell? Licensiering Jon Meldgaard Hansen - LMM, SMS&P How to Sell – september 2008.
Technology Briefing. Hvorfor snakker vi drift? Meget fokus fra Microsoft på effektiv drift Dynamic Systems Initiative MS Operations Framework Meget fokus.
WCF service Hostet på website x. Opret tomt web applikations projekt.
e-Tinglysning WebService Arkitektur
Kursus om borger.dk og brugen af digital signatur
Dag 2 varekatalog Broadcast: session-id (samme session-id hver gang) Formiddagens arbejde:
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Mød Microsoft – for udviklere & arkitekter Visual Studio, Express og Team System Niels Hilmar Madsen Microsoft
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Programering af mobile enheder Windows Phone Storage.
WebservicesWebservices Henrik Westergaard Hansen
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Grunde til at jeg elsker dig
Fundamentale datastrukturer
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
FYSISK DESIGN 1. Hvem er vi Oskar, Troels og David.
Web Services, Microsoft.NET og fremtiden Jørgen Thyme Softwarearkitekt.NET Developer & Strategy Group Microsoft Danmark.
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
ASP.NET – web site publish. ASP.NET – site-version.
Data access i Silverlight 2.0
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
Web services SOA, SOAP og WSDL. Disposition Inledning / Definition SOAP Standard SOAP Beskeder WSDL.
Arbejdsmarkedsportalen
Præsentationens transcript:

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

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 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 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 Web Services Arkitektur Design retningslinier  Kombinerbare (Composability)  Modulært  Forbundne (Federated)  Pålideligt  Decentralt og autonomt  Transport uafhængigt

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 <wssec:BinarySecurityToken ValueType="wssec:X509v3" EncodingType="wssec:Base64Binary"> dWJzY3JpYmVyLVBlc......eFw0wMTEwMTAwMD W 3MPH WS-Addressing WS-Security WS-Reliable Messaging

7 WSE arkitekturen KlientServer Output filtre Input filtre Input filtre Output filtre  WSE funktionaliteter er implementeret som input og output filtre

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 Afsendelse af message Kode WSE runtime SOAP Context SOAP Custom filtre Routing Security DIME RequestSoapContext

10 Modtagelse af message Kode WSE runtime SOAP Context SOAP Custom filtre Routing Security DIME ResponseSoapContext

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 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 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 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 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 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 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... cja PaSSword KwIi+XJqpiintiYCzqPi2A== T08: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... <securityTokenManager type="WeblogService.WeblogAuthManager, WeblogService" xmlns:wsse=" 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 WS Security SimpelAuthentication kan downloades fra

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 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 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 WS Security Signering og kryptering kan downloades fra

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 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 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 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 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 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 WS Attachments Up- og download af billeder kan downloades fra

32 Evolve and Extend Secure, Reliable, Transacted Fundamentals Web Services arkitektur Tidslinie 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 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 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 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 0x4F dog.gif 0x4F cat.jpg 0x4F71 ClientTs afgør upload ServerTs afgør download De enkelte tabeller og dbo.SyncHistory opdateres MSDE database

36 Ressourcer  Links til yderligere information .NET nyheder, artikler, information  Msdn Webservices homepage  Msdn WSE 2.0 artikler og downloads building/wse/ building/wse/  Flere events?

37 ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.