Programování v jazyku C# II. 12.kapitola
Obsah Budoucnost webových služeb WSE 2.0 WS-Security 2/20
XML webové služby dnes Server Klient SOAP request XML SOAP response XML Server Klient Protokol SOAP je nezávislý na přenosové vrstvě Posloupnost Request-Response je typická, ale nikoli jediná možná 3/20
Service Oriented Architecture Klient Obchodní logika Sklad XML XML XML XML Expedice XML XML XML XML Billing „Webové služby zítřka“ 4/20
Service Oriented Architecture SOA (Service Oriented Architecture) Architektura založená na předávání zpráv mezi autonomními službami SOAP, XML Loose coupling minimální závislosti mezi komponentami služba zveřejňuje datové rozhraní (WSDL) a nic jiného SOA je vize a také oblíbený buzzword části této vize ovšem začínají mít konkrétní podobu 5/20
Web Services Architecture WSA (Web Services Architecture) Obohacení webových služeb o vlastnosti potřebné pro SOA Bezpečnost Směrování zpráv Spolehlivé doručení zpráv Binární data Transakce Single sign-on Systémové politiky 6/20
Stav WS-* standardů (1) WS-Security WS-Trust WS-Addressing standard OASIS 03/2004 WS-Trust návrh 05/2004 WS-Addressing návrh 08/2004 WS-ReliableMessaging návrh 03/2004 BEA, IBM, Microsoft, TIBCO MTOM review končí 12/2004 7/20
Stav WS-* standardů (2) WS-Coordination WS-AtomicTransaction WS-BusinessActivity návrh 11/2004 BEA, IBM, Microsoft WS-Federation návrh 7/2003 IBM, Microsoft, VeriSign, BEA, RSA WS-Policy návrh 9/2004 8/20
WSE 2.0 WSE 2.0 (Web Services Enhancements) jmenný prostor Microsoft.Web.Services2 referenční implementace WS-* pro .NET WS-Security WS-SecurityPolicy WS-SecureConversation WS-Trust WS-Addressing WS-Policy WS-Referral (obsolete) DIME (obsolete) Indigo v Microsoft Windows „Longhorn“ bude kompatibilní s konečnou verzí WSE 9/20
Některé třídy WSE Třídy pro odesílání a příjem SOAP zpráv SoapSender SoapReceiver SoapClient SoapService Třídy pro práci se SOAP hlavičkou SoapContext SoapContext.Current SoapEnvelope AddressingHeaders Security 10/20
Architektura WSE Soap Extensions mustUnderstand=“1” povinné zpracování Filtry zpracovávají konkrétní část SOAP hlavičky SecurityInputFilter SecurityOutputFilter TraceInputFilter TraceOutputFilter ReferralInputFilter ReferralOutputFilter 11/20
Bezpečnost - základní pojmy Autentizace (Authentication) subjekt je opravdu tím, za koho se vydává Autorizace (Authorization) subjekty smí jednat pouze v rámci svých oprávnění Důvěrnost (Confidentiality) Data nejsou dostupná neautorizované třetí straně Integrita (Integrity) Data nemohou být změněna „po cestě“ Neodmítnutelnost odpovědnosti (Non-Repudiation) Subjekt nemůže popřít své akce 12/20
Bezpečnost – možnosti implementace POST /Service.asmx HTTP/1.1 Host: server Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://msdn.microsoft.cz/service..." <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001...> <soap:Header> … … <soap:Header/> <soap:Body> <JmenoZamestnance xmlns="http://msdn.mic..."> <IDZamestnance>int</IDZamestnance> </JmenoZamestnance> </soap:Body> </soap:Envelope> Protokol (HTTP) Hlavička SOAP Tělo SOAP 13/20
WS-Security Standard bezpečnosti pro XML webové služby Microsoft IBM VeriSign Použitelný již dnes! Rámec pro vložení existujících bezpečnostních prvků do SOAP hlavičky Šifrovací algoritmy PKI Kerberos XML Signature XML Encryption 14/20
WS-Security - autentizace potomci třídy SecurityToken <UsernameToken> Jméno Jméno/Heslo Jméno/hash hesla/nonce <BinaryToken> X509 Certificate Kerberos Ticket 15/20
WS-Security - autentizace SecurityToken má položku Principal typu IPrincipal Principal.Identity; Principal.IsInRole(); UsernameToken je ve výchozím nastavení integrovaný s Windows autentizací a se skupinami Windows domény Možnost vlastní definice rolí (skupin) 16/20
WS-Security - šifrování standard XML Encryption aplikovaný na SOAP <EncryptedData Id=‘odkaz na cast dokumentu’> šifrovaná data <KeyInfo> odkaz na použitý šifrovací klíč např. veřejný klíč certifikátu 17/20
WS-Security – digitální podpis standard XML Signature aplikovaný na SOAP <Signature> digitální podpis <KeyInfo> odkaz na použitý klíč <SignedInfo> odkaz na podepsanou část dokumentu 18/20
Závěr WS-Security je možné nasadit už dnes WSE je referenční implementace připravovaných standardů webových služeb pro .NET Windows „Longhorn“ Indigo bude mít kompletní podporu nových standardů webových služeb 19/20
Konec 20/20