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 :
- Ajoutez le paramètre
RELAY_EXTRA_API_KEY, avec une valeur longue et aléatoire, puis redémarrez l'application. - Dans chaque outil, ajoutez l'en-tête
x-relay-keyavec 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.zipqu'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.