Как получить SecureString из Azure KeyVault - C # - PullRequest
1 голос
/ 06 ноября 2019

У меня есть Azure KeyVault, предоставляющий пароль, который я хотел бы прочитать в SecureString.

Если я попытаюсь прочитать строку как SecureString из объекта IConfiguration, он вернет нуль:

config.GetValue<SecureString>("AdminPW") == null

Я могу прочитать строку в виде строки и преобразовать в SecureString, но это выглядит как грязный хак:

 var pass = new SecureString();
 foreach (var c in config.GetValue<string>("AdminPW").ToCharArray())
 {
    pass.AppendChar(c);
 }

Есть ли способ получить SecureString непосредственно изнаследуют IConfiguration?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Для всех, кто это проверяет, невозможно напрямую получить SecureString из Azure KeyVault.

0 голосов
/ 07 ноября 2019

Как сказал Ганс, это не безопасность.

Если используемые вами сборки не имеют встроенной поддержки сериализации SecureString, именно здесь вы пользуетесь Key Vault как службой для секретов. нужно передать им только зашифрованную полезную нагрузку, которая, когда вы делаете дешифрование, немедленно сохраняется в SecureString (побайтный байт CryptoStream в SecureString, за которым следует удаление для очистки буферов из памяти).

Так что не советуем вамполучить SecureString из Azure KeyVault.

Вы можете обратиться к этой проблеме Azure KeyVault client should support SecureStrings.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...