Vous êtes sur la page 1sur 47

Web Services

Agenda
o Web Services : Principes fondamentaux o Dmo : Web Service sous Visual Studio o Les Services Web scuriss: (WSE) o A propos des Web Services Enhancement 3.0 o Dmo : Dveloppement dun WS avec WSE 3.0

Qu'est-ce qu'un service Web ?


Ce sont des processus mtiers ou des donnes accessibles via Internet par nimporte quelle autre tiers quelle que soit sa nature. Les services Web permettent donc aux applications dinteragir entre elles via le web.

Qu'est-ce qu'un service Web ?


On peut envisager grce aux services Web de segmenter les applications en plusieurs composants ou services partags, qui peuvent rsider sur des machines diffrentes et de nature compltement htrognes. La communication entre les diffrents acteurs se fait via XML et HTTP. Les services Web doivent respecter les proprits suivantes:
tre accessibles via Internet. Dcrire les services qu'ils proposent par un fichier descriptif de type XML. Communiquer avec un client sous forme de message XML transmis sur Internet via un protocole comme HTTP.

Exemples de Web Services


Exemple de station Mto qui veut vendre ses services. Elle veut par exemple partager une mthode avec une entreprise tierce (entreprise de voyage, de transport, ), cette mthode permettrai de trouver la temprature dune rgion en entrant son code postal

Principe majeur des Web services:


Interoprabilit

Interoprabilit :
Lindpendance des Langages Lindpendance des platform La possibilit de bien travailler via Internet DCOM, CORBA, RMI insufficient

La pile Web Services


UDDI (Discovery) WSDL (API Description) SOAP (Messaging) XML HTTP (Transport)

Comment fonctionne un web service


SOAP
Proxy class Northwind Products Web Service

SOAP Internet HTTP


Northwind Products Reseller

Principe de fonctionnement dun Web Service


Annuaire UDDI 2 3 Jai trouv Quel est le format dappel de ton service?

1 Chercher 4 SOAP Voici mon contrat WSDL XML SOAP 5 Requte XML

SOAP

XML

Rsultat

Donc Web Service


Dfinition : des applications partages sur Internet

Repose sur des protocoles bass sur du XML : UDDI (Universal Description Discovery and Integration) WSDL (Web Service Description Langage)

SOAP (Simple Object Access Protocol)

Construction des Web Services

Construction des Web Services ASP.NET Web Service Project

Construction des Web Services ASP.NET Web Service Project

Web.config ASMX file

Construction des Web Services ASPX vs ASMX ASPX


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

ASMX
<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>

Construction Web Services Codebehind Class


using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { [WebMethod] { ... code ... } } public string HelloWorld()

Construction des Web Services Proprits


Proprits des Informations Description :
Renvoie ou dfinit la description du service Web.

MessageName :
Renvoie ou dfinit le nom de la mthode qui sera utilise par les abonns au service web. Par dfaut c'est le nom de la fonction ellemme qui est employ.

Construction des Web Services Proprits


Proprits de Comportement (Behavior) BufferResponse :

Renvoie ou dfinit une valeur indiquant que la rponse est entirement traite sur le serveur avant d'tre renvoye vers le client (true) ou non (false). Renvoie ou dfinit le nombre de secondes pendant lesquels la rponse sera mise en cache.

CacheDuration :

EnableSession :

Renvoie ou dfinit une valeur boolenne indiquant que l'tat de session est actif (true) ou non (false).

TransactionOption

Construction des Web Services Proprits


TransactionOption
Renvoie ou dfinit une option de transaction (Enumration TransactionOption) du service web. Les valeurs possibles sont : Disabled,NotSupported,Required,Requires,Supported

Construction Web Services la page de teste du Framework

Construction Web Services WSDL Documents XML document qui dcrit:


Les methods de disponibilit Argument de signatures Les types retourns Detail de Protocol

Pour voir lajout de ?wsdl .asmx Basis for proxy class generated by:
wsdl.exe Visual Studio .NET

Construction des Web Services

Utilisation des Web Services

Utilisation des Web Service


ajouter un Web Reference

Utilisation des Web Service ajouter un Web Reference

Utilisation des Web Services Proxy


Intermdiaires facilitant la communication / interaction Examples: IDispatch, COM interop wrappers (RCW) Transparent Manipulation des dtails de niveau bas Web service proxy class Represents remote Web service API Derivent de System.Web.Services.Protocols.SoapHttpClientProtocol Manipulation Rassemblement de paramtres Xml srialisation/dserialisation SOAP Codage/dcodage

Utilisation des Web Services Web Service Proxy Class (ctd)


