Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Installation de MercatorPenguinServer

0000002758     -      13/10/2018

MercatorPenguinServer est un web service RESTful API qui permet les échanges entre l'application mobile MercatorPenguin et la base de données de Mercator. Il doit être hébergé sur un serveur Windows sur lequel le rôle IIS (Internet Information Server) est installé. L'installation de ce serveur se fait comme la mise en route d'un site web. Il faut dézipper le contenu du fichier ZIP ci-joint dans un répertoire local du serveur (par exemple C:\inetpub\wwwroot_penguin). Ce répertoire ne doit pas être celui de Mercator. Par contre, il est nécessaire de disposer sur ce serveur d'une installation de Mercator à jour et fonctionnelle.

Dans la console d'IIS, il faut créer un nouveau site web.

Pour le chemin d'accès, il faut indiquer le répertoire utilisé ci-dessus. 

Il est aussi nécessaire de compléter un nom d'hôte correctement enregistré dans votre DNS : par exemple penguin.domain.com

Ce nouveau site ne requiert aucun paramétrage particulier en matière de sécurité par exemple, si ce n'est qu'il faut donner des droits en écriture sur le sous-répertoire LogFiles. C'est en effet dans ce répertoire que MercatorPenguinServer va écrire les fichiers de log permettant d'enregistrer son activité.

Pour des raisons de sécurité, MercatorPenguin ne peut accéder à MercatorPenguinServer qu'en HTTPS. Il est donc obligatoire d'installer un certificat SSL. Le port 443 (https) devra aussi être ouvert et dirigé vers ce serveur. Ce certificat SSL peut être obtenu gratuitement via LetsEncrypt.

MercatorPenguinServer peut être utilisé pour offrir un accès simultané à différents Mercator. Pour cela, MercatorPenguinServer doit disposer d'un ou plusieurs fichiers de configuration, placé dans le sous-répertoire App_Data, dont le nom est composé comme suit :

  • le nom du fichier doit être le nom de la configuration qui sera renseignée dans les paramètres de connexion de MercatorPenguin
  • son extension est toujours .ini

Le fichier doit avoir un contenu dont la structure est identique au fichier fourni par défaut : config.ini

Il doit être complété comme suit :

  • MainDir : répertoire contenant le Mercator auquel il faut se connecter. Attention : ce répertoire doit être un répertoire local. En effet, un service Windows ne peut voir les répertoires distants.
  • Dossier : identifiant du dossier si ce Mercator contient une gestion multi-dossiers. Si tel n'est pas le cas, ce paramètre doit être laissé à blanc.
  • SecretPhrase : phrase secrète qui sera utilisée pour le cryptage et le hashage des communications entre MercatorPenguin et le serveur. Cette phrase doit être indiquée dans les paramètres de connexion de MercatorPenguin. Nous recommandons d'utiliser une phrase suffisamment forte et d'éviter celles comme "1234", "Secret", ...
  • MaxRows : un utilisateur sur mobile ne peut pas recevoir un catalogue de 30.000 articles. Il ne pourra les parcourir et il est probable que son portable ne pourra contenir toute cette information en mémoire. Les jeux de données renvoyés à l'utilisateur doivent donc être limités en terme de nombre d'enregistrements. Ce nombre maximal d'enregistrements est renseigné ici. Valeur recommandée = 50
  • AdDomain et AdGroup : nous recommandons avec insistance l'utilisation de l'authentification sur la base d'Active Directory. Si tel est bien le cas, il faut spécifier ici, respectivement le domaine (mydomain.local) et le groupe auquel doit appartenir l'utilisateur pour avoir accès à ce Mercator et/ou à ce web service. Si ces options sont à blanc, alors les utilisateurs seront authentifiés sur base du login et du mot de passe encodés dans Mercator. Cette dernière option est déconseillée.

 

