2011-01-08 71 views

回答

0

由于OpenID有一个指定的协议,它可以一直工作(假设提供者是符合的)或根本不工作。此外,由于OpenID协议(至少认证位,请参阅the specification)由简单的HTTP请求组成,因此您可以在桌面应用程序中实现该协议,前提是您知道如何进行此类请求。

尽管它通常被认为是一个坏主意,因为有更好的技术(OAuth),它破坏了用户体验(与浏览器中的OpenID不同 - 请参见OpenID For Desktop Applications: How? When?)。

延伸阅读:OpenID for Desktop Clients

+0

在IIW8会议上讨论的Linden的OpenID + OAuth解决方案听起来很有效。但这肯定不简单。 – 2011-01-08 15:36:59

0

在我看来,你应该提供一个小的网页浏览器窗口来完成验证。交互不会通过你的代码。

我不会建议使用web scrapers来做到这一点。在这样做的时候,你把你的代码放在用户的服务器和用户之间,这违背了依赖方看不到用户密码的约定。

OAuth是正确的技术使用的桌面应用程序,但它不使用OpenID的有现有的密码生态系统,这是不是OP的问题的一部分。

+0

你说得对。我不想看到密码。这就是整个问题。 – 2011-01-08 15:02:14

1

看看this question,在我看来,OAuth可以为你做到这一点。

+1

我也考虑过OAuth,但它忽略了使用现有OpenID生态系统密码的问题。 – 2011-01-08 15:03:35

1

不要做

即使这样做的尝试也显示了OpenID提供的安全模型中的根本缺乏理解。您必须问自己,您将为其桌面应用程序使用的密码保护着什么。它是否保护本地机器上的资产?如果是这样,OpenID是没有用的,因为欺骗网络是一件简单的事情,这样我就可以在不拥有OpenID的情况下进入桌面应用程序。你对用户识别欺骗很开放。你想保护网络资产吗? OpenID再次失败,因为它没有授权您的桌面应用程序访问这些网络资产,这表明其他身份验证正在OpenID后面进行,因此您再次不会添加任何值。

OAuth是适用于允许您的桌面应用程序访问和保护网络资源的协议。如果您要保护桌面计算机上的本地资产,则本地加密是唯一的方法。

相关问题