首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用微服务保护基于消息的通信

如何使用微服务保护基于消息的通信
EN

Software Engineering用户
提问于 2020-09-30 20:03:10
回答 1查看 286关注 0票数 0

在基于HTTP的微服务之间通信的上下文中,我对许多OpenID连接和OAuth2概念感到满意。我目前正在利用Azure AD。

在基于HTTP的场景中,我通常会使用代理流在微服务之间进行通信,其中我需要在访问令牌中维护用户标识。

我的问题是,当使用队列(例如服务总线)和处理来自队列的消息的服务需要调用另一个微服务来收集信息时,处理这个问题的好方法是什么。在我的例子中,被调用的微服务可以根据请求和用户的上下文执行相当复杂的授权。

我知道我基本上可以进行服务到服务的调用,让处理排队消息的微服务强制授权,但是我不想在调用服务中重复这个逻辑。

如果我试图将访问令牌包含在消息中或其他类似的方法中,那么在处理消息时,它将面临过期的风险。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2020-10-02 21:30:37

在大多数情况下,消息通过队列处理得如此之快,以至于它实际上与同步操作没有什么不同。

如果您担心,您可以始终将下游服务配置为忽略expirey日期,或扩展其有效性。

然而。我会在您的堆栈中划一条线,然后说“此时我接受或拒绝请求”之后,您将不再使用auth令牌。

该命令已被接受,并将由作为具有所需权限的服务用户运行的工作人员处理。它是如何实施和需要多长时间是不重要的。

通过这种方式,您可以调用仍然可以撤销用户权限的点。这使我们很容易确定你的风险和边缘情况。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/416430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档