【问题标题】:Best practice for delegated authentication in desktop application桌面应用程序中委托身份验证的最佳实践
【发布时间】:2026-01-26 22:25:01
【问题描述】:

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

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

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

所以我的问题是:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      最近更新 更多