Web Services Security



Похожие документы
Introduzione ai Web Services Alberto Polzonetti

Approfondimento. Web Services

Web Service Architecture

Introduzione a Service Oriented Architecture e Web Service

1 Vincenzo de Stefano SAP e Servizi Web

Un introduzione ai Web service

Definizione di Web service (2) Un introduzione ai Web service. Caratteristiche dei Web service. Valeria Cardellini Università di Roma Tor Vergata

Client e Server comunicano tramite il protocollo SOAP.

Seminario di Sistemi Distribuiti RPC su SOAP

fornitore di servizi utente all interazione tra utenti e sistemi

Architetture orientate ai servizi

SOA e Web Service SISTEMI INFORMATIVI MODULO II. Corso di Sistemi Informativi Modulo II A. A

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP

Web service. A cura di Azzurra Ragone

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

Web Services. Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A.

Gestione Richieste Patenti Web

Interazione fra applicazioni

Il Web-Service SDMX dell ISTAT

Introduzione alle applicazioni di rete

Protocolli applicativi: FTP

Web Service SOAP e WSDL. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com

Reti di Telecomunicazione Lezione 6

Introduzione ai Web Services. Tito Flagella

Un vincitore è un sognatore. che non si è mai arreso. (Nelson Mandela) Ai miei fantastici genitori

Classificazione dei Web Services

Lezione 1 Introduzione

Corso di Applicazioni Telematiche

Distributed Object Computing

Progetto SIRPE De-materializzazione delle prescrizioni. Servizi personalizzati della CIL

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

Il Sistema di interscambio: Prodotti di TEST a supporto dell adesione ai servizi

QUALIFICAZIONE DELLA PORTA DI DOMINIO

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Ultimo aggiornamento sett13

DOCFINDERWEB SERVICE E CLIENT

Reti di Calcolatori. Il Livello delle Applicazioni

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket.

Reti di Telecomunicazione Lezione 8

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

PARTE 11. Web Services

Introduzione ai Web Services. Moreno Marzolla INFN Sezione di Padova

SVI Nuovo Sistema Revisioni

Il Web-Service SDMX dell ISTAT

Ministero del Lavoro e delle Politiche Sociali

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Interoperabilità e cooperazione applicativa tra sistemi informativi

Web Service medra per la gestione DOI

JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa

Modelli per la descrizione di protocolli

Web Services Dogane LINEE GUIDA

Network Services Location Manager. Guida per amministratori di rete

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

Integration Software S.r.l.

Web Service. Massimo Martinelli

ESERCITAZIONE Semplice creazione di un sito Internet

BPEL: Business Process Execution Language

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Lo scenario: la definizione di Internet

Presentazione di Cedac Software

Hardware delle reti LAN

Architettura client-server

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Capitolo 4 Pianificazione e Sviluppo di Web Part

Groups vs Organizational Units. A cura di Roberto Morleo

Web Services Introduzione, esempio di utilizzo

(Service o Oriented Architecture)

Do-Dots Protocollo di comunicazione

Service Oriented Architecture and Web Services

La serializzazione e deserializzazione nel formato SOAP. A cura del docente Giuliano Pellegrini Parisi

ESEMPI INTEGRAZIONE PRODOTTI

Modelli e Sistemi di Elaborazione Peer-to-Peer

Introduzione ad Architetture Orientate ai Servizi e Web Service

Sistemi informativi secondo prospettive combinate

Global Weather Web Service

Firewall applicativo per la protezione di portali intranet/extranet

Titolo. Verso il nuovo sito Istat: opportunità e innovazioni per potenziare l informazione sul web FORUM PA Maurizio Firmani Giulia Mottura

Microsoft Application Virtualization APP-V Streaming over HTTPS. di Nicola Ferrini

Gestione XML della Porta di Dominio OpenSPCoop

OpenSPCoop: un implementazione della Specifica di Cooperazione Applicativa per la Pubblica Amministrazione Italiana

Транскрипт:

Web Services Security Introduzione ai Web Services Davide Marrone

Sommario Cosa sono i web services Architettura dei web services XML-RPC SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language) UDDI (Universal Description, Discovery and Integration)

Cos è un Web Service? A Web Service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Fonte: http://www.w3.org/tr/ws-arch/

