Configurations (Connection String, stockage, JWT, etc.)
Plusieurs configurations particulières à l'environnement de déploiement sont à mettre en place pour votre application.
Par exemple, la connexion à la base de données n'est pas la même dans votre environnement local et lorsqu'une fois déployée. Idem pour le dossier de stockage, puisque Azure utilise du stockage ephémère.
Voici quelques lignes directrices pour les configurations les plus probables.
Configuration du Connexion String
Vous ne voulez pas envoyer sur git votre chaine de connexion à la base de données de production. En effet, cela exposerait le compte utilisateur et le mot de passe!
Plutôt que de se fier sur une Connection String dans appsettings.json
, il est possible d'utiliser des variables d'environnement.
Les variables d'environnement sont stockées sur le serveur et Azure remplace automatiquement les valeurs contenues dans appsettings.json
par les variables d'environnement.
Cela permet de ne pas exposer publiquement ces valeurs, à moins d'être administrateur sur le serveur et d'y avoir accès.
- Allez à la section
Configuration
de votreApp Service
- Sous
Chaînes de connexion
, appuyez sur+ Nouvelle ch âine de connexion
- Donnez le même nom que vous utilisez dans l'application pour le nom de la chaine de connexion
- Entrez la chaine de connexion vers votre base de données de production
- Pour le
Type
, sélectionnezCustom
(important!) - Appuyez sur
OK
pour confirmer
Modification à l'application
Pour que Azure remplace votre connection string au moment de l'exécution de l'application, la propriété doit exister dans appsettings.json
.
Pour l'instant, probablement que dans appsettings.Development.json
, vous avez votre connection string du type:
"ConnectionStrings": {
"AppDatabaseConnection": "Server=localhost;Database=snowfall;User Id=postgres;Password=admin;Include Error Detail=true;"
},
Elle ne sera pas remplacée automatiquement malheureusement puisque le fichier cible l'environnement de développement.
Plutôt, déplacez votre connection string vers appsettings.json
:
"ConnectionStrings": {
"AppDatabaseConnection": "Server=localhost;Database=snowfall;User Id=postgres;Password=admin;Include Error Detail=true;"
},
Cela ne devrait rien changer à votre environnement de développement et Azure utilisera la chaine de connexion configurée sur le serveur plutôt que celle contenue dans appsettings.json
.
Configuration JWT (API)
Si vous utilisez une API, vous avez probablement le concept de jetons JWT et de signature de ces derniers côté serveur.
- Vous devrez mettre les configurations de base dans
appsettings.json
//...
"JwtIssuer": "votre url de deploiement",
"JwtAudience": "votre url de deploiement",
"JwtExpirationJours": 30
}
- Dans Azure, créer une nouvelle variable d'environnement
- Nommez la propriété
JwtSecurityKey
(ou si vous utilisez autre chose, soyez cohérent avec votre application) avec une clé secrète, unique à l'environnement de production pour signer les jetons.