簡體   English   中英

如何在環境變量或 azure 密鑰庫中存儲 Azure 廣告實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM