Извлечь значение из Key Vault для использования в локальном файле web.config

Я хочу сохранить секрет в хранилище ключей Azure, использовать настройки приложения в службе приложений (которая работает), и когда я запускаю приложение, я могу получить данные.

Теперь я хочу получить это значение в своей локальной разработке с помощью Visual Studio.

Спасибо за помощь в этом видео: https://thewikihow.com/video_vEaCnhvggz0

Если перейти к отметке 9 минут, я смог

  • свяжите KV со службой приложений, используя управляемое удостоверение
  • сохранить значение в моем KV
  • извлеките значение из KV и используйте его в качестве параметра приложения (в службе приложений), которое затем отображается как ссылка на Key Vault в источнике.

Используя значение для этого как:

@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)

Затем укажите Secret_Value в коде, используя:

в моем web.config:

<add key = "Secret_Value" value = "localDev" />

С#

var Secret = ConfigurationManager.AppSettings["Secret_Value"];

который, когда я запускаю приложение локально на VS, возвращает "localDev", но правильно, когда я запускаю приложение в службе приложений, это возвращает значение из KV

Как мне получить значение на моем локальном разработчике? потому что, очевидно, я не могу этого сделать:

<add key = "Secret_Value" value = "@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)" />

Это возможно? Я знаю, что могу добавить KeyVault как пакет Nuget и получить что-то вроде:

   var client = new SecretClient(new Uri(keyVaultURL), new DefaultAzureCredential());
        var secret = client.GetSecret(CRM_Secret_KeyVaultName);

но я не хочу этого.

Я хочу вытащить значение из локального вебконфига прямо из KV, возможно ли это? Без написания дополнительного кода? спасибо за любые ответы

Если вы хотите получить значение из KeyVault, вам как минимум потребуется пройти аутентификацию.

stuartd 03.05.2024 22:38

как из С#? что ты имеешь в виду, извини?

John 04.05.2024 00:28

В VS вам необходимо войти в систему, используя учетные данные, которые вы используете для Azure, и это даст вам правильные учетные данные, однако могут существовать другие настройки и ограничения, которые вы установите в Azure. Используйте DefaultCredntials, и все будет в порядке, поскольку он будет циклически перебирать все возможные, пока вы не получите аутентификацию.

Simon Price 04.05.2024 00:54

Использование хранилища ключей со ссылкой на локальном компьютере невозможно.

Harshitha 04.05.2024 02:47

Спасибо за ответы… так можно ли как-нибудь сделать это локально без написания кода?

John 06.05.2024 05:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
5
267
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

так можно ли как-нибудь сделать это локально без написания кода?

  • Мы не можем напрямую связать ссылку Key Vault в локальном файле конфигурации.

  • Я попытался установить и получить секрет со ссылкой на локальный файл.

Вы можете видеть, что это не работает.

  • При локальной настройке Key Vault из подключенной службы по умолчанию устанавливаются соответствующие пакеты NuGet для доступа к Key Vault (по умолчанию это единственный вариант, доступный локально).

В этом случае вы можете разделить локальную и производственную конфигурации.

  • Вы можете сохранить секретное значение непосредственно в локальном файле конфигурации (Web.config).

ИЛИ

Вы можете установить секретные значения в secrets.xml.

  • И можно продолжить использование ссылки на хранилище ключей в развернутых настройках приложения службы приложений (что вы уже сделали) без какого-либо кода.

AFAIK, вы можете получить секреты Azure Key Vault либо с помощью кода, либо с помощью ссылки на Key Vault только в развернутой Службе приложений Azure.

Спасибо @RyanHill-MSFT за комментарий.

Key Vault — это размещенная служба, поэтому ее нельзя использовать при локальной разработке. Рекомендуется использовать секреты разработки.

Вы также можете перейти по ссылке GitHub, которая объясняет то же самое.

Спасибо, что нашли время все это написать, я наградил ответом, потому что вы ответили на мой вопрос о том, как это возможно, но теперь у меня есть новая проблема, если у вас есть время, посмотрите мой новый вопрос stackoverflow.com /questions/78439877/… еще раз спасибо

John 07.05.2024 04:53

Конечно, проверю и сообщу.

Harshitha 07.05.2024 05:09

Другие вопросы по теме

Azure AI Studio — вызовы API развертывания индекса ML GPT4 не работают из-за ошибки access_token
Роли, назначенные управляемому удостоверению в Azure, отсутствуют в токене
Могу ли я иметь секреты, срок действия которых не истекает в системе единого входа Microsoft через Azure Microsoft Entra ID?
Az Powershell – невозможно прочитать содержимое файла CSV
Бета-версия C# Graph позволяет получить все типы назначений с их правилами обнаружения для всех Win32LobApps за один вызов
Служба связи Azure — ошибка «Приложение пытается получить доступ к службе 1fd5118e-2576-4263-8130-9503064c837a». Тогда известное решение не работает
Распространение самостоятельного расширения Chrome через организацию, управляемую Azure
Можно ли использовать PhraseListGrammar с IntentRecouncer в Microsoft Speech SDK для Java?
Публикация артефакта в Azure Devops Pipeline: ошибка получения разрешения на доступ к пути
Сбой контейнера Grobid при использовании приложений-контейнеров Azure