Code source dans Rfrence(.cs) Rfrence(.cs) Peux tre modifier / tendue Les Changements sont perdus si la rfrence du Web Service est mise jour Classes Additionnelles pour les types complexes. Trois mthodes pour chaque mthode du Web Une mthodes synchrone Deux asynchronous Proprits Clefs Url, Timeout, Proxy RequestEncoding, UserAgent AllowAutoRedirection

Utilisation Web Services appel dun Web Service


NorthwindWS.Northwind nw = new NorthwindWS.Northwind(); lblProdName.Text = nw.GetNameByID(txtID.Text); [System.Web.Services.Protocols.SoapDocumentMethodAttribute(" http://www.northwind.com/services/GetNameByID", RequestNamespace="http://www.northwind.com/services", ResponseNamespace="http://www.northwind.com/services", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterSt yle.Wrapped)] public string GetNameByID(string prodID) { object[] results = this.Invoke("GetNameByID", new object[] {prodID}); return ((string)(results[0])); }

Utilisation des Web Service

Agenda
o o o Web Services : Principes fondamentaux Dmo : Web Service sous Visual .Net 2005

Les Services Web scuriss: (WSE)

o A propos des Web Services Enhancement 3.0 o Dmo : Dveloppement dun WS avec WSE 3.0

Dfinition : WSE

Les Services Web scuriss: (WSE)


o Objectifs  Identification.  Confidentialit : protection contre la lecture non authorise par un tiers  Intgrit des messages : Garantie de non modfication par un tiers dun contenu.  Fiabilit des messages

Structure du WSE
IndustryIndustry-Specific Standards

WS-SecureConversation

WS-Federation

Security WS-Trust

Reliable SAML Messaging Messaging

Transactions

WS-Security Policy

XML

Transport Protocols

Metadata

Security Workflow

Les Services Web scuriss: (WSE)


o Stratgies de scurit  Authentification : Authentification Direct / Brokered  Cryptage Symetrique / asymetrique  Couche transport

Les diffrents types : Authentification Direct


Participants
Client. Son rle est de fournir les comptes necessaires pour sidentifier . Service. Cest le serivce qui requiert les comptes ncessaires pour authoriser tout accs au Web service. Identity store. Cest lendroit ou sont stocks les codes daccs (Domain controller, Bases de donnes..)

Process:
Etape 1 nous avons un client qui envoie la requette Etape 2 Le service lui meme se charge de vrifier auprs de l'identity Store est ce que cette utilisateur est authoris consulter les informations Etape 3 Aprs etre sur que l'utilisateur possde les droits, le service web renvoie la rponse au client comme l'indique la figuer

Les diffrents types : Brokered Authentification


Participants :
Client. Service Authentication broker. Identity store.

Process :
Etape 1 Le client envoie la requte d'authentification vers le Broker dauthentification Etape 2 le Broker vrifie auprs de l'identity Store lidentit de lutilisateur. Etape 3 Aprs validation, le Broker renvoie une rponse d'authentification (Jeton de scurit Security Token) Etape 4 Une fois le jeton est fourni l'utilisateur , celui ci envoie sa requte contenant le jeton vers le service Etape 5 Le service Web vrifie la validit du jeton envoy dans la requte Etape 6 Une fois valid le service Web emmet la rponse finale vers le client

Cryptage Symtrique
Shared Secret Key Encrypt
Client

Decrypt
Web Service

Cryptage Asymtrique
Encrypt
Client

Decrypt
Web Service

Service Public Key

Service Protected Private Key

Scenarios dimplmentation WSE

 Implmentation Direct Authentication avec UsernameToken & UsernameOverTransport

 Implmentation Direct Authentication avec


UsernameToken & UsernameForCertificate

Scenarios dimplmentation WSE

 Implmentation Brokered Authentication avec Kerberos ou X 509

 Implmentation Brokered Authentication STS (Security Token Service)

o Les nouveauts WSE 3.0

Les nouveauts dans WSE 3.0


 Simplification de la scurit des Web services  Support de WS-* Spcifications

WS-Security 1.1

Security

MTOM(Message Transmission Optimization Mechanism ) SOAP 1.2  Accueil (Hosting) Web services en utilisant ASP.NET lextrieur du IIS  Gestion de fiabilit de session  Plus doutil de scurit

Simplifier

Rduite

o Intgration avec VS 2005

Intgration avec Visual Studio 2005

Console dadministration indpendante de IIS

Simplicit de travail : un code gnr automatiquement sur la solution : wse3policyCache.config


<policies xmlns="http://schemas.microsoft.com/wse/2005/06/policy"> <policy name="MonServiceWeb"> <usernameOverTransportSecurity> <clientToken> <username username="test" password="test" /> </clientToken> </usernameOverTransportSecurity> <requireActionHeader /> </policy> </policies>

Utilisation du WSE 3.0

Questions ?

Vous aimerez peut-être aussi