JWT 提供的唯一安全性就像它们生成的令牌在几秒钟或几分钟内有效(我们可以设置),但是当用户发送带有生成的 JWT 令牌的请求时,黑客可以轻松地在浏览器中侦听该请求 - >检查 - > 网络并重放攻击,即使令牌的有效期只有 30 秒,重放攻击仍然有很多时间。
我尝试使用加密的有效负载发送我的请求,黑客可能无法查看有效负载,但他仍然可以重放攻击以扰乱我的功能/计算。
您的 JWT 只能使用一次,因此在发送到 SP 后,它将立即失效并且不再被接受。这意味着您的 SP 也需要访问您列入黑名单的 JWT。
当然,您可能需要在 JWT 中嵌入刷新令牌,以便 SP 能够将请求反向发送到 IDP。
所以,IDP 上的算法:
if session does not exist then
try to authenticate the identity
end if
if the identity has a valid session then
send out a JWT
synchronize with the SP
once the JWT has been received, invalidate it
end if
在 SP
send request to IDP
receive JWT
if valid, then
authenticate
end if