EventProcessorHost выбрасывает исключение криптографического алгоритма FIPS - PullRequest
0 голосов
/ 05 декабря 2018

Попытка создания экземпляра Microsoft.Azure.EventHubs EventProcessorHost в службе Windows вызывает следующее исключение:

Service cannot be started.
Microsoft.Azure.EventHubs.Processor.EventProcessorRuntimeException: 
Out of retries creating lease for partition --->
...
System.InvalidOperationException: 
This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

На сервере, на котором он запущен, для ключа FipsAlgorithmPolicy установлено значение Enabled (1), который применяется групповой политикой, поэтому его нельзя отключить (0).

1 Ответ

0 голосов
/ 05 декабря 2018

EventProcessorHost создает экземпляр класса CloudStorageAccount для внутреннего использования.Значением статического свойства по умолчанию «UseV1MD5» является true .Поэтому поведение по умолчанию любых объектов CloudStorageAccount, которые создаются, заключается в использовании некорректного алгоритма хеширования MD5, который не совместим с FIPS / FISMA.

Решение состоит в том, чтобы установить статическое свойство в значение false до создания экземпляра EventProcessorHost, чтобыубедитесь, что базовый CloudStorageAccount использует FIPS / FISMA-версию алгоритма хеширования MD5.

CloudStorageAccount.UseV1MD5 = false;
_eventProcessorHost = new EventProcessorHost("<event-hub-path>", 
    "<consumer-group-name>", 
    "<event-hub-connection-string>", 
    "<storage-connection-string>", 
    "<lease-container-name>");

На момент написания этой статьи мне не удалось найти это решение через Google, StackOverflow и т. д., инатолкнулся на это, анализируя внутренности этих классов и экспериментируя.

HTH

...