Есть ли способ получить доступ к хранилищу ключей Azure без Azure AD?
Я хочу использовать хранилище ключей Azure для хранения строк подключения консольного приложения, которые не имеют аутентификации Azure Ad.
Итак, есть ли способ получить доступ к хранилищу ключей Azure без Azure AD?
2 ответа
К сожалению, вы не можете получить доступ к хранилищу ключей Azure без проверки подлинности Azure AD.
Клиентским приложениям хранилища ключей потребуется доступ к конечным точкам Azure Active Directory для проверки подлинности. Используемая конечная точка зависит от конфигурации клиента Azure AD, типа участника (пользователя или участника службы) и типа учетной записи.
Подробнее об аутентификации хранилища ключей Azure вы можете узнать в этом официальном документе.
Кроме того, если это важно для вас, вы можете опубликовать свою идею на этой странице UserVoice. Команда Azure увидит это.
Не напрямую, нет. Для хранилища ключей требуется AAD-аутентификация. Вам нужно будет что-то / кто-то зарегистрированный в AAD, чтобы получить секреты (ваши строки подключения) из хранилища ключей.
Вы специально хотите использовать Key Vault для хранения строк подключения или просто хотите где-то хранить их в Azure, и они не зафиксированы в Azure Key Vault? Если вы не зафиксированы в Key Vault и не используете его ни для чего другого, возможно, стоит рассмотреть возможность помещения строк подключения в учетную запись хранилища Azure? Вы можете сохранить строки подключения в таблице Azure, в файле в BLOB-объекте Azure или в файле Azure и т. Д. Что бы вам ни подошло лучше - оно все равно будет зашифровано в покое. https://docs.microsoft.com/en-us/azure/storage/
Я предполагаю, что вы не хотите проходить аутентификацию пользователя, вы просто хотели бы получить строки подключения. Мой ответ основан на этом предположении.
Вам все еще нужно что-то, что действует как посредник для вашего консольного приложения. Что-то должно пройти проверку подлинности в Azure, чтобы получить доступ к строкам подключения. Я бы предложил использовать функцию Azure, активированную по протоколу https, в качестве простого и легкого способа сделать это. Вы можете использовать авторизацию на уровне функций, в которую вы встраиваете функциональную клавишу в код вашего нативного приложения. Он использует этот код в вызове GET для конечной точки функции, чтобы установить полномочия для вызова функции. Я нашел эту ссылку полезной, когда сделал это: http://dontcodetired.com/blog/post/Azure-HTTP-Function-Authorization-with-Function-Keys
Функция может затем либо:
a) выдать ограниченную по времени подпись общего доступа к вашей учетной записи хранения, где находятся строки подключения, если вы поддерживаете такой подход, https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1
ИЛИ ЖЕ
б) фактически сохранить строки подключения в локальном файле в каталоге функций или в качестве параметров приложения функции, если вы на самом деле не хотите использовать шифрование в покое в Azure (локальные файлы доступны через опциональную функцию ExecutionContext
параметра FunctionDirectory
член)
ИЛИ ЖЕ
c) если вы все еще хотите использовать Key Vault, зарегистрируйте свое функциональное приложение в AAD и попросите его позвонить в Key Vault от имени вашего консольного приложения.
Функциональное приложение https затем может выступать в качестве вашего привратника с простой функциональной клавишей, встроенной в консольное приложение в качестве авторизации. Вы можете сохранить тип возвращаемого значения функции только для тех строк соединения, которые вам нужны, и не открывать что-либо еще до своего консольного приложения.
Служба веб-API ASP.NET могла бы работать так же хорошо, но природа функций с оплатой за использование может сделать ее более рентабельной, если ее часто не вызывать (YMMV).
Все это основано на предположении, что вы не хотите аутентифицировать своих пользователей. Если это так, но они внешние и вы не хотите использовать AAD, вы можете заглянуть в Azure B2C для авторизации доступа. Я еще не пробовал, но вот ссылка:
https://azure.microsoft.com/en-gb/services/active-directory-b2c/