Title: Web Services Enhancements dans 'net 2'0
1Web Services Enhancements dans .net 2.0
Adil JiriSenior Developpeur Microsoft
MVPa.jiri_at_netopia-solutions.com
Mouad ElhayadiSenior Developpeur Microsoft
MVPm.hayadi_at_netopia-solutions.com
2 Agenda
- Web Services Principes fondamentaux
- Démo Web Service sous Visual .Net 2005
- Les Services Web sécurisés (WSE)
- A propos des Web Services Enhancement 3.0
- Démo Développement dun WS avec WSE 3.0
3Qu'est-ce qu'un service Web ?
- Ce sont des processus métiers ou des données
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.
4Qu'est-ce qu'un service Web ?
- On peut envisager grâce aux services Web de
segmenter les applications en plusieurs
composants ou services partagés, qui peuvent
résider sur des machines différentes et de nature
complètement hétérogènes. - La communication entre les différents acteurs
se fait via XML et HTTP. Les services Web doivent
respecter les propriétés suivantes - Être accessibles via Internet.
- Décrire 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.
5Exemples de Web Services
- Exemple de station Météo qui veut vendre ses
services. Elle veut par exemple partager une
méthode avec une entreprise tierce (entreprise de
voyage, de transport, ), cette méthode
permettrai de trouver la température dune
région en entrant son code postalÂ
6Principe majeur des Web services Interopérabilité
- Interopérabilité
- Lindépendance des Langages
- Lindépendance des platform
- La possibilité de bien travailler via Internet
- DCOM, CORBA, RMI insufficient
7La pile Web Services
UDDI (Discovery)
WSDL (API Description)
SOAP (Messaging)
XML
HTTP (Transport)
8Comment fonctionne un web service
Northwind Products Web Service
Internet
HTTP
Northwind Products Reseller
9Principe de fonctionnement dun Web Service
10Donc Web Service
Définition des applications partagées sur
Internet
Repose sur des protocoles basés sur du XML
UDDI (Universal Description Discovery and
Integration)
WSDL (Web Service Description Langage)
SOAP (Simple Object Access Protocol)
11Construction des Web Services
12Construction des Web ServicesASP.NET Web Service
Project
13Construction des Web ServicesASP.NET Web Service
Project
14Construction des Web ServicesASPX vs ASMX
lt_at_ Page Language"C" AutoEventWireup"true"
CodeFile"Default.aspx.cs" Inherits"_Default" gt
lt_at_ WebService Language"C" CodeBehind"/App_Cod
e/Service.cs" Class"Service" gt
15Construction Web Services Codebehind Class
using System using System.Web using
System.Web.Services using System.Web.Services.Pro
tocols WebService(Namespace
"http//tempuri.org/") WebServiceBinding(Conform
sTo WsiProfiles.BasicProfile1_1) public class
Service System.Web.Services.WebService
WebMethod public string HelloWorld()
... code ...
16Construction des Web ServicesPropriétés
- Propriétés des Informations
- Description Renvoie ou définit la description
du service Web. - MessageName Renvoie ou définit le nom de la
méthode qui sera utilisée par les abonnés au
service web. Par défaut c'est le nom de la
fonction elle-même qui est employé.
17Construction des Web ServicesPropriétés
- Propriétés de Comportement (Behavior)
- BufferResponse Renvoie ou définit une valeur
indiquant que la réponse est entièrement traitée
sur le serveur avant d'être renvoyée vers le
client (true) ou non (false). - CacheDuration Renvoie ou définit le nombre de
secondes pendant lesquels la réponse sera mise en
cache. - EnableSession Renvoie ou définit une valeur
booléenne indiquant que l'état de session est
actif (true) ou non (false). - TransactionOption
18Construction des Web ServicesPropriétés
Renvoie ou définit une option de transaction
(Enumération TransactionOption) du service web.
Les valeurs possibles sont Disabled,NotSupporte
d,Required,Requires,Supported
19Construction Web Servicesla page de teste du
Framework
20Construction Web ServicesWSDL Documents
- XML document qui décrit
- Les methods de disponibilité
- Argument de signatures
- Les types retournés
- Detail de Protocol
- Pour voir lajout de ?wsdl à .asmx
- Basis for proxy class generated by
- wsdl.exe
- Visual Studio .NET
21Construction des Web Services
22Utilisation des Web Services
23Utilisation des Web Serviceajouter un Web
Reference
24Utilisation des Web Serviceajouter un Web
Reference
25Utilisation des Web ServicesProxy
- Intermédiaires facilitant la communication /
interaction - Examples IDispatch, COM interop wrappers (RCW)
- Transparent
- Manipulation des détails de niveau bas
- Web service proxy class
- Represents remote Web service API
- Derivent de System.Web.Services.Protocols.SoapHttp
ClientProtocol - Manipulation
- Rassemblement de paramètres
- Xml sérialisation/déserialisation
- SOAP Codage/décodage
26Utilisation des Web ServicesWeb Service Proxy
Class (ctd)
- Code source dans Référence(.cs)
- Peux être modifier / étendue
- Les Changements sont perdus si la référence du
Web Service est mise à jour - Classes Additionnelles pour les types complexes.
- Trois méthodes pour chaque méthode du Web
- Une méthodes synchrone
- Deux asynchronous
- Propriétés Clefs
- Url, Timeout, Proxy
- RequestEncoding, UserAgent
- AllowAutoRedirection
27Utilisation Web Servicesappel dun Web Service
NorthwindWS.Northwind nw new NorthwindWS.Northwi
nd() lblProdName.Text nw.GetNameByID(txtID.Text
)
System.Web.Services.Protocols.SoapDocumentMethodA
ttribute("http//www.northwind.com/services/GetNam
eByID", RequestNamespace"http//www.northwind.com
/services", ResponseNamespace"http//www.northwin
d.com/services", UseSystem.Web.Services.Descripti
on.SoapBindingUse.Literal, ParameterStyleSystem.W
eb.Services.Protocols.SoapParameterStyle.Wrapped)
public string GetNameByID(string prodID)
object results this.Invoke("GetNameByID", new
object prodID) return
((string)(results0))
28Utilisation des Web Service
29 Agenda
- Web Services Principes fondamentaux
- Démo Web Service sous Visual .Net 2005
- Les Services Web sécurisés (WSE)
- A propos des Web Services Enhancement 3.0
- Démo Développement dun WS avec WSE 3.0
30Définition WSE
31Les Services Web sécurisés (WSE)
- Identification.
- Confidentialité protection contre la lecture
non authorisée par un tiers - Intégrité des messages Garantie de non
modfication par un tiers dun contenu. - Fiabilité des messages
32Structure du WSE
Industry-Specific Standards
Workflow
Metadata
Security
Transactions
ReliableMessaging
Messaging
XML
Transport Protocols
33Les Services Web sécurisés (WSE)
- Stratégies de sécurité
-
- Authentification Authentification Direct /
Brokered - Cryptage Symetrique / asymetrique
- Couche transport
34 Les différents types Authentification Direct
Participants ? Client. Son rôle est de fournir
les comptes necessaires pour sidentifier . ?
Service. Cest le serivce qui requiert les
comptes nécessaires pour authoriser tout accès au
Web service. ? Identity store. Cest lendroit ou
sont stockés les codes daccès (Domain
controller, Bases de donnèes..)
ProcessEtape 1 nous avons un client qui envoie
la requette Etape 2 Le service lui meme se charge
de vérifier auprés de l'identity Store est ce que
cette utilisateur est authorisé à consulter les
informations Etape 3 Aprés etre sur que
l'utilisateur posséde les droits, le service web
renvoie la réponse au client comme l'indique la
figuer
35 Les différents types Brokered Authentification
Participants ? Client. ? Service?
Authentication broker. ? Identity store.
36Process Etape 1 Le client envoie la requête
d'authentification vers le Brokerdauthentificati
on Etape 2 le Broker vérifie auprès de
l'identity Store lidentité de lutilisateur. Eta
pe 3 Après validation, le Broker renvoie une
réponse d'authentification (Jeton de sécurité
Security Token) Etape 4 Une fois le jeton est
fourni à l'utilisateur , celui ci envoie sa
requête contenant le jeton vers le service
Etape 5 Le service Web vérifie la validité du
jeton envoyé dans la requête Etape 6 Une fois
validé le service Web emmet la réponse finale
vers le client
37 Cryptage Symètrique
Shared Secret Key
Decrypt
Encrypt
Client
Web Service
Encrypted
Cryptage Asymètrique
38Scenarios dimplémentation WSE
- Implémentation Direct Authentication avec
UsernameToken UsernameOverTransport - Implémentation Direct Authentication avec
UsernameToken UsernameForCertificate -
SSL
39Scenarios dimplémentation WSE
- Implémentation Brokered Authentication avec
Kerberos ou X 509 -
- Implémentation Brokered Authentication STS
(Security Token Service)
40Piliers de WSE 3.0
Indigo
WSE v3.0 combiné avec .NET Framework v2.0 vous
met sur le chemin Indigo
Développement Simplifié de Service-Orientés
systems en utilisant the WS- protocols et
.NET Framework v2.0
Construire des web services facilement
41 42Les nouveautés dans WSE 3.0
- Simplification de la sécurité des Web services
- Support de WS- Spécifications WS-Security
1.1 - MTOM(Message Transmission Optimization Mechanism
) - SOAP 1.2
- Accueil (Hosting) Web services en utilisant
ASP.NET à lextérieur du IIS - Gestion de fiabilité de session
- Plus doutil de sécurité
43-
- Intégration avec VS 2005
44Intégration avec Visual Studio 2005
45Console dadministration indépendante de IIS
46Simplicité de travail un code généré
automatiquement sur la solution
wse3policyCache.config
ltpolicies xmlns"http//schemas.microsoft.com/wse/
2005/06/policy"gt ltpolicy name"MonServiceWeb"gt
ltusernameOverTransportSecuritygt
ltclientTokengt ltusername username"test"
password"test" /gt lt/clientTokengt
lt/usernameOverTransportSecuritygt
ltrequireActionHeader /gt lt/policygt lt/policiesgt
47Utilisation du WSE 3.0
48Questions ?