Периодическая ошибка при доступе к хранилищу ключей Azure - набор ключей не существует - PullRequest
0 голосов
/ 21 июня 2019

Я использую хранилище ключей Azure в своем веб-приложении MVC.Я подключаюсь к хранилищу ключей, используя сертификат.Ниже приведен мой пример кода

AssertionCert = GetCertificate(WebConfigurationManager.AppSettings[KeyVaultConstant.ApplicationID], WebConfigurationManager.AppSettings[KeyVaultConstant.CertificateThumbprint], false);    
var keyClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback((authority, resource, scope) => GetToken(authority, resource, scope, AssertionCert)));
var secrets = keyClient.GetSecretsAsync(WebConfigurationManager.AppSettings["VaultUri"]).GetAwaiter().GetResult();

В некоторых случаях я получаю сообщение об ошибке Криптографическое исключение: Набор ключей не существует

В ходе исследования я обнаружил, что должен датьРазрешение IIS_IUser на папку, в которой хранится первичный ключ.Я сделал это, но время от времени я получаю эту ошибку.Это не происходит каждый раз.

1 Ответ

1 голос
/ 25 июня 2019

Вы правы по поводу разрешения.Вот шаги по устранению неполадок для того же самого:

Этапы устранения неполадок:

  • Сначала проверьте учетную запись службы, на которой запущен пул приложений CRM или пул приложений ADFS
  • Теперь откройте диспетчер сертификатов, в личном магазине найдите свой сертификат.Щелкните правой кнопкой мыши сертификат и выберите опцию «Управляемые личные ключи»
  • . В окне разрешений убедитесь, что вашей учетной записи службы пула приложений предоставлено соответствующее разрешение (разрешение на чтение должно быть в порядке, в противном случае вы можете предоставить Полный контроль)
  • На снимке экрана ниже я дал полное разрешение на мой шаблонный сертификат * .test.local для моей учетной записи пула приложений - "test \ AppPoolSvc"

enter image description here

  • После получения разрешения выполните IISRESET и попробуйте получить доступ.

Для получения дополнительной информации, пожалуйста, проверьте .Также, пожалуйста, попробуйте перезагрузить компьютер, чтобы увидеть, работает ли он.

...