Driss BOUNOUAR
     Ismail AZHARI
Khalid ATIAB EL IDRISSI
Faiçal Ahmed ABOULAIT




                    Présentent:




                                  Les Services Web
                                     Le protocole SOAP
Plan:
• Introduction Web services
  –   C'est quoi un service web
  –   L'architecture du services web
  –   Messagerie XML (xml-rpc , SOAP)
  –   C'est quoi un WSDL
• Protocole SOAP
  – Définition
  – Problémes
• Apache Axis
  – Framework Apache Axis
  – Securité Apache Axis
  – Simulation
INTRODUCTION WEB SERVICES
C'est quoi un service web


Un service web c'est tout service :
  – Disturbié sur le web
  – Utilise les messages XML ( format text simple)
  – Independant de la plate-forme ou du langage
    utilisé.
  – Sans intervention humaine, et de manière
    synchrone
L'architecture du services web
Il y a deux façon dont on peut voir l'architecture des
    services web:

 Web Service Roles

 Web Service Protocol Stack
Web Service Roles
Web Service Protocol Stack

 Discovery                   UDDI     permet de localiser sur le réseau
                                      le service Web recherché.



 Description                WSDL      comment communiquer pour utiliser
                                      le service



 XML Messaging   XML-RPC,SOAP,XML     Responsible de l’encodage des
                                      messages en format XML standard



 Transport       HTTP,SMTP,FTP,BEEP   Responsible du transport du message
Messagerie XML (xml-rpc , SOAP)
XML-RPC:

• Un simple protocole RPC
• Permet à des processus s'exécutant dans des
  environnements différents de communiquer
• Pas restriction de système ou de langage.
C’est quoi un WSDL
•   Web Services Description Language
•   Fichier en format XML
•   Sert à décrire l'interface publique d'accés au service
•   À 6 élements principales:
    1. definitions – définit le nom du web service
    2. types – decrit les paramétres et variables qui seront
       transmit
    3. message – définit le nom du message transmit
    4. portType – définit les operations à invoquer
    5. binding – définit le protocole à utiliser pour invoquer le
       service web
    6. service – décrit un ensemble de points finaux du réseau
Présentation SOAP
SOAP (Simple Object Access Protocol) :
SOAP est un protocole d’invocation de méthodes sur
  des services distants, Basé sur XML.

SOAP est un format de communication pour assurer la
  communication entre machines.

Le protocole permet d’appeler une méthode RPC et
 d’envoyer des messages aux machines distantes via
 HTTP(STMP,…).

Très bien adapté à l’utilisation des services web.
Problèmes posés par SOAP

Ces problèmes concernent principalement
  l’interopérabilité des messages SOAP de type RPC.


Ils peuvent être divisés en trois catégories :

  a) problèmes http
  b) problèmes XML
  C) problèmes liés au protocole SOAP
a) problèmes http


HTTP est utilisé pour le transport des messages SOAP
  en XML.

 Or certaines balises spécifiques à SOAP ne vont pas
  être bien interprétées par tous les clients HTTP. Cela
  va dépendre du client et ne pas fonctionner dans
  certains cas.

Exemple de la fonction SOAPAction : la valeur de
  SOAPAction doit être en guillemets sauf s’il s’agit
  d’une valeur nulle.
b) Problèmes XML



Les problèmes d’interopérabilité XML concernent
  l’analyse du langage XML.

SOAP repose sur l’utilisation de ce langage, donc si
 XML pose des problèmes d’implémentations, ceux-
 ci vont poser des problèmes sur SOAP.
c) Problèmes liés à SOAP

Il existe un certain nombre de problèmes
    d’interopérabilité comme par exemple le problème
    lié à l’implémentation de l’attribut
    «ustUnderstand ». Les spécifications de SOAP
    indiquent que si cet attribut est défini sur la valeur «
    1 », il devra être traité. Pourtant certaines
    implémentations de SOAP ne le font pas
    (principalement les premières à avoir été
    développées).
APACHE AXIS
Apache Axis?

• C'est serveur et client SOAP open source
• une API pour développer des services
  web SOAP RPC ou à base de messages SOAP
• La sérialisation/désérialisation automatique
  d'objets Java dans des messages SOAP
• Des outils pour créer automatiquement
  les WSDL correspondant à des classes Java ou
  inversement
• Des outils pour déployer, tester et monitorer des
  web-services
Securité Apache Axis

Failles de sécurtés attendues:
• Refuser à un service d'acceder au service
• L'interception et la manipulation des messages
• Requête client faussé
• Reponse serveur faussé
• Tenter de lire et modifier les fichiers du serveur
• Special XML attacks
• Session Theft, DOS attacks via load-intensive
  operations, Parameter Attacks, Cross Site Scripting
Securité Apache Axis

Solution :
• Utiliser le mécanisme d'authentification du
  protocole HTTP(HTTP basic authentication)
• Utiliser les certificats
• Sécurisé la session par la géneration de session Ids
  difficile
• Validé les parametre contenu dans les messages
  SOAP
• Déguisement, Modifier Axis, Renomer les services
• Arrêter la géneration automatique de WSDL.
Simulation


                                        Ajouter le
    Créer les        Génerer Le
                                        WSDL au
  fichiers java     WSDL par le
                                     serveur apache
 pour le serveur   biais de Apache
                                      qui supporte
   et le client          Axis
                                          SOAP
Reference:



