Я столкнулся со службой конфигурации приложения Azure с возможностью связать секрет с Azure KeyVault, создав новую запись с опцией ссылки на Key Vault.
Я использовал Расширение Microsoft для конфигурации приложения, как описано в Microsoft Do c
Шаги, которые были выполнены
- Создание принципа обслуживания через CMD - `` az ad sp create-for-rba c -n "http://mySP" --sdk-auth
- Предоставляется разрешение для созданного поставщика услуг также через CMD -
az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get list set --key-permissions create decrypt delete encrypt get list unwrapKey wrapKey
Установить идентификатор и секрет клиента в переменных среды
Реализация метода
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
{
var settings = config.Build();
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
});
});
})
.UseStartup<Startup>());
}
Проблема запускался, когда я пытался получить данные из конфигурации приложения, которые имеют хотя бы одну ссылку KV. Я получаю следующую ошибку (только в этом случае одна ссылка KV связана с конфигурацией приложения)
Запрос на обслуживание не выполнен. Статус: 401 (Неавторизованный)
Содержание:
{"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret is provided.\r\nTrace ID: \r\nCorrelation ID: \r\nTimestamp: 2020-05-27 22:59:52Z","error_codes":[7000215],"timestamp":"2020-05-27 22:59:52Z","trace_id":"","correlation_id":"","error_uri":"https://login.microsoftonline.com/error?code=7000215"}
Headers:
Cache-Control: no-store, no-cache
Pragma: no-cache
Strict-Transport-Security: REDACTED
X-Content-Type-Options: REDACTED
x-ms-request-id: REDACTED
x-ms-ests-server: REDACTED
P3P: REDACTED
Set-Cookie: REDACTED
Date: Wed, 27 May 2020 22:59:51 GMT
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 471
Любая помощь будет очень признательна :) Спасибо!