在微服务之间传播访问令牌

问题描述 投票:0回答:1

我正在开发微服务应用程序,其中客户端应用程序通过

access token
调用将
orders
发送到
POST
微服务。保存订单时,需要调用库存微服务来更新库存。 Inventory 微服务
updateIntentory
方法也应该受到保护。

在此用例中,我应该将相同的

access token
传播到
inventory
微服务并限制 api 访问以更新库存,还是应该利用
client-credentials
授予流程来允许
saveOrder 中的 
order
 方法
微服务调用
updateInventory
中的
inventory microservice
方法。

注意:

order
inventory
微服务都充当资源服务器。 什么是正确的做法。

spring-security oauth-2.0 microservices spring-security-oauth2
1个回答
8
投票

好问题:

边界

如果您调用属于其他人的外部 API,您肯定会使用客户端凭据来获取授权您调用该 API 的令牌。

微服务

如果数据所有者相同,那么最常见的是您可以简单地转发访问令牌。这就是 OAuth 的工作原理:只需简单代码的可扩展架构:

  • 客户端获取具有多个 API 范围的访问令牌
  • 每个API都会验证JWT
  • 每个 API 都会验证自己的范围
  • 每个 API 都信任 JWT 中的声明并使用它们进行授权

范围最佳实践文章针对现实世界的系统解释了这一点。

信任边界和更高权限

为高安全性操作获取新令牌是很常见的,例如使用支付范围重定向用户,或在调用不太受信任的 API 之前使用 令牌交换。但这应该是例外而不是规则。

© www.soinside.com 2019 - 2024. All rights reserved.