2016-12-26 191 views
3

我对智威汤逊JWT令牌SSO流

比方说,我们有单独的授权服务器,它提供了智威汤逊的客户端应用程序/服务器和资源服务器,SSO流一个简单的问题,其中客户端尝试与访问令牌。

enter image description here

的问题是,应该通过自身(例如份额Auth服务器专用证书)资源服务器验证令牌或应其要求验证服务器验证JWT为每个客户端的请求?

回答

3

JWT specification是考虑到可扩展性而构建的。 JWT设计的目的是任何可信的应用程序都可以验证签名块。如果您关心性能,请使用SHA-256 HMAC并使用共享密钥在每个端点上本地验证签名。对JWT使用非对称签名会产生开销,但是您可以将公钥存储在验证但不颁发JWT的端点上,然后将颁发令牌的中央权威机构上的私钥存储。验证和发布之间这种关注的分离减少了令牌创建过程可能被攻击者破坏的可能性(阅读:纵深防御)。

如果您需要实时吊销令牌,那么需要一个验证每个令牌的中央权威机构。这是有效的,但是它破坏了JWT设计的目的,并且系统最好只发布一个加密的随机数作为标记。