Le fichier web.config présent dans le répertoire root contient les paramètres suivants :

  • DaysLogs : nombre de jours pendant lesquels il faut maintenir les fichiers de log. Lors du démarrage du web service, les fichiers log plus anciens sont automatiquement supprimés. Si on souhaite désactiver cette suppression automatique, il faut indiquer la valeur zéro. Valeur par défaut = 30 jours.
  • IpBlockerNbr : nombre de logins infructueux maximal, au delà duquel l'adresse IP de l'utilisateur est black-listée pendant le délai indiqué ci-dessous. Valeur par défaut = 10.
  • IpBlockerMin : nombre de minutes pendant lesquelles sera bloquée une adresse IP pour laquelle le nombre de logins infructueux a dépassé le paramètre précédent. Valeur par défaut = 15 minutes.
  • JpegCompression : paramètre de compression pour les images rendues par ShowImage.ashx. Valeur par défaut = 50.

Pourquoi l'infrastructure proposée par MercatorPenguinServer est-elle fiable en matière de sécurité ?

  • Les échanges sont pris en charge par le protocole HTTPS. Cela assure un cryptage des communications et rend impossible l'interception de données "en clair".
  • Chaque requête n'est acceptée par MercatorPenguinServer que si des headers http bien spécifiques sont présents.
  • Ces headers consistent notamment en un échange d'une clé de hashage et d'un jeton à usage unique qui attestent que l'expéditeur du message est bien MercatorPenguin.
  • Le jeton fait partie de ce scénario de calcul du hashage, ainsi qu'une phrase secrète, propre à chaque configuration et inconnue du code de MercatorPenguin ainsi que de MercatorPenguinServer.
  • MercatorPenguinServer dispose d'un système permettant de bloquer temporairement des adresses IP envoyant plusieurs requêtes avec des clés/jetons incorrects ou tentant de valider des crédentiales incorrectes.
  • Les requêtes SQL à exécuter ne sont jamais envoyées du mobile vers MercatorPenguinServer. Ce dernier utilise toujours les versions originales qu'il trouve dans Mercator. De plus, toutes les requêtes SQL utilisent exclusivement des paramètres SQL. Ces deux points rendent strictement impossible toute injection SQL.

 


Si l'erreur HttpStatusCode=NotFound est rencontrée dans l'application mobile (et seulement dans ce cas), il faut ajouter ces lignes dans le fichier web.config juste avant </system.webServer>

<handlers>
<add name="ApiURIs-ISAPI-Integrated-4.0"
      path="/api/*"
      verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
      type="System.Web.Handlers.TransferRequestHandler"
      preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

 


Versions

  • 12/12/2017 : v 1.0.1 : amélioration multi-threading au niveau de l'écriture des logs
  • 29/05/2018 : v 2.0.0 : compatible avec MercatorPenguin 2.0
  • 28/06/2018 : v 2.1.0 : compatible avec MercatorPenguin 2.1
  • 18/09/2018 : v 2.2.0 : compatible avec MercatorPenguin 2.2
  • 03/10/2018 : v 2.2.1 : compatible avec MercatorPenguin 2.2.1
  • 13/10/2018 : v 2.2.1.1 : bug fixing calcul ItemsSource des EditPickers

Mettre en place un certificat LetsEncrypt

1) Installer le web service comme indiqué dans cette page. Assurez-vous que l'url http://penguin.domain.com/testprocess.ashx renvoie bien "OK". Si c'est le cas, votre web service est démarré et fonctionnel. Si ce n'est pas le cas, corrigez la configuration avant de passer à l'étape suivante. Ne rien paramétrer manuellement en ce qui concerne la liaison à HTTPS.

2) Le port 80 (http) doit être ouvert et dirigé vers ce serveur.

3) Télécharger le client letsencrypt-win-simple depuis https://github.com/Lone-Coder/letsencrypt-win-simple/releases  

4) Exécuter letsencrypt.exe. Si c'est la première fois, accepter la licence et saisir une adresse email susceptible de recevoir des éventuels avertissements quant à l'expiration du certificat.

5) Dans l'invite, saisir le n° du site correspondant à penguin.domain.com.

6) S'il s'agit du premier certificat demandé, confirmer la création d'une tâche dans le "planificateur de tâches" de Windows, qui assurera le renouvellement automatique du certificat tous les 60 jours. Il faut s'assurer de bien spécifier les crédentiales d'un compte administrateur pour l'exécution de cette tâche.

7) Tester l'url https://penguin.domain.com/testprocess.ashx 

Let's Encrypt



A télécharger : 0000002758.zip (5941 Kb - 15/10/2018)