我在另一个SO thread中找到了这个:
步骤:
步骤6-8如何安全?我看到它的方式,客户端正在与提供商进行身份验证,并将结果报告给我们的服务器。
什么阻止客户伪造身份验证结果?
答案 0 :(得分:2)
首先,身份验证结果由提供程序进行加密签名。还有其他安全措施可以防止其他攻击。
引用OpenID 2.0 specification, section 11.:
当依赖方收到肯定的断言时,它必须在接受断言之前验证以下内容:
- “openid.return_to”的值与当前请求的网址(Section 11.1)匹配
- 发现的信息与断言(Section 11.2)
中的信息相匹配- 此OP中尚未接受与“openid.response_nonce”(Section 11.3)
相同值的断言- 断言上的签名有效,所有需要签名的字段都已签名(Section 11.4)
客户端当然可以发送虚假的身份验证结果,但不会通过验证。