Webservice WCF – ByPass HTTP/HTTPS ou WDSL personnalisé

https

De nos jours, nous mettons souvent en place une architecture HTTPS Proxy pour un minimum de sécurité sur le web.

C'est à dire, avoir un ensemble de sites WEB en HTTP en interne (DMZ Extranet), et donner l'accès à cet intranet par un firewall proxy (DMZ Publique) qui transforme les appels entrants HTTPS en HTTP.

Je vais me concentrer sur les Webservices C# WCF...

Exemple de cas

Les problèmes qui peuvent être rencontrés sont nombreux mais nous allons nous focaliser sur cet exemple :

schemas_https

Une consommation d'un Webservice WCF par un client web en passant par un proxy en HTTPS, le problème se pose sur le descripteur qui est généré automatiquement par le WCF qui est en HTTP alors que le client attend du HTTPS.

 Solutions proposées

Plusieurs solutions sont envisageables selon l’architecture adoptée. Le plus simple est de générer manuellement le descripteur WSDL

  • Soit par script qui décrit et génère les balises.
  • Soit par l'utilisation d'un fichier descripteur qui est généré automatiquement puis modifié par la suite (solution rapide)

 Nous allons expliquer comment mettre en place la 2ème solution.

 Procédure

Les étapes sont assez simple :

  • Lancez votre site avec un navigateur web (http://localhost/monWebService/customService.svc) puis cliquez sur le lien WSDL affiché.

service

  • Sauvegardez le WSDL dans un fichier avec l'extension .wsdl et changez tous les URL http du webservice (exemple: http://localhost/... par https://localhost/...)

wsdl

  • Ajoutez ce fichier au projet

projet

  • Puis modifier le Web.config avec le paramètre "ExternalMetadataLocation" sur le WDSL implémenté.

webconfig

Voilà, la solution est facile à mettre en place et très flexible pour personnaliser ses paramètres, un grand merci d'avoir suivi ce tutoriel.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.