Как следует из заголовка, значения для clientId и clientSecret, которые заполняются в методе AddAzureKeyVault ниже, работают только тогда, когда я помещаю clientId и clientSecret в виде простого текста в разделе переменных VSTS. Это не работает, если я использую группу переменных, которая извлекает эти значения из хранилища ключей, или если я устанавливаю значения как секреты в обычном разделе переменных. Он говорит, что эти значения являются нулевыми, если они не в виде простого текста.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false)
.AddEnvironmentVariables();
var configuration = builder.Build();
var azureServiceTokenProvider = new AzureServiceTokenProvider($"RunAs=App;AppId={Environment.GetEnvironmentVariable("clientId")};TenantId={Environment.GetEnvironmentVariable("tenantId")};AppKey={Environment.GetEnvironmentVariable("clientSecret")}");
KeyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault(Environment.GetEnvironmentVariable("keyVaultUri"),
Environment.GetEnvironmentVariable("clientId"),
Environment.GetEnvironmentVariable("clientSecret"),
new DefaultKeyVaultSecretManager());
Это небезопасно, так как я не хочу, чтобы значения clientId и clientSecret были в виде простого текста. Любая помощь здесь?
РЕДАКТИРОВАТЬ: я использую вышеупомянутый код в. NET Core VSTS задачи (выполните tnet Выполнить). Я не передаю никаких аргументов в задаче. Должен ли я быть?
РЕДАКТИРОВАТЬ 2: Я мог бы найти свой собственный ответ здесь . Но значит ли это, что мне нужно, чтобы мой метод Main ожидал аргументов? Как clientId и clientSecret в разделе «Аргументы». NET Основная задача VSTS?
РЕДАКТИРОВАТЬ 3: я пытался выполнить ##[debug]arguments=##vso[task.setvariable variable=clientId]$(clientId) ##vso[task.setvariable variable=clientSecret]$(clientSecret)
и -clientId $(clientId) -clientSecret $(clientSecret)
в разделе «Аргументы». NET Основная задача VSTS и он все еще разрешает clientId и clientSecret к нулю ...