我有一个简单的问题;我正在构建一个微服务项目,在我的服务前面有一个API网关。实际上,我所有的ms(微服务)都有一个内部域:超文本传输协议://ms. mydomain.lanMS都在处理身份验证的Api网关后面。外部无法访问所有msAPI。
因此,所有流量都通过Api网关:https://api.mydomain.it。
这才是问题的核心。
在Api Gateway中的auth期间,我检测用户并创建一个TOKEN(不是真正的jwt,一个简单的编码字符串)
该令牌使用标头发送到ms请求。每个MS解码令牌(不是JWT),获取用户和处理权限等…
一切都很好,但是……我的疑问是:每个微服务应该执行“令牌验证”,还是没有必要?
实际上,微服务解码一个简单的字符串;我确信外部无法访问ms,因此没有人可以创建假令牌。
但是…正确的方法是这样做吗?我想创建一个JWT,以便每个MS都必须使用口服务验证令牌,但是…我为什么要添加这个开销?真的有必要吗?我必须向必须验证令牌的服务添加一个额外的调用…或者我可以将jwt秘密存储在NFS位置,让ms自己验证令牌…
哪个是最好的方法?在每个微服务中,令牌的验证真的有必要吗?
提前感谢。
你使用的模式很好。api网关处理身份验证并将请求传输到内部服务。ms信任网关并仅执行授权。
是否使用JWT令牌进行内部通信由您决定。如果ms可以使用它进行授权,一个简单的字符串就足够了。
我在构建微服务时使用相同的模式。