CloudEvents有一个用于事件传递的webhooks规范:用于事件传递的HTTP1.1 Web钩子-版本1.0。除其他外,CloudEvents Webhooks规范详细说明了webhook验证和授权的要求。正如规范中所描述的那样,CloudEvents Web挂钩授权方法“依赖于OAuth 2.0承载令牌RFC6750模型”。
Azure事件网格支持CloudEvents:在事件网格中使用CloudEvents v1.0模式
事件网格对web钩子授权的支持仅限于“在创建事件订阅时向web钩子URL添加查询参数”,如下所述:验证对Azure事件网格资源的访问权限。
考虑到OAuth承载令牌可以具有 有限寿命,因此我需要一种刷新令牌的方法。但是,据我所知,事件网格除了在定义web钩子订阅时对查询参数中的令牌进行硬编码之外,没有提供其他机制。
我的理解是对的吗?有什么建议吗?
编辑:在这个场景中,web钩子端点不是托管在Azure上的外部端点。它是一个只支持CloudEvents webhooks规范的第三方端点。
发布于 2020-05-02 13:11:42
您的问题中提到的文档(如使用Azure AD验证事件传递到web钩子端点 )不够清楚。看起来,有两种方法(混合)来保护事件传递到web钩子。
在这种情况下,填充以下属性所需的订阅:
azureActiveDirectoryTenantId
azureActiveDirectoryApplicationIdOrUr 请注意,验证过程不依赖于上述属性,换句话说,您的订阅可以成功创建,但是事件不会被传递到web钩子端点以避免AAD授权错误。
如果基于订阅TenantId和ApplicationId值的AEG将从AAD获得访问令牌(Bearer),则事件将传递给带有授权头中的访问令牌的webhook端点处理程序。
现在,您的订阅服务器处理程序对于它的使用有了新的(有效的)访问令牌。
https://stackoverflow.com/questions/61551191
复制相似问题