Skip to content

Commit b005b63

Browse files
committed
Add azure key vault support in all services
1 parent 7711820 commit b005b63

17 files changed

Lines changed: 120 additions & 12 deletions

File tree

src/Services/Basket/Basket.API/Basket.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.6.1" />
1818
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.0.0-beta8" />
1919
<PackageReference Include="Microsoft.ApplicationInsights.ServiceFabric" Version="2.1.1-beta1" />
20+
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.0" />
2021
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" />
2122
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.2.1" />
2223
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.1.0" />

src/Services/Basket/Basket.API/Program.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Microsoft.AspNetCore.Hosting;
55
using Microsoft.Extensions.Configuration;
66
using Microsoft.Extensions.Logging;
7+
using System;
78
using System.IO;
89

910
namespace Microsoft.eShopOnContainers.Services.Basket.API
@@ -26,7 +27,21 @@ public static IWebHost BuildWebHost(string[] args) =>
2627
.UseStartup<Startup>()
2728
.ConfigureAppConfiguration((builderContext, config) =>
2829
{
29-
config.AddEnvironmentVariables();
30+
var builtConfig = config.Build();
31+
32+
var configurationBuilder = new ConfigurationBuilder();
33+
34+
if (Convert.ToBoolean(builtConfig["UseVault"]))
35+
{
36+
configurationBuilder.AddAzureKeyVault(
37+
$"https://{builtConfig["Vault:Name"]}.vault.azure.net/",
38+
builtConfig["Vault:ClientId"],
39+
builtConfig["Vault:ClientSecret"]);
40+
}
41+
42+
configurationBuilder.AddEnvironmentVariables();
43+
44+
config.AddConfiguration(configurationBuilder.Build());
3045
})
3146
.ConfigureLogging((hostingContext, builder) =>
3247
{

src/Services/Basket/Basket.API/appsettings.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,11 @@
1414
"ApplicationInsights": {
1515
"InstrumentationKey": ""
1616
},
17-
"EventBusRetryCount": 5
17+
"EventBusRetryCount": 5,
18+
"UseVault": false,
19+
"Vault": {
20+
"Name": "eshop",
21+
"ClientId": "your-clien-id",
22+
"ClientSecret": "your-client-secret"
23+
}
1824
}

src/Services/Catalog/Catalog.API/Catalog.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.6.1" />
4040
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.0.0-beta8" />
4141
<PackageReference Include="Microsoft.ApplicationInsights.ServiceFabric" Version="2.1.1-beta1" />
42+
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.0" />
4243
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.1.0" />
4344
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" />
4445
<PackageReference Include="Swashbuckle.AspNetCore" Version="2.4.0" />

src/Services/Catalog/Catalog.API/Program.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.Extensions.DependencyInjection;
77
using Microsoft.Extensions.Logging;
88
using Microsoft.Extensions.Options;
9+
using System;
910
using System.IO;
1011
namespace Microsoft.eShopOnContainers.Services.Catalog.API
1112
{
@@ -38,7 +39,21 @@ public static IWebHost BuildWebHost(string[] args) =>
3839
.UseWebRoot("Pics")
3940
.ConfigureAppConfiguration((builderContext, config) =>
4041
{
41-
config.AddEnvironmentVariables();
42+
var builtConfig = config.Build();
43+
44+
var configurationBuilder = new ConfigurationBuilder();
45+
46+
if (Convert.ToBoolean(builtConfig["UseVault"]))
47+
{
48+
configurationBuilder.AddAzureKeyVault(
49+
$"https://{builtConfig["Vault:Name"]}.vault.azure.net/",
50+
builtConfig["Vault:ClientId"],
51+
builtConfig["Vault:ClientSecret"]);
52+
}
53+
54+
configurationBuilder.AddEnvironmentVariables();
55+
56+
config.AddConfiguration(configurationBuilder.Build());
4257
})
4358
.ConfigureLogging((hostingContext, builder) =>
4459
{

src/Services/Catalog/Catalog.API/appsettings.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
"ApplicationInsights": {
1717
"InstrumentationKey": ""
1818
},
19-
"EventBusRetryCount": 5
19+
"EventBusRetryCount": 5,
20+
"UseVault": false,
21+
"Vault": {
22+
"Name": "eshop",
23+
"ClientId": "your-clien-id",
24+
"ClientSecret": "your-client-secret"
25+
}
2026
}

src/Services/Identity/Identity.API/Identity.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.0.0-beta8" />
2020
<PackageReference Include="Microsoft.ApplicationInsights.ServiceFabric" Version="2.1.1-beta1" />
2121
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.1.0" />
22+
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.0" />
2223
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" />
2324
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
2425
<PackageReference Include="IdentityServer4.EntityFramework" Version="2.1.1" />

src/Services/Identity/Identity.API/Program.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.Extensions.DependencyInjection;
77
using Microsoft.Extensions.Logging;
88
using Microsoft.Extensions.Options;
9+
using System;
910
using System.IO;
1011

1112
namespace Microsoft.eShopOnContainers.Services.Identity.API
@@ -45,7 +46,21 @@ public static IWebHost BuildWebHost(string[] args) =>
4546
.UseStartup<Startup>()
4647
.ConfigureAppConfiguration((builderContext, config) =>
4748
{
48-
config.AddEnvironmentVariables();
49+
var builtConfig = config.Build();
50+
51+
var configurationBuilder = new ConfigurationBuilder();
52+
53+
if (Convert.ToBoolean(builtConfig["UseVault"]))
54+
{
55+
configurationBuilder.AddAzureKeyVault(
56+
$"https://{builtConfig["Vault:Name"]}.vault.azure.net/",
57+
builtConfig["Vault:ClientId"],
58+
builtConfig["Vault:ClientSecret"]);
59+
}
60+
61+
configurationBuilder.AddEnvironmentVariables();
62+
63+
config.AddConfiguration(configurationBuilder.Build());
4964
})
5065
.ConfigureLogging((hostingContext, builder) =>
5166
{

src/Services/Identity/Identity.API/appsettings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,11 @@
1515
},
1616
"ApplicationInsights": {
1717
"InstrumentationKey": ""
18+
},
19+
"UseVault": false,
20+
"Vault": {
21+
"Name": "eshop",
22+
"ClientId": "your-clien-id",
23+
"ClientSecret": "your-client-secret"
1824
}
1925
}

src/Services/Location/Locations.API/Locations.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.0.0-beta8" />
1313
<PackageReference Include="Microsoft.ApplicationInsights.ServiceFabric" Version="2.1.1-beta1" />
1414
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.1.0" />
15+
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.0" />
1516
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" />
1617
<PackageReference Include="mongocsharpdriver" Version="2.5.0" />
1718
<PackageReference Include="MongoDB.Bson" Version="2.5.0" />

0 commit comments

Comments
 (0)