Web服务的OpenId实现 - 需要提示/帮助

时间:2009-07-31 17:50:52

标签: openid dotnetopenauth

假设我正在尝试使用OpenId来依赖我使用Web服务的n层网站。如果有些步骤看起来很奇怪,请告诉我。

1)我希望用户在文本框中输入他们的OpenId网址。例如:http://vidalsasoon.myopenid.com

2)然后,用户点击提交,使用OpenId api将输入的Url发送到我的Web服务。使用服务器上的OpenId API,我可以构建一个正确的OpenId请求。

3)用户收到他应该获得身份验证的Url。

4)用户被重定向到他们的提供商,登录,被重定向回我的网站。

在这里混淆:现在步骤2 - 4发生在用户和提供者之间。在这些步骤中不涉及我的Web服务。

我希望用户此时将他们想要的用户名和OpenId发送回Web服务。问题是我怎么知道用户/客户端没有篡改过它们?

1 个答案:

答案 0 :(得分:0)

有两种方法可以验证用户是否已正确验证

  1. 在您自己和OpenID提供商之间建立共享密钥。当用户登录到提供者时,它与他们共享秘密,然后他们与您共享秘密,然后您可以根据原始共享密钥进行验证。

  2. 通过OpenIDs check_authentication规范。一旦用户向您传递信息以进行验证,请拨打此电话。 Link to Spec