(Web)Szolgáltatások (WS, WS-*)

Hasonló dokumentumok
Szolgáltatás technológiák (WS, WS-*) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szolgáltatás technológiák (WS, WS-*, REST) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Webszolgáltatások (WS)

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Osztott alkalmazások fejlesztési technológiái Áttekintés

Webszolgáltatások kommunikációs overhead-jének becslése

Objektum-orientált tervezés

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Web-szolgáltatás szabványok

Debreceni Egyetem Informatikai Kar. Szolgáltatás-orientált programozás az Oracle-ben

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Web-szolgáltatások: SOAP, WSDL

SOAP komponensek Delphiben

pilot példa SOA alkalmazásra április 29.

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

Kommunikáció. 3. előadás

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

JAVA webes alkalmazások

API tervezése mobil környezetbe. gyakorlat

Adatbázis rendszerek 7. előadás State of the art

A Java EE 5 plattform

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Párhuzamos és Grid rendszerek

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Osztott rendszerek (Distributed

Webszolgáltatás alapokon BPEL

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Modell alapú tesztelés mobil környezetben

S, mint secure. Nagy Attila Gábor Wildom Kft.

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

UNIX: folyamatok kommunikációja

Felhaszáló központú és föderatív azonosítási megoldások webalkalmazásokban. Szalai Ferenc Web Service Bricks

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Nagyvállalati SOA infrastruktúra (ESB, szolgáltatástárak)

Folyamatok rugalmas irányítása. FourCorm Kft.

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

webalkalmazások fejlesztése elosztott alapon

Informatikai Tesztek Katalógus

Mobil szolgáltatások és alkalmazások fejlesztése

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

Közösség, projektek, IDE

Mikor? Milyen alkalmazásnál?

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Bárányfelhő vagy viharfelhő? A felhő alapú megoldások biztonsági kérdései. Császár Rudolf Műszaki fejlesztési vezető Digital Kft.

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Komponens modellek. 3. Előadás (első fele)

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Non-stop hozzáférés az üzleti információkhoz bárhol, bármikor és bármilyen eszközzel

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Miért is transzformáljunk modelleket? Varró Dániel

Osztott Objektumarchitektúrák

Fábián Zoltán Hálózatok elmélet

Tarantella Secure Global Desktop Enterprise Edition

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Üzleti interoperabilitás. - elektronikus üzleti szolgáltatások - elektronikus kereskedelem - elektronikus közbeszerzés

Szalai Ferenc

Az Informatikai és Hírközlési Minisztérium ajánlása a közigazgatásban a hitelesítésszolgáltatók

applikációs protokollok

S04-2 Elosztott alkalmazások készítése

Elosztott rendszerek

Elektronikus levelek. Az informatikai biztonság alapjai II.

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Book Template Title. Author Last Name, Author First Name

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

A TANTÁRGY ADATLAPJA

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

IT szolgáltatás menedzsment bevezetés az IIER projektben

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

CMDB architektúra megjelenítése SAMU-val Rugalmas megoldás. ITSMF Bekk Nándor Magyar Telekom / IT szolgáltatás menedzsment központ

Azt írom alá, amit a képernyőn látok?

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

Átírás:

(Web)Szolgáltatások (WS, WS-*) Szolgáltatásintegráció 2014. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Elosztott rendszerek Elosztott rendszerek o Egy hálózaton lévő számítógépek Tipikus példa: Internet o Üzenet alapú kommunikáció Motiváció o Erőforrás megosztás o Skálázhatóság o Modularizáció o Együttműködés Követelmények o Kommunikációs réteg

XML webszolgáltatások Alkalmazások közötti adatcserére szolgáló protokollok és szabványok gyűjteménye Szabvány: XML alapúak o Strukturált szöveges állomány o Kötött formátum (séma) Nem csak nyílt Web-es környezetben Lazán csatolt alkalmazások Főbb fejlesztők o Apache, IBM, HP, SUN & Microsoft (.NET) o http://www.webservices.org/

Példák E-mail küldés Bemenet: levél adatai Válasz: nyugta Új alkalmazott felvétele Bemenet: személyes adatok Válasz: ID Vállalatirányítási rendszer elérése Bemenet: beszállítók lekérdezése Válasz: beszállítók listája, preferenciák Lekérdező műveletek Pl. időjárás előrejelzés, keresés, repülőjegy árának lekérdezése, Bemenet: intervallum, hely Válasz: csapadék, hőmérséklet, Infrastruktúra elérése Bemenet: váratlan események lekérdezése Válasz: riasztáslista Szenzorok lekérdezése Bemenet: épületrész állapota Válasz: hőmérséklet, páratartalom,

Megvalósítás Szolgáltatás leírások UDDI WSDL WSDL Kliens SOAP Szolgáltató

Web service stack Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Alacsony szintű protokollok URI, HTTP, FTP, etc. Hálózat

Web service stack Szolgáltatás publikálás Szolgáltatás leíró SOAP Kommunikáció Hálózat

Web service stack Szintakszis HOGYAN? (portok, műveletek, üzenetek) WSDL Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Hálózat

Web service stack regisztráció HOL? ( Arany oldalak / hirdetők) UDDI, WSIL Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Hálózat

SOAP Simple Object Access Protocol o 1.1 verzió: 2000 óta o Ma: leginkább 1.2 Általános kommunikációs protokoll XML Boríték Fejléc o Címzett/feladó o Formátum o Kiegészítő információk titkosítás, time-to-live, stb. Törzs http://www.w3schools.com/webservices/ws_soap_example.asp

MTOM Message Transmission Optimization Mechanism Bináris adatok átküldésének optimalizálása Különböző platformfüggő megoldások o Bináris adat külön elküldve hogyan kapcsoljuk össze? o XML-binary Optimized Packaging használata (MIME) Mi fölött küldjük át? o HTTP SOAP küldés specifikációja Hogyan használjuk ehhez a HTTP-t? SOAP node szinten megadva

Web Services Description Language Interfészdefiníció Kérdés-válasz párok leírása Port típusok megadása Generálható az osztály publikus metódusai alapján Kliens (proxy) generálásához szükséges Lekérdezhető szolgáltatás tárakból

Adattípusok leírása o Séma (XSD) hivatkozás Portok leírása WSDL o Összetartozó műveletek halmaza o Pl. ÁrfolyamLekérdezőPort Műveletek (operations) leírása o Pl. UtolsóHónapÁtlagosÁrfolyama Üzenetek (típusának) deklarálása o Pl. ÁrfolyamKérdés Binding o Konkrét protokollhoz kötés, leggyakrabban SOAP

WSDL struktúra Forrás: http://www.iks.inf.ethz.ch Pl. http://tomi.vanek.sk/index.php?page=wsdl-viewer http://www.soapui.org/

Példa o Google API Webszolgáltatás példák o http://www.mnb.hu/arfolyamok.asmx?wsdl Pl. Amazon Elastic Compute Cloud o Maga a cloud management is webszolgáltatás alapon történik o http://aws.amazon.com/ec2/ o https://s3.amazonaws.com/ec2-downloads/2013-02- 01.ec2.wsdl o Do NOT try to read or edit this file (SDK számtalan nyelvhez)

Webszolgáltatás példák 2 Publikus webszolgáltatások o http://www.webservicex.net/ws/wscatlist.aspx o http://www.service-repository.com/ o http://www.xmethods.net/ve2/directory.po o https://www.thedacs.com/

Gyakorlati kérdések Hibakezelés o SOAP Fault Technológiai kötések o Java (Apache CXF, JAX-WS) Metro stack o C# (.NET) (Windows Communication Framework) o PHP o COBOL o Python o R o Android kliens fejlesztés (pl. KSOAP2)

WS fejlesztés tipikus lépései Szolgáltatás interfészek, adatstruktúrák tervezése o WSDL, XSD Implementáció/integráció o Ezek alapján generálható a WSDL Kliens/szerver oldali csonkok előállítása o API hívással o XML konfiguráció alapján Futási időben (middleware) o SOAP üzenetek előállítása o SOAP boríték elküldése o SOAP üzenet transzformálása a szolgáltatás bemeneti formátumára

Webszolgáltatások vs RPC Adatmodell o Nem objektumorientált Adatátadás o Csak értékalapú (nem referencia) o Nagy adatmennyiségnél probléma Kommunikáció o Nincs köztes komponens QoS garanciákkal o Tűzfalproblémák könnyebben megoldhatóak Beszélgetések megvalósítása o Állapotmentes szerver

Modellezés: OMG: SoaML

WS-* Hogyan adjunk alkalmazás szint garanciákat az integrációra? o Ne függjön a hálózattól o Ne függjön az implementációtól o Az alkalmazás logika határozza meg Feladatok o Tranzakciókezelés o Session kezelés o Biztonság o Titkosítás o Szolgáltatások kombinálása o Szolgáltatások szemantikája o Loggolás

Szabványok

Szabványok Magas szintű biztonság, bizalom (trust) Leírás, keresés, policy Biztonsági tokenek Kommunikációs modelll Összetett szolgáltatások Tranzakcionalitás XML dokumentumok Megbízható üzenetküldés Hálózati átvitel XML szintű aláírás és titkosítás

XML encryption 24 W3C szabvány Szimetrikus kulcsú (pl. 3DES) Aszimetrikus kulcs (RSA) Fő elemek o SignedInfo o EncryptedData o EncryptedKey Tipikusan XML signature-el együtt használják

XML Signature 26

WS-Security 27 Önmagában nem az üzenetet védi o Hogyan igazoljuk, hogy védett az üzenet o Használ más szabványokat Azonosítás és autentikáció o Milyen tokeneket használunk az üzenetben Integritás o XML signature o Időzítési védelem az újrajátszás ellen Titkosítás o WS-Encrpytion

Biztonsági tokenek 28 Alkalmazás-specifikus o Usernév-jelszó o unsigned Aláírt biztonsági tokenek (bináris) o X.509 certificate o Kerberos XML tokenek o Pl. SAML o Általában self-signed

XML security párbeszéd 29 Nem önhitelesítő tanúsítványok esetén (non self-validating credentials)

30 Szcenárió 2 self-validating credentials Önhitelesítő tanúsítványok esetén (self-validating credentials)

WS-Security fejléc (SOAP) 31 <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <soapenv:header> <wsse:security xmlns:wsse="..." soapenv:mustunderstand="1"> <xenc:encryptedkey Id="EncKeyId-229902"> <xenc:encryptionmethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> <ds:keyinfo xmlns:ds="..."> <wsse:securitytokenreference> </wsse:securitytokenreference> </ds:keyinfo> <xenc:cipherdata> <xenc:ciphervalue>ppaoxj5p0w8ukm...</xenc:ciphervalue> </xenc:cipherdata> <xenc:referencelist> <xenc:datareference URI="#EncDataId-30957433" /> </xenc:referencelist> </xenc:encryptedkey> <ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"id="signature-17764792"> <ds:signedinfo> <ds:canonicalizationmethod Algorithm= /> <ds:signaturemethod Algorithm= /> <ds:transforms> /ds:transforms> <ds:digestmethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:digestvalue>+eckm6r4gq7aq=...</ds:digestvalue> /ds:signedinfo> </ds:signature> <wsu:timestamp../> <soapenv:body xmlns:wsu="..." wsu:id="id-30957433"> <xenc:encrypteddata Id="EncDataId-30957433.> </sopaenv:body>

Titkosítatlan válasz 32 <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:header /> <soapenv:body> <resp:numberofarcticles xmlns:resp= "http://daily-moon.com/cms/" xmlns:tns= "http://ws.apache.org/axis2"> 42</resp:numberOfArcticles> </soapenv:body> </soapenv:envelope>

WS-Trust 33 Szolgáltatók közti bizalmasság Biztonsági tokenek o Kibocsátása o Megújítása o Ellenőrzése Secure Token Service (STS)

Letagadathatatlanság: WS-RM 34 TCP réteg webszolgáltatásoknak Megbízható üzenetküldés o Nyugtázás o Üzenetsorrendezés o Duplikátumok szűrése o Garantált kézbesítés Több szabvány egyesítése (MS, IBM) Implementációk o RAMP (IBM WebSphere Application Server) o Apache Sandesha (Axis2) o Microsoft Windows Communication Foundation o Bea WebLogic ( Oracle), Sun Glassfish ( Oracle)

További specifikációk 35 WS-SecurityPolicy o WS-policy alapon o Leírja a követelményeket o Milyen elemeket kell használni a többi nyelvből WS-SecureConversation o Hogyan történik a kulcsok igénylése, generálása, stb. WS-Policy o assertion : magas szintű állítás o Legyen nyugtázott üzenetküldés

WS-Interoperability WS-Interoperability o Különböző megvalósítások/eszközök közt o Oracle és MS kölcsönösen tesztelik egymás platformját Verziók pontos megadása Pl. WS-I Basic Profile 2.0 (2010) o SOAP 1.2, WSDL 1.1, UDDI 2.0, WS-Addressing,MTOM Létezik WSDL 2.0 o Egyszerűsítések (pl. message nincs kiemelve) o Nem terjedt el o 4 részre osztva (types + interface / binding + service)

Milyen plusz feladatokat jelent? 37 Magas szintű policy értelmezés o Pl. UM4SOA Pl. Apache Axis2 konfiguráció esetén o Szerver oldalon Rampart, Sandesha modulok engedélyezése services.xml konfiguráció beállítása WSDL újragenerálása Apache WSS4J o Kliens oldalon Apache WSS4J Mögöttes infrastruktúra o Pl. Keystore, üzenetsorok Mi történik, ha a kliens nem tud bármit kezelni? o Pl. BPEL, Android (erőforrások, konfiguráció)

WS Eszköztámogatás (példák) Apache: Apache Web Services Project IBM: WebSphere Application Server Microsoft: Windows Communication Foundation Oracle: METRO stack Eclipse: SOA Tools Platform Altova XML Tools Gyártók saját környezetei o Speciális célú, pl. adatbázis elérés DB2 Oracle MSSQL, stb.

Biztonsági analízis 44 Szisztematikus támadás WSDL alapján o Publikus információ felhasználása Brute force támadás (XML parsing) o Túlterhelés: a parse-olás a szűk keresztmetszet XML injection o Magának a feldolgozási folyamatnak a megváltoztatása Pl. XPath, XSLT, XQuery használatával Külső referencia támadás o Dokumentum linkelése SOAP protokol szintű támadás Szállító réteg támadása

Források 49 http://ws.apache.org/axis2/modules/rampart/1_0/securitymodule.html http://ws.apache.org/sandesha/ Sopera.de Security in a Web Services World: A Proposed Architecture and Roadmap (IBM & Microsoft whitepaper) Web Services Security Tutorial, Jorgen Thelin, CapeClear Software Standards and Practices in Operational Security, Yuri Demchenko, AIRG Understanding Web services Specifications Part IV: security, Nicholas Chase (IBM whitepaper) http://www.slideshare.net/rmaclean/json-and-rest http://www.slideshare.net/peterregli/soap-wsdl-uddi#