KeyVaultClient, выполняющий один запрос с использованием GetSecretAsync через клиентскую библиотеку, генерирует дополнительный вызов Key Vault - PullRequest
0 голосов
/ 04 января 2019

Мы используем библиотеку KeyVaultClient в приложении в Service Fabric, которое вызывает хранилище ключей для чтения различных данных конфигурации, хранящихся в виде секретов. Код аутентифицируется в хранилище с помощью участника AAD с сертификатом SSL. Код создает один запрос, но когда мы просматриваем журналы Key Vault, для каждого отдельного запроса, создаваемого кодом, хранилище дважды ударяется. Первое попадание генерирует 401 Несанкционированный, а затем второй запрос - Успех.

Похоже, что библиотека, возможно, сначала пытается получить доступ к хранилищу ключей без учетных данных в нашем запросе, прежде чем продолжить выполнение запроса, который мы создаем. Второй запрос работает именно так, как и ожидалось. Это кажется ненужным. У кого-нибудь был подобный опыт?

1 Ответ

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

Это ожидаемое поведение. Azure Keyvault имеет шаблон проверки подлинности, который всегда выполняет хотя бы один неаутентифицированный вызов хранилища . Это связано с тем, что в некоторых хранилищах есть требования, чтобы сообщения к ним шифровались с помощью ключей, защищенных HSM. Эта информация возвращается в запросе аутентификации после первого неаутентифицированного вызова.

По этой причине каждый раз, когда вы отправляете запрос в хранилище, к которому вы еще не подключились в этом процессе, sdk сначала отправляет запрос с пустым телом и без заголовка авторизации. Это приведет к 401, который будет иметь информацию об аутентификации и протоколе сообщения.

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

...