桌面应用程序中委派身份验证的最佳实践

时间:2012-03-08 22:47:07

标签: authentication oauth openid windows-8 microsoft-metro

我正在编写一个Windows 8 Metro应用程序(客户端 - 服务器),并希望允许我的用户使用他们现有的帐户(Windows Live,Google,Facebook,Yahoo,...)进行登录。

目前,我在客户端上使用OAuth 2.0来检索可在服务器端使用的代码,以从提供程序获取访问令牌并读取有关该帐户的基本信息。

我最近读过OpenID,但似乎没有桌面应用程序的实现。此外,Windows Live似乎不支持OpenID。

所以我的问题是:

  • 使用OAuth仅委派身份验证是不好的做法吗?
  • 我是否应该在ASP.NET中为我的客户端的API访问实现自己的OAuth提供程序,并将身份验证任务委派给OAuth Web表单中的OpenID-Providers?

1 个答案:

答案 0 :(得分:1)

如果您只是想要对用户进行身份验证,那么OAuth就太过分了(毕竟,您要问您的客户是否可以代表他们使用用于进行身份验证的服务);或者,作为一个更具体的例子,如果您将身份验证委托给Twitter,您还可以阅读他们所有的联系人以及许多其他您不需要的东西 - 这可能足以让一些客户使用您的应用程序,并给予这是一个糟糕的商店评论。

当客户已经与Web服务建立关系时,它会略有不同,并且了解您的应用程序是其客户端。