对这些开放id的工作方式感到困惑

时间:2010-01-22 01:15:24

标签: c# openid

有人可以解释这些开放ID系统的工作原理吗?

当用户重定向到openid提供程序并进行身份验证时,提供程序会将哪些内容发送回原始网站?是网站验证的一些加密文本还是必须与open-id提供商进行实际通信以进行验证?

1 个答案:

答案 0 :(得分:9)

如果您对所有血腥细节感兴趣,可以查看规范here

在较高的层面上,它非常简单(从the 2.0 spec's overview解释):

  1. 网站将用户重定向到OpenID提供商以及身份验证请求

  2. OpenID提供程序尝试对用户进行身份验证

  3. OpenID提供程序将用户重定向到该站点,以及有关身份验证是否失败或成功的信息。

  4. 然后,网站会验证此信息,检查从响应中返回的某些字段,以及向OpenID提供商发出直接请求(不通过用户浏览器的请求);这一切都是为了防止欺骗等

  5. 所以第一步和第二步非常简单,但后两者有一些复杂性。来自步骤3的响应特别包含“nonce”字段,该字段对于请求是唯一的,并且该站点将验证几个字段。此验证在第四步中进行,进行一些检查。值得注意的是,返回URL和签名。

    当然还有更多的内容,但如果这是你所追求的那种信息,那么规格就是最好看的地方。