Как сохранить Azure экземпляр объявления в переменной среды или azure хранилище ключей - PullRequest
1 голос
/ 28 мая 2020

Мое приложение аутентифицирует пользователя с помощью Azure Ad. Я сохранил Azure информацию об объявлении в настройках приложения. json, но я не хочу хранить ее здесь. Я попытался сохранить эти значения в переменной среды, но получил сообщение об ошибке «OptionsValidationException: параметр« Экземпляр »должен быть предоставлен».

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"
  }
}

startup.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, то каким будет формат данных. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 28 мая 2020

Я не уверен, что вы назвали переменными среды, но имя переменной среды должно быть таким, как это AzureAD__Instance, обратите внимание: двойное подчеркивание (__) указывает на вложенность. потому что конфигурация ищет, например, под гнездом azureAD. Я считаю, что если вы используете префикс ASPNETCORE_AzureAD__Instance в своих переменных env, appsettings. json перезапишет его, если он также существует в appsettings. json. поэтому, если вы сделали с префиксом aspnetcore, не забудьте удалить дерево из настроек приложения. json.

, как и в случае с keyvault, вы должны сделать что-то вроде этого: https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-3.1#use -managed-identity- for- azure -resources

надеюсь, что это укажет вам правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...