Azure KeyVault Secret Get выдает ошибку аутентификации - PullRequest
0 голосов
/ 05 мая 2020

Я настраиваю KeyVault для удаления секретов из моего. NET Azure WebApp и прохожу CredScan, и, насколько я могу судить, все подключено правильно.

KeyVault существует в той же группе ресурсов, что и приложение, и имеет необходимые секреты. Служба приложений имеет явные разрешения на чтение, установленные в политиках доступа KeyVault. И все правильные параметры используются для создания клиента API в коде в соответствии с документацией.

Однако, когда я использую стандартный вызов API для фактического доступа к секрету с помощью клиента, то есть

SecretClient client = new SecretClient(keyVaultURI, new DefaultAzureCredential());
string secret = client.GetSecret(secretName).Value.Value;

Я получаю следующую ошибку:

DefaultAzureCredential не удалось получить токен из включенных учетных данных. \ R \ nEnvironmentCredential аутентификация недоступна. Переменные среды настроены не полностью. \ R \ nАутентификация ManagedIdentityCredential недоступна, конечная точка управляемой идентификации не найдена. \ R \ nSharedTokenCacheCredential аутентификация недоступна. Не удалось получить токен для пользователя. Убедитесь, что вы прошли аутентификацию с помощью инструмента разработчика, который поддерживает Azure единый вход.

Я предполагаю, что должен быть какой-то требуемый шаг или параметр настройки, о котором я не знаю.

1 Ответ

1 голос
/ 10 мая 2020

Я резюмирую все решение, как показано ниже.

Если вы хотите DefaultAzureCredential получить доступ к Azure хранилищу ключей в службе приложений Azure, вам необходимо включить MSI и настроить правильную политику доступа для вы MSI в хранилище ключей Azure. Дополнительные сведения см. В документе

Подробные инструкции приведены ниже.

a. Включить назначенный системой MSI

  • Прокрутите вниз до группы Настройки на левой панели навигации.
  • Выберите Идентификатор .
  • На вкладке Назначенная системой установите для параметра Статус значение Вкл. . Нажмите Сохранить . enter image description here

б. Настройте политику доступа

  • Найдите свое хранилище ключей в «Диалоговом окне поиска ресурсов» в Azure портале.
  • Выберите «Обзор» и щелкните Политики доступа
  • Щелкните «Добавить новый» , выберите «Управление секретами» в раскрывающемся списке «Настроить из шаблона»
  • Щелкните « Выбрать принципала» и в поле поиска введите идентификатор объекта вашего веб-приложения MSI, созданного вами ранее. Выберите веб-приложение в списке результатов и нажмите «Выбрать» .
  • Нажмите «ОК» , чтобы добавить новую политику доступа, затем нажмите » Сохраните «, чтобы сохранить политики доступа
.
...