[英]How to store Azure Ad Instance in environment variable or azure key vault
我的應用程序正在通過 Azure 廣告對用戶進行身份驗證。 我已將 Azure 廣告信息存儲在 appsettings.json 中,但我不想將其保留在這里。 我試圖將這些值存儲在環境變量中,但出現“OptionsValidationException:必須提供'Instance'選項”的錯誤。
appsettings.json
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "test.onmicrosoft.com",
"TenantId": "9dasdasb677-dsadsa5ad-asdd83-aa73-7dcdsadsa80bc7",
"ClientId": "9dasdasb677-dsadsa5ad-asdd83-aa73-7dcdsadsa80bc7",
"CallbackPath": "/signin-oidc"
}
}
啟動.cs
public void ConfigureServices (IServiceCollection services) {
services.AddAuthentication (AzureADDefaults.AuthenticationScheme)
.AddAzureAD (options => Configuration.Bind ("AzureAd", options));
services.AddDbContext<ApplicationDbContext> (options =>
options.UseSqlServer (
Configuration.GetConnectionString ("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser> (options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext> ();
}
我是否缺少啟動文件中的某些內容或其他內容。 如果我想將 appsettings.json 文件中的值存儲到 azure 密鑰保管庫,那么數據的格式是什么。 任何幫助將非常感激。
我不確定您所說的環境變量是什么,但環境變量名稱必須像這樣 AzureAD__Instance 注意雙下划線 (__) 表示嵌套。 因為配置正在 azureAD 巢下尋找實例。 我相信如果您在環境變量中使用前綴 ASPNETCORE_AzureAD__Instance,如果 appsettings.json 也存在於 appsettings.json 中,它將覆蓋它。 因此,如果您使用 aspnetcore 前綴,請記住從 appsettings.json 中刪除樹。
至於使用 keyvault,你會做這樣的事情: https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-3.1#use-managed-identities -for-azure-resources
希望這為您指明了正確的方向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.