【发布时间】:2021-12-06 13:58:13
【问题描述】:
我正在开发微服务应用程序,其中客户端应用程序通过POST 调用将access token 发送到orders 微服务。保存订单时,需要调用库存微服务来更新库存。 Inventory 微服务updateIntentory 方法也应该受到保护。
在这个用例中,我应该将相同的 access token 传播到 inventory 微服务并限制 api 访问以更新库存,还是应该使用 client-credentials 授权流来允许 saveOrder 方法在order微服务调用inventory microservice中的updateInventory方法。
注意:order 和 inventory 微服务都充当资源服务器。
什么是正确的方法。
【问题讨论】:
-
我认为您所描述的是
orders和inventory服务充当resource server。如果orders服务调用inventory,你可以实现token-relay模式或者使用client_credentials和一个单独的client_id,这取决于两个服务是否共享相同的授权方案。 -
@SteveRiesenberg 订单和库存微服务都充当资源服务器。如何实现
token-relay模式?另外,authorization scheme是什么 -
在 cmets 提出新问题之前请先 google。
-
@SteveRiesenberg 我没有找到任何实用指南,因此在评论中询问。
-
“授权方案”是指您的应用程序对授权的要求。例如,如果两个服务都需要
ROLE_USER来执行所需的操作,而一个需要与另一个完全不同的访问级别;另一个例子是,您是否确定用户可以在两种服务之间以相同的方式访问什么,而不是非常不同的方式。
标签: spring-security oauth-2.0 microservices spring-security-oauth2