Table of Contents

Configurer et sécuriser le relais

Les réglages de la Function App, la gestion de la clé d'accès et les mesures de protection.

Paramètres d'application

Function App, Paramètres, Variables d'environnement :

Paramètre Rôle
SE_SERIAL, SE_API_USER, SE_API_PASSWORD Vos identifiants de licence, ou leurs références Key Vault. Chacun doit être un GUID non nul.
SE_ENDPOINT Adresse du service Secure Exchanges. Production : https://www.secure-exchanges.com/_api/0217/0217.asmx ; préproduction : https://preview.secure-exchanges.com/_api/0217/0217.asmx. N'utilisez que l'une de ces deux adresses.
SE_DEFAULT_CULTURE Langue par défaut des pages vues par vos destinataires, fr-CA ou en-CA. fr-CA si absent.
RELAY_PACKAGE_URL Adresse du fichier de version publié, lue par /api/version.
RELAY_EXTRA_API_KEY Facultatif, non créé par le gabarit : voir Seconde clé.
AzureWebJobsStorage, DEPLOYMENT_STORAGE_CONNECTION_STRING Accès au compte de stockage, gérés par Azure. Ils contiennent la clé du compte de stockage.

Le relais lit sa configuration une fois par instance : redémarrez l'application après toute modification, et après la rotation d'un secret Key Vault.

Protéger la clé d'accès

La clé est la clé d'hôte default de la Function App. Elle vaut pour les trois routes.

  • Passez-la en en-tête : x-functions-key: <clé>, plutôt que dans l'adresse (?code=<clé>), qui finit dans les historiques et les journaux.
  • Limitez qui peut lire les déploiements du groupe de ressources : leurs sorties l'affichent en clair.
  • Renouvelez-la si vous soupçonnez une fuite : Function App, App keys, clé d'hôte default, renouveler. Les trois routes changent de clé d'un coup : mettez à jour chaque outil. Les sorties du déploiement continuent d'afficher l'ancienne valeur.

Seconde clé

Pour exiger une seconde clé, indépendante d'Azure :

  1. Ajoutez le paramètre RELAY_EXTRA_API_KEY, avec une valeur longue et aléatoire, puis redémarrez l'application.
  2. Dans chaque outil, ajoutez l'en-tête x-relay-key avec cette même valeur.

Tout appel sans cet en-tête, ou avec une autre valeur, reçoit alors 401 : {"status":401,"error":"Invalid x-relay-key"}. La règle vaut pour les trois routes, /api/version comprise. La comparaison se fait en temps constant.

Réseau

Le relais n'applique ni restriction d'adresse IP ni limite du nombre d'appels. Une clé divulguée permet de consommer votre licence jusqu'au plafond d'instances.

  • Si votre outil appelle depuis des adresses IP fixes et publiées, limitez les adresses entrantes dans Mise en réseau de la Function App.
  • Le gabarit impose le HTTPS, avec TLS 1.2 au minimum.

Journaux et renseignements personnels

Le déploiement ne crée pas Application Insights : sans lui, les journaux ne sont pas conservés.

Si vous l'ajoutez :

  • choisissez une région canadienne si vos obligations l'exigent ;
  • sachez que les journaux contiennent les erreurs renvoyées par Secure Exchanges, qui peuvent citer l'adresse courriel ou le numéro de téléphone refusé ;
  • fixez une durée de conservation courte, conforme à vos obligations (Loi 25).

Le relais ne journalise ni le corps des requêtes ni vos identifiants.

Retirer le relais

Supprimez le groupe de ressources : la Function App, le plan et le stockage disparaissent d'un coup. Il reste :

  • l'attribution de rôle sur votre coffre, avec l'option Key Vault : retirez-la ;
  • le stockage de Cloud Shell, et le fichier relay.zip qu'y a laissé l'installation ;
  • les messages et enveloppes déjà créés, jusqu'à leur expiration.

Votre licence Secure Exchanges n'est pas touchée.