• Site officiel de axis :http://ws.apache.org/axis
• Tutorial de java
  Boutique:http://javaboutique.internet.com/tutorials/
  SOAP.html
• wikipedia.org
Merci d'avoir suivi

Soap

  • 1.
    Driss BOUNOUAR Ismail AZHARI Khalid ATIAB EL IDRISSI Faiçal Ahmed ABOULAIT Présentent: Les Services Web Le protocole SOAP
  • 2.
    Plan: • Introduction Webservices – C'est quoi un service web – L'architecture du services web – Messagerie XML (xml-rpc , SOAP) – C'est quoi un WSDL • Protocole SOAP – Définition – Problémes • Apache Axis – Framework Apache Axis – Securité Apache Axis – Simulation
  • 3.
  • 4.
    C'est quoi unservice web Un service web c'est tout service : – Disturbié sur le web – Utilise les messages XML ( format text simple) – Independant de la plate-forme ou du langage utilisé. – Sans intervention humaine, et de manière synchrone
  • 5.
    L'architecture du servicesweb Il y a deux façon dont on peut voir l'architecture des services web:  Web Service Roles  Web Service Protocol Stack
  • 6.
  • 7.
    Web Service ProtocolStack Discovery UDDI permet de localiser sur le réseau le service Web recherché. Description WSDL comment communiquer pour utiliser le service XML Messaging XML-RPC,SOAP,XML Responsible de l’encodage des messages en format XML standard Transport HTTP,SMTP,FTP,BEEP Responsible du transport du message
  • 8.
    Messagerie XML (xml-rpc, SOAP) XML-RPC: • Un simple protocole RPC • Permet à des processus s'exécutant dans des environnements différents de communiquer • Pas restriction de système ou de langage.
  • 9.
    C’est quoi unWSDL • Web Services Description Language • Fichier en format XML • Sert à décrire l'interface publique d'accés au service • À 6 élements principales: 1. definitions – définit le nom du web service 2. types – decrit les paramétres et variables qui seront transmit 3. message – définit le nom du message transmit 4. portType – définit les operations à invoquer 5. binding – définit le protocole à utiliser pour invoquer le service web 6. service – décrit un ensemble de points finaux du réseau
  • 10.
  • 11.
    SOAP (Simple ObjectAccess Protocol) : SOAP est un protocole d’invocation de méthodes sur des services distants, Basé sur XML. SOAP est un format de communication pour assurer la communication entre machines. Le protocole permet d’appeler une méthode RPC et d’envoyer des messages aux machines distantes via HTTP(STMP,…). Très bien adapté à l’utilisation des services web.
  • 12.
    Problèmes posés parSOAP Ces problèmes concernent principalement l’interopérabilité des messages SOAP de type RPC. Ils peuvent être divisés en trois catégories : a) problèmes http b) problèmes XML C) problèmes liés au protocole SOAP
  • 13.
    a) problèmes http HTTPest utilisé pour le transport des messages SOAP en XML. Or certaines balises spécifiques à SOAP ne vont pas être bien interprétées par tous les clients HTTP. Cela va dépendre du client et ne pas fonctionner dans certains cas. Exemple de la fonction SOAPAction : la valeur de SOAPAction doit être en guillemets sauf s’il s’agit d’une valeur nulle.
  • 14.
    b) Problèmes XML Lesproblèmes d’interopérabilité XML concernent l’analyse du langage XML. SOAP repose sur l’utilisation de ce langage, donc si XML pose des problèmes d’implémentations, ceux- ci vont poser des problèmes sur SOAP.
  • 15.
    c) Problèmes liésà SOAP Il existe un certain nombre de problèmes d’interopérabilité comme par exemple le problème lié à l’implémentation de l’attribut «ustUnderstand ». Les spécifications de SOAP indiquent que si cet attribut est défini sur la valeur « 1 », il devra être traité. Pourtant certaines implémentations de SOAP ne le font pas (principalement les premières à avoir été développées).
  • 16.
  • 17.
    Apache Axis? • C'estserveur et client SOAP open source • une API pour développer des services web SOAP RPC ou à base de messages SOAP • La sérialisation/désérialisation automatique d'objets Java dans des messages SOAP • Des outils pour créer automatiquement les WSDL correspondant à des classes Java ou inversement • Des outils pour déployer, tester et monitorer des web-services
  • 18.
    Securité Apache Axis Faillesde sécurtés attendues: • Refuser à un service d'acceder au service • L'interception et la manipulation des messages • Requête client faussé • Reponse serveur faussé • Tenter de lire et modifier les fichiers du serveur • Special XML attacks • Session Theft, DOS attacks via load-intensive operations, Parameter Attacks, Cross Site Scripting
  • 19.
    Securité Apache Axis Solution: • Utiliser le mécanisme d'authentification du protocole HTTP(HTTP basic authentication) • Utiliser les certificats • Sécurisé la session par la géneration de session Ids difficile • Validé les parametre contenu dans les messages SOAP • Déguisement, Modifier Axis, Renomer les services • Arrêter la géneration automatique de WSDL.
  • 20.
    Simulation Ajouter le Créer les Génerer Le WSDL au fichiers java WSDL par le serveur apache pour le serveur biais de Apache qui supporte et le client Axis SOAP
  • 21.
    Reference: • Site officielde axis :http://ws.apache.org/axis • Tutorial de java Boutique:http://javaboutique.internet.com/tutorials/ SOAP.html • wikipedia.org
  • 22.