Introduzione Un web service è un qualsiasi servizio disponibile in rete che utilizza XML e che è indipendente da qualsiasi sistema operativo e linguaggio di programmazione La differenza principale tra un web service e un altro strumento utilizzato per realizzare RPC è che un web service utilizza XML per la codifica di tutti i messaggi

Proprietà dei Web Services Auto-descrivente: oltre alla pubblicazione del servizio dovrebbe essere pubblicata anche l interfaccia in un formato standard Di facile individuazione: deve esserci un meccanismo semplice per pubblicare il servizio e per trovare la sua interfaccia

Web Services Actor 1) Pubblicazione del servizio Service registry 2) Individuzione del servizio Service provider 3) Invocazione del servizio Service requestor

Web services protocol stack Localizzazione UDDI Descrizione WSDL Messaggi XML XML-RPC, SOAP, XML Trasporto HTTP, SMTP, FTP, BEEP

XML-RPC E un protocollo per effettuare RPC che utilizza XML e HTTP I messaggi XML sono contenuti nel payload delle POST HTTP E composto da tre parti: XML-RPC data model XML-RPC request structures XML-RPC response structures

XML-RPC - Esempio Richiesta: <?xml version="1.0" encoding="iso-8859-1"?> <methodcall> <methodname>weather.getweather</methodname> <params> <param><value>10016</value></param> </params> </methodcall> Risposta: <?xml version="1.0" encoding="iso-8859-1"?> <methodresponse> <params> <param><value><int>65</int></value></param> </params> </methodresponse>

SOAP E un protocollo basato su XML per lo scambio di informazioni tra computer E pensato per lavorare in un ambiente decentralizzato e distribuito Può essere utilizzato per lo scambio di messaggi e per effettuare RPC

The SOAP Message Exchange Model Il modello di scambio messaggi è oneway, da un mittente ad un destinatario Spesso sono usati due messaggi per permettere un modello request/response Le implementazione di SOAP possono sfruttare le caratteristiche del protocollo di trasporto I messaggi sono ruotati su quello che è chiamato message-path

Componenti di SOAP SOAP envelope: definisce cos è un messaggio, chi lo deve utilizzare, quali parti sono obbligatorie e quali opzionali SOAP encoding rules: definisce le regole per l encoding dei dati SOAP RPC: definisce una convenzione che può essere usata per effettuare RPC

SOAP Envelope E un documento XML Non utilizza uno schema tradizionale per il versioning Gli header possono essere sfruttati per estendere il messaggio es: WS-Security Il body è un contenitore dove sono presenti le informazioni per il destinatario del messaggio

SOAP - Esempio <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap-env="http://www.w3.org/2001/09/soap-envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:getweather xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soapencoding/"> <zipcode xsi:type="xsd:string">10016</zipcode> </ns1:getweather> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAP - Esempio <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap-env="http://www.w3.org/2001/09/soap-envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:getweatherresponse xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soapencoding/"> <return xsi:type="xsd:int">65</return> </ns1:getweatherresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAP Header SOAP actor Attribute: specifica se un elemento dell header è destinato ad un particolare nodo intermedio che si trova sul message-path, il valore di questo attributo è una URI, l actor di default è l ultimo nodo SOAP mustunderstand Attribute: specifica se l actor deve processare e riconoscere correttamente la semantica di quel particolare elemento. Se il processing fallisce deve essere generato un SOAP Fault

Processing of a SOAP Message Quando un nodo riceve un messaggio deve: 2. Identificare le parti del messaggio destinate all applicazione 3. Verificare che le parti obbligatorie identificate al punto 1 possano essere interpretate. Se le informazioni possono essere interpretate il messaggio va processato altrimenti va scartato 4. Se il nodo non è il destinatario del messaggio deve rimuovere le parti identificate nel punto 1 prima di inoltrare il messaggio

SOAP Fault E utilizzato per segnalare problemi, se presente deve essere nel body e deve essere unico faultcode VersionMismatch MustUnderstand Client Server faultstring faultactor detail

SOAP Fault - Esempio HTTP/1.1 500 Internal Server Error Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:server</faultcode> <faultstring>server Error</faultstring> <detail> <e:myfaultdetails xmlns:e="some-uri"> <message>my application didn't work</message> <errorcode>1001</errorcode> </e:myfaultdetails> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

