Моя служба Azure PaaS поддерживает аутентификацию напрямую с помощью OAUTH (Event Hub).
Как вы безопасно передаете учетные данные для этого конфиденциальным клиентам?
Извините, я новичок в облачной разработке.
Как вы упомянули, вы можете использовать хранилище ключей Azure для хранения секрета клиента вашей регистрации приложения Azure AD.
Просто добавьте клиентское приложение/учетную запись пользователя в Политику доступа к хранилищу ключей Azure с правильным разрешением, и только они смогут получить доступ к вашему хранилищу ключей Azure для получения секрета клиента.
Обновлять:
Вам нужно создать новую Регистрация приложения Azure AD , используемую для доступа к хранилищу ключей (это приложение AD предназначено только для доступа к хранилищу ключей, а не для доступа к концентратору событий), сохранить его идентификатор клиента и секрет в качестве переменных среды, а затем использовать SDK , чтобы узнать секрет. После этого используйте ClientSecretCredential для доступа к eventhub.
TokenCredential credential = new ClientSecretCredential("<tenantId>", "<clientId>", "<clientSecret>");
var fullyQualifiedNamespace = "<< FULLY-QUALIFIED EVENT HUBS NAMESPACE (like something.servicebus.windows.net) >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
await using (var producer = new EventHubProducerClient(fullyQualifiedNamespace, eventHubName, credential))
{
using EventDataBatch eventBatch = await producer.CreateBatchAsync();
eventBatch.TryAdd(new EventData(new BinaryData("First")));
eventBatch.TryAdd(new EventData(new BinaryData("Second")));
await producer.SendAsync(eventBatch);
}
Справочник — Использование субъекта Active Directory с клиентами Event Hub
Примечание. На самом деле, если ваш код будет развернут в службе Azure, которая поддерживает Managed Identity (MSI), например. Служба приложений Azure, виртуальная машина и т. д. Лучше всего использовать MSI для аутентификации в концентраторе событий, не нужно создавать приложения AD и использовать их секреты клиента, а также хранилище ключей.
Спасибо, Джой (снова). Таким образом, целевой ресурс — это концентратор событий. Что вам нужно будет разработать в клиенте, чтобы получить идентификатор/секрет клиента хранилища и применить его к коду, имеющему отношение к доступу к концентратору?