C# 对这些开放id';工作

C# 对这些开放id';工作,c#,openid,C#,Openid,有人能解释一下这些开放ID系统是如何工作的吗 当用户重定向到openid提供程序并进行身份验证时,该提供程序会将什么发送回原始网站?是网站验证的加密文本,还是必须与开放id提供商进行实际通信才能验证?如果您对所有血淋淋的细节感兴趣,可以查看规范 不过,从高层次上讲,它非常简单(这里的意思是: 该站点将用户重定向到OpenID提供程序,并发出身份验证请求 OpenID提供程序尝试对用户进行身份验证 OpenID提供程序将用户重定向到站点,并提供有关身份验证是失败还是成功的信息 然后,站点验证这些信

有人能解释一下这些开放ID系统是如何工作的吗


当用户重定向到openid提供程序并进行身份验证时,该提供程序会将什么发送回原始网站?是网站验证的加密文本,还是必须与开放id提供商进行实际通信才能验证?

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

不过,从高层次上讲,它非常简单(这里的意思是:

  • 该站点将用户重定向到OpenID提供程序,并发出身份验证请求

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

  • OpenID提供程序将用户重定向到站点,并提供有关身份验证是失败还是成功的信息

  • 然后,站点验证这些信息,检查从响应中返回的一些字段,并向OpenID提供者发出直接请求(不通过用户浏览器的请求);所有这些都是为了防止欺骗等

  • 因此,第一步和第二步非常简单,但后两步有些复杂。步骤3中的响应尤其包含“nonce”字段,该字段对于请求是唯一的,以及站点随后将验证的几个字段。该验证在第四步进行,其中进行了一些检查。值得注意的是,返回URL和签名


    当然,在引擎盖下还有很多事情要做,但如果这是您想要了解的信息,那么规范是最好的地方。

    也许这应该放在Meta上-P