我试图了解openid连接代码流。
在授权码流中,授权码来自前通道。然后使用客户端ID和客户端凭据通过反向通道进行id_token / access_token。另外,它很容易遭到代码替换攻击,并且可能允许黑客模仿here
冒充用户。但是我无法理解混合流如何阻止这种情况。我读了here。但是,是什么阻止了黑客同时替换代码和id_token?可能是我无法阅读线路。但是请帮助我理解这一点。
更新
通读更多之后,我相信id_token具有有关 aud 的信息,该信息最初是发给哪个客户端的。因此,恶意客户端的密码是 aud (并且恶意客户端不能用原始客户端的Client_Id替换它,因为它是由发行人签名的),因此,原始客户端将能够验证是否签发给它。这是正确的理解吗?另外,在其他情况下,黑客可能能够同时替换代码和id_token吗?
答案 0 :(得分:0)
您是正确的:令牌是由发行者签名的,并且包含客户必须检查的aud
声明,这将防止与其他客户端的令牌交换。