验证事件传递到事件处理程序Azure 事件网格

问题描述

我想让第三方组织以安全的方式订阅我的事件网格事件。我正在尝试使用以下文章中提到的 Azure AD 执行此操作。

https://docs.microsoft.com/en-us/azure/event-grid/security-authentication

https://docs.microsoft.com/en-us/azure/event-grid/secure-webhook-delivery

在事件订阅创建中,我选择了WebHook端点类型并输入了组织的端点。为了进行概念验证,我从 Azure AD 创建了一个 Azure 函数 (HttpTrigger) 作为 webhook 端点。

Endpoint

在附加功能选项卡下,我激活了 AAD 身份验证。通过这种方式,我设法向 webhook 端点发送了一个不记名令牌。

AAD Authentication

我的问题是事件订阅者应该如何验证来自事件发布者的令牌?

如果您想向受不记名令牌身份验证保护的 API 发出请求,您首先需要从 API 请求令牌,然后使用该令牌发出请求,然后 API 会对其进行验证。在这种情况下,令牌发行者和验证者是相同的。

在事件发布者/订阅者场景中,订阅者不是令牌发行者。这就是让我困惑的地方。

当令牌被解密时,它的来源就很明显了。

{
  "aud": "00000000-0000-0000-0000-000000000000","iss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/","iat": 1612970997,"nbf": 1612970997,"exp": 1613057697,"aio": "Lorem ipsum viverra","appid": "00000000-0000-0000-0000-000000000000","appidacr": "2","idp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/","oid": "00000000-0000-0000-0000-000000000000","rh": "Lorem ipsum viverra","roles": [
    "role"
  ],"sub": "00000000-0000-0000-0000-000000000000","tid": "00000000-0000-0000-0000-000000000000","uti": "Lorem ipsum viverra","ver": "1.0"
}

我应该通过一些关于事件发布者的常量来验证令牌还是有更优雅的方法?

更新:如果有人对我的实现方式感兴趣,我会在这里留下一个演示项目。

https://github.com/sahinad/Event.Grid.Subscriber.Api

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...