我有一个多个微服务体系结构,我打算在其中应用安全性。
:将在LDAP上进行身份验证,当用户通过身份验证时,将使用“秘密密钥”生成JSON令牌(JWT),该令牌将具有角色、过期时间等。在每次调用微服务时,该令牌将在头中传递授权。在我看来,我只有一个auth服务器,它对用户进行身份验证并生成JWT。
我的怀疑:
现在,当微服务接收到一个调用(在头中包含JWT )时,它是否总是访问auth服务器来验证令牌?
如果是的话,,,会不会导致对auth服务器的多个调用,从而导致错误的做法?
如果没有,客户端将如何验证令牌,以及auth服务器的作用域是什么?
发布于 2016-07-22 12:10:28
JWT总是被签名的,这样您就可以验证给定的令牌,而无需调用某个中央auth实例。auth服务器知道签名令牌的秘密,所有想要验证令牌的服务也需要有一种方法来检查这个令牌。
有两种不同的签署方式:
我更喜欢第二种方式,因为它减少了钥匙被偷的机会。如果其中一个正在使用的服务被劫持,则不会丢失任何秘密,因此攻击者可以创建有效的令牌。使用这种算法可能需要更多的时间/ cpu周期来验证,而不是以对称方式使用的简单散列。
有关不同机制的示例,请参见JWT官方页面:https://jwt.io/
https://stackoverflow.com/questions/38525388
复制相似问题