微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决验证事件传递到事件处理程序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 举报,一经查实,本站将立刻删除。