Igo*_*gor 7 authentication soa jwt microservices
我一直在阅读服务/微服务之间的通信。
API网关对请求进行身份验证,然后将访问令牌(例如JSON Web令牌)安全地标识每个请求中的请求者到服务。服务可以在对其他服务的请求中包含访问令牌。
而且我正在将用户的访问令牌传递给下游服务,所以它看起来或多或少像这样:
但是,如果微服务之间的令牌已过期怎么办?
有很多方法可以解决此问题,这些方法似乎很合理:
验证用户的访问令牌并在API网关中创建短暂的JWT(内部令牌种类)
每个微服务都会验证JWT并生成自己的JWT以根据范围规则与其他微服务进行通信
因此,我们将拥有Auth服务来验证或请求令牌。
该任务是:
为了确保令牌在通过服务的过程中不会过期,我们可以在API网关层中进行检查:如果令牌在n(〜1)分钟内过期,则将其拒绝,因此用户必须使用刷新令牌获取一个新的访问令牌。这意味着令牌在完成请求所需的时间内始终有效。这种方法的优缺点是什么?
我有同样的问题,所以谷歌带我到这里。希望半年后回答这个问题还不算晚。
我不能说这是一个“答案”,但我希望我的想法可以激发任何人的灵感。所以这是一种“想法共享”。
我认为有两种方法可以解决这个问题:
如果令牌将在 10 分钟后过期,则在 6 分钟后刷新(仅作为示例)。因此,通过调整过期时间和刷新时间,确保您所说的情况永远不会发生。
另一种方式是调整系统架构。将 API 拆分为内部和外部。所有外部的令牌都将在 API Gateway 上检查,然后内部服务中没有令牌。
我想我们有很多方法可以避免这个问题提到的问题。根据不同的特定项目需求,我们应该考虑使用不同的安全设计。所以没有“银弹”。
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |