200 likes | 318 Views
Programování v jazyku C # II. 12.kapitola. Obsah. Budoucnost webových služeb WSE 2.0 WS -Security. 2/20. XML w ebov é služby dnes. SOAP request. XML. SOAP response. XML. Server. Klient. Protokol SOAP je nezávislý na přenosové vrstvě
E N D
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 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
Klient Obchodní logika Expedice Sklad Billing XML Service Oriented Architecture XML XML XML XML XML XML XML „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 • Loosecoupling • 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 • 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