diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 8576e3cc8..11b2d13f9 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -37,6 +37,7 @@ + diff --git a/src/Services/Ordering/Ordering.API/Program.cs b/src/Services/Ordering/Ordering.API/Program.cs index 011f3004f..50fa8b98b 100644 --- a/src/Services/Ordering/Ordering.API/Program.cs +++ b/src/Services/Ordering/Ordering.API/Program.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using System; using System.IO; namespace Microsoft.eShopOnContainers.Services.Ordering.API @@ -38,7 +39,22 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API .ConfigureAppConfiguration((builderContext, config) => { config.AddJsonFile("settings.json"); - config.AddEnvironmentVariables(); + + var builtConfig = config.Build(); + + var configurationBuilder = new ConfigurationBuilder(); + + if (Convert.ToBoolean(builtConfig["UseVault"])) + { + configurationBuilder.AddAzureKeyVault( + $"https://{builtConfig["Vault:Name"]}.vault.azure.net/", + builtConfig["Vault:ClientId"], + builtConfig["Vault:ClientSecret"]); + } + + configurationBuilder.AddEnvironmentVariables(); + + config.AddConfiguration(configurationBuilder.Build()); }) .ConfigureLogging((hostingContext, builder) => { diff --git a/src/Services/Ordering/Ordering.API/settings.json b/src/Services/Ordering/Ordering.API/settings.json index ef9b9e03c..96dd74630 100644 --- a/src/Services/Ordering/Ordering.API/settings.json +++ b/src/Services/Ordering/Ordering.API/settings.json @@ -17,5 +17,11 @@ "InstrumentationKey": "" }, "EventBusRetryCount": 5, - "EventBusConnection": "localhost" + "EventBusConnection": "localhost", + "UseVault": false, + "Vault": { + "Name": "eshop", + "ClientId": "your-clien-id", + "ClientSecret": "your-client-secret" + } }