Я использую портал для импорта файла JSON, содержащего пары ключ-значение. Нужна помощь в импорте ссылок на ключ-хранилище.
Я готовлю файл JSON, например
{
AppSettings: {
"testKey": "testValue",
"testSecrete": "<akv-Reference-TestSecreteKey>"
}
}
что мне следует добавить вместо «akv-Reference-TestSecreteKey», чтобы при импорте этого файла он добавлялся в качестве ссылки на хранилище ключей.
При импорте я выбираю:
Я попробовал это
{
"AppSettings": {
"Test": "testValue",
"TestSceret": "@Microsoft.KeyVault(SecretUri=
https://xyz.vault.azure.net/secrets/SecretValue/)"
}
}
Но он добавлен как ключ-значение со значением, таким же, как @Microsoft.KeyVault(S...
Да, я выбираю файл из своего локального
Ключевая ссылка работает только для развернутого приложения.
Какой тип контента вы используете?
Я не выбирал какой-либо тип контента, но позже понял, что это должно быть «application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8» с некоторыми изменениями в значении (обновлено в ответе).





Вы можете использовать ссылку на Key Vault в форме @Microsoft.KeyVault({referenceString})
Пример:
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
Альтернативно:
@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)
Обратите внимание, что вам необходимо предоставить приложению доступ к хранилищу ключей.
См. также Устранение неполадок со ссылками на хранилище ключей.
Я попробовал это, но это добавило то же самое, что и ключ-значение.
@harpal обновил мой ответ - забыл упомянуть, что вам нужно предоставить вашему приложению доступ к хранилищу ключей.
Приложение имеет доступ, уже есть много секретов и ключей. Я столкнулся с проблемой при загрузке файла с моего локального компьютера через портал Azure.
Попробуйте использовать фактическое SecretName -
{
"AppSettings": {
"testValue": "@Microsoft.KeyVault(SecretUri=https://xyz.vault.azure.net/secrets/SecretValue/)"
}
}
В соответствии с Импортировать или экспортировать данные конфигурации , вам может потребоваться изменить тип контента, как показано ниже:
Тип контента Необязательно. Укажите, импортируете ли вы файл JSON или ссылки на Key Vault. Дополнительные сведения о ссылках на Key Vault см. в разделе Использование ссылок Key Vault в приложении ASP.NET Core.
Я делал с настоящим секретом, но @harshita сказал в комментарии к вопросу, может ли это быть связано с локальной машиной, которую я импортирую?
@harpal Пожалуйста, найдите обновленный ответ.
@harpal — игнорируйте мой комментарий it will not work locally... Это для службы приложений Azure.
Нашел ответ от моего коллеги, нам нужно отделить наш json-файл от обычных ключей и секретов хранилища ключей.
Секрет хранилища ключей в формате JSON будет выглядеть так
{
"AppSettings": {
"testKey": "{\"uri"\: \"https://xyz.vault.azure.net/secrets/SecretValue/")"
}
}
И при импорте будет другой тип контента, например 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8'.
Это добавит ключ в качестве ссылки на хранилище ключей.
Вы пытаетесь сделать это локально? Это работает только в Службе приложений Azure.