如果我的服务通过Sync HTTP进行通信,则我会将JWT令牌传递给每个服务,以便每个服务对请求进行身份验证,并确保该请求仅为经过身份验证的用户提供数据。
但是,如果我将通信机制更改为使用异步消息传递(例如RabbitMQ),则现在如何在发起事件的用户范围内验证事件。是否应将同一JWT作为事件消息的一部分传递。我看到此机制存在问题,因为JWT可能在服务处理消息的时间到期了,这意味着消息将不会得到处理。
这是一般的方法和最佳实践,还是应该创建某种受信任的策略并将其作为别名传递给原始JWT,以说明用户可以执行并可以访问的内容,或者是否有其他方法?
用户调用第一个微服务后,您应该信任服务之间的通信,因此您不需要jwt或标准令牌。您可以传入原始用户或其范围的某种标识,以确保接收方服务相应地过滤信息。
该标识甚至可以是没有到期的jwt令牌,因为它将是仅在您的服务内部使用的令牌,因此没有恶意用户篡改它的风险。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句