Les Services Web et la Sécurité
1. Services Web SOAP
Les services Web SOAP (Simple Object Access Protocol) sont des services basés sur XML
permettant l’échange d’informations structurées entre applications via un réseau,
généralement HTTP.
1.1 Introduction
SOAP est un protocole standardisé utilisé pour communiquer entre applications
hétérogènes. Il est indépendant du langage de programmation et du système d’exploitation.
1.2 Architecture SOAP
L’architecture SOAP repose sur trois acteurs principaux :
- Le fournisseur de service (Service Provider)
- Le consommateur de service (Service Consumer)
- Le registre de service (Service Registry)
Les échanges se font via des messages SOAP encapsulés dans HTTP.
1.3 Structure des messages SOAP
Un message SOAP est composé de :
- Envelope : élément racine du message
- Header : contient des informations de contrôle (sécurité, authentification…)
- Body : contient les données principales
- Fault : contient les erreurs éventuelles
1.4 Le WSDL
Le WSDL (Web Services Description Language) est un fichier XML qui décrit le service SOAP
: les opérations disponibles, les paramètres, le type de données et l’URL du service.
1.5 Le UDDI
UDDI (Universal Description, Discovery and Integration) est un annuaire permettant de
publier et découvrir des services Web SOAP.
1.6 Les spécifications WS-*
Les spécifications WS-* ajoutent des fonctionnalités avancées comme :
- WS-Security : sécurité des messages
- WS-Transaction : gestion des transactions
- WS-ReliableMessaging : fiabilité des échanges
1.7 La pile Service Web
La pile des services Web comprend :
- Transport (HTTP, SMTP)
- Messaging (SOAP)
- Description (WSDL)
- Découverte (UDDI)
- Sécurité (WS-Security)
2. Services Web REST
REST (Representational State Transfer) est un style d’architecture utilisé pour concevoir
des API simples, rapides et légères, très utilisées dans les applications web modernes.
2.1 Introduction sur REST
REST repose sur le protocole HTTP et utilise des ressources identifiées par des URI. Les
données sont généralement échangées au format JSON.
2.2 Design d’un Service Web REST
Un service REST bien conçu respecte les principes REST : stateless, client-serveur,
uniformité des interfaces et cache.
2.3 Design des URI
Les URI doivent être simples et explicites.
Exemple :
/etudiants
/etudiants/10
/modules/5/etudiants
2.4 Méthodes REST
Les principales méthodes HTTP utilisées en REST sont :
- GET : récupérer une ressource
- POST : créer une ressource
- PUT : modifier une ressource
- DELETE : supprimer une ressource
2.5 Découverte d’API
La découverte d’API REST peut se faire via la documentation (Swagger / OpenAPI) ou des
portails de développeurs.
3. Sécurité et Services Web
La sécurité est un aspect essentiel des services Web pour protéger les données et les
utilisateurs.
3.1 Introduction
Les services Web sont exposés sur Internet, ce qui les rend vulnérables à de nombreuses
attaques.
3.2 Menaces sur les Services Web
Les principales menaces sont :
- Attaques par injection
- Interception des messages
- Usurpation d’identité
- Accès non autorisé
3.3 Mécanismes de sécurité
Pour sécuriser les services Web, on utilise :
- HTTPS (SSL/TLS)
- Authentification (Basic, Token, OAuth, JWT)
- Autorisation basée sur les rôles
- WS-Security pour SOAP