Получите значение из Azure Ссылка на хранилище ключей (управляемая идентификация) - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь получить секретные значения из azure хранилища ключей в Azure Службе приложений. У моей службы приложений есть управляемая идентификация. В хранилище ключей Azure эта управляемая идентификация добавляется в разделе «Назначения ролей» как «Участник хранилища ключей». Также в хранилище ключей azure были добавлены политики доступа, чтобы дать «Получить» разрешение на управляемая идентификация AppServices Теперь в моем коде c# я пытаюсь получить значение элемента AppSetting, используя код ConfigurationManager.AppSettings ['кое-что'];

В моей службе приложений azure, в разделе В настройках приложения я добавил ключ с именем «что-то», и он имеет значение, указывающее на ссылку хранилища ключей, как показано ниже:

@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)

Теперь я могу получить значение из настроек приложения , но вместо действительного значения он выводит вывод как @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/c96f02080254f109c51a1f1cdb1931)

Я ожидаю, что вывод будет значением, которое я установил, а не самой строкой ссылки keyvault.

I использую. Net MVC 4.7 веб-приложение

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

На самом деле я понял, что даже с помощью ConfiguraionManager.AppSettings ["keyname"] также работает нормально. В моем случае я сделал все, как указано выше, но включил опцию «Slot Deployment» в конфигурации строки подключения в службе приложений. После включения я могу получить доступ к своим секретам хранилища ключей.

0 голосов
/ 18 февраля 2020

Как сказал Джуннас, вы просто добавляете MSI веб-приложения в политику доступа к хранилищу ключей.

1.Включите управляемое удостоверение веб-приложения System-assign.

2.Добавьте удостоверение в keyvault Access policy с секретным разрешением Get.

3.Добавьте ссылку на хранилище ключей в настройки приложения для веб-приложения.

4. Используйте Environment.GetEnvironmentVariable("AppsettingName");, чтобы получить секретное поле.

Вот вывод:

enter image description here

...