通过Microsoft身份对Azure EventHub进行授权

时间:2019-11-06 10:04:24

标签: .net azure-active-directory access-token azure-eventhub

我需要将数据发送到事件中心,但是需要授权用户这样做。

当前,我正在使用以下代码实现我的目标。

var ehClient = EventHubClient.CreateWithAzureActiveDirectory(
                new Uri($"sb://{EventHubNamespace}.servicebus.windows.net/"),
                EventHubName,
                async (audience, authority, state) =>                {
                    var app = PublicClientApplicationBuilder.Create(ClientId)
                        .Build();                  

                    var authResult = await app.AcquireTokenInteractive(new[] { $"{audience}/.default" }).ExecuteAsync();


                    return authResult.AccessToken;
                },
                $"https://login.windows.net/{TenantId}");

await ehClient.SendAsync(new EventData(Encoding.UTF8.GetBytes("test data")));

使用此解决方案,用户每次将数据发送到EventHub时都必须进行身份验证。是否没有允许发送AcessToken而不是authCallback的解决方案?似乎有无数种有关如何请求AcessToken的示例,但是我找不到用于使用令牌访问资源的示例。 EventHub。

0 个答案:

没有答案