My Azure PaaS服务支持直接使用OAUTH(事件中心(进行身份验证。
您如何将此凭据安全地分发给机密客户?
对不起,我是云开发的新手。
如前所述,您可以使用Azure密钥库来存储Azure AD应用程序注册的客户端机密。
只需将具有正确权限的客户端应用程序/用户帐户添加到Azure密钥库访问策略,然后只有他们才能访问您的Azure密钥库以检索客户端机密。
更新:
您需要创建一个新的Azure AD应用程序注册,用于访问密钥库(此AD应用程序只是访问密钥库,而不是访问eventhub(,将其客户端id和机密存储为环境变量,然后使用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客户端一起使用
注意:实际上,如果您的代码将部署到支持托管身份(MSI(的Azure服务,例如Azure应用程序服务、VM等,则最佳做法是使用MSI对事件中心进行身份验证,无需创建AD应用程序并使用其客户端机密,也无需使用密钥库。
参考-使用Azure Active Directory验证托管身份以访问事件中心资源