WSDL E un linguaggio XML che descrive web services Specifica la locazione dove è possibile trovare un web service e il modo in cui deve essere invocato Permettono di richiamare servizio in automatico Ci sono due sezioni Definizioni astratte e descrizioni reali

WSDL Definizioni astratte types: vengono definiti i tipi di dati che sono scambiati message: è una definizione astratta dell informazione che viene trasmessa, è composto da uno o più elementi part che sono associati ad un tipo di dati (parametri) porttype: è un insieme di operazioni astratte, ogni operazione fa riferimento ad un messaggio di input e uno di output (funzioni)

WSDL Descrizioni reali binding: specifica il protocollo da utilizzare per l operazione e il messaggio definiti in un porttype port: specifica l indirizzo per un binding service: è usato per raccogliere un insieme di port che hanno un comportamento semantico equivalente

WSDL - Esempio <?xml version="1.0" encoding="utf-8"?> <definitions name="weatherservice" targetnamespace="http://www.example.com/wsdl/weatherservice.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.com/wsdl/weatherservice.wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <message name="getweatherrequest"> <part name="zipcode" type="xsd:string"/> </message> <message name="getweatherresponse"> <part name="temperature" type="xsd:int"/> </message> <porttype name="weather_porttype"> <operation name="getweather"> <input message="tns:getweatherrequest"/> <output message="tns:getweatherresponse"/> </operation> </porttype>

WSDL - Esempio <binding name="weather_binding" type="tns:weather_porttype"> <soap:binding style="rpc transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getweather"> <soap:operation soapaction=""/> <input> <soap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:weatherservice use="encoded"/> </input> <output> <soap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:weatherservice use="encoded"/> </output> </operation> </binding> <service name="weather_service"> <documentation>wsdl File for Weather Service</documentation> <port binding="tns:weather_binding" name="weather_port"> <soap:address location="http://www.example.com/weatherservice"/> </port> </service> </definitions>

UDDI Progetto inizialmente creato da Microsoft IBM e Ariba, si divide in due parti: UDDI specification: è una specifica tecnica che include informazioni su come memorizzare i dati, cercare dati esistenti e pubblicarne di nuovi UDDI Business Registry: è un implementazione di UDDI specification, lanciata da IBM e Microsoft; consente a tutti di registrare i propri servizi

Categorie UDDI White pages: qui sono disponibili informazioni generali riguardanti le imprese Yellow pages: c è una classificazione delle aziende in base ai servizi offerti Green pages: informazioni tecniche sui web services con puntatori ad indirizzi per poterli invocare

UDDI - Esempio Richiesta: <find_business generic="1.0 xmlns="urn:uddi-org:api"> <name>microsoft</name> </find_business> Risposta: <businesslist generic="1.0" operator="microsoft Corporation truncated="false" xmlns="urn:uddi-org:api"> <businessinfos> <businessinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3"> <name>microsoft Corporation</name> <description xml:lang="en"> Empowering people through great software - any time, any place and on any device is Microsoft's vision. As the worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's </description>

UDDI - Esempio <serviceinfos> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="1ffe1f71-2af3-45fb-b788-09af7ff151a4"> <name>web services for smart searching</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="8bf2f51f-8ed4-43fe-b665-38d8205d1333"> <name>electronic Business Integration Services</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="611c5867-384e-4ffd-b49c-28f93a7b4f9b"> <name>volume Licensing Select Program</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="a8e4999a-21a3-47fa-802e-ee50a88b266f"> <name>uddi Web Sites</name> </serviceinfo> </serviceinfos> </businessinfo> </businessinfos> </businesslist>

Bibliografia Web Services Architecture W3C Note (http://www.w3.org/tr/ws-arch/) XML-RPC Specification (http://www.xmlrpc.com/spec) Simple Object Access Protocol (SOAP) 1.1 W3C Note ( http://www.w3.org/tr/2000/note-soap-20000508/) Web Services Description Language (WSDL) 1.1 W3C Note ( http://www.w3.org/tr/2001/note-wsdl-20010315) www.uddi.org Ethan Cerami, Web Services Essentials. O'Reilly 2002