Aller au contenu principal

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

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.

  1. Allez à la section Configuration de votre App Service
  2. Sous Chaînes de connexion, appuyez sur + Nouvelle châine de connexion Imgur
  3. Donnez le même nom que vous utilisez dans l'application pour le nom de la chaine de connexion
  4. Entrez la chaine de connexion vers votre base de données de production
  5. Pour le Type, sélectionnez Custom (important!)
  6. 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:

appsettings.Development.json
"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:

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.

  1. Vous devrez mettre les configurations de base dans appsettings.json
appsettings.json
//...

"JwtIssuer": "votre url de deploiement",
"JwtAudience": "votre url de deploiement",
"JwtExpirationJours": 30
}
  1. Dans Azure, créer une nouvelle variable d'environnement Imgur
  2. 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. Imgur