如何让我的桌面应用程序进入OpenID依赖方?非Web应用程序可以使用OpenID吗?
回答
由于OpenID有一个指定的协议,它可以一直工作(假设提供者是符合的)或根本不工作。此外,由于OpenID协议(至少认证位,请参阅the specification)由简单的HTTP请求组成,因此您可以在桌面应用程序中实现该协议,前提是您知道如何进行此类请求。
尽管它通常被认为是一个坏主意,因为有更好的技术(OAuth),它破坏了用户体验(与浏览器中的OpenID不同 - 请参见OpenID For Desktop Applications: How? When?)。
在我看来,你应该提供一个小的网页浏览器窗口来完成验证。交互不会通过你的代码。
我不会建议使用web scrapers来做到这一点。在这样做的时候,你把你的代码放在用户的服务器和用户之间,这违背了依赖方看不到用户密码的约定。
OAuth是正确的技术使用的桌面应用程序,但它不使用OpenID的有现有的密码生态系统,这是不是OP的问题的一部分。
你说得对。我不想看到密码。这就是整个问题。 – 2011-01-08 15:02:14
不要做。
即使这样做的尝试也显示了OpenID提供的安全模型中的根本缺乏理解。您必须问自己,您将为其桌面应用程序使用的密码保护着什么。它是否保护本地机器上的资产?如果是这样,OpenID是没有用的,因为欺骗网络是一件简单的事情,这样我就可以在不拥有OpenID的情况下进入桌面应用程序。你对用户识别欺骗很开放。你想保护网络资产吗? OpenID再次失败,因为它没有授权您的桌面应用程序访问这些网络资产,这表明其他身份验证正在OpenID后面进行,因此您再次不会添加任何值。
OAuth是适用于允许您的桌面应用程序访问和保护网络资源的协议。如果您要保护桌面计算机上的本地资产,则本地加密是唯一的方法。
- 1. 您可以使用openshift来部署非Web应用程序吗?
- 2. 使用java web应用程序的OpenId - 我应该使用RPXNow吗?
- 3. Apple App可以被非Apple应用程序使用吗?
- 4. 休息概念可以应用于非Web应用程序?
- 5. 可以使用Kinect,HTML5和jQuery开发Web应用程序吗?
- 6. Web应用程序可以使用JNDI查找记录器吗?
- 7. 可以在.NET Web应用程序中安全使用点吗?
- 8. iPhone Web应用程序可以使用相机吗?
- 9. 你可以使用openID作为iPhone应用程序的单一登录吗?
- 10. 作为OpenId提供程序的Appengine应用程序。可能吗?
- 11. DirectX可以使WPF应用程序渲染得非常慢吗?
- 12. 我可以将单页应用程序称为Web 3.0应用程序吗?
- 13. Dart可以用于基本的CRUD Web应用程序吗?
- 14. 测试用于Mac的Web应用程序 - IPad可以吗?
- 15. 使用LDAP支持的Web应用程序可以使用SSO吗?
- 16. 我可以在多用户.NET Web应用程序中使用非线程安全库吗?
- 17. 是否有可能在非web应用程序中使用togglz
- 18. NHibernate SysCache是否可以在非web应用程序中工作?
- 19. 非网络应用程序可以进行价打电话吗?
- 20. 使用twilio https://www.twilio.com/ Android应用程序可以调用应用程序吗?
- 21. iPhone应用程序可以销售其他应用程序吗?
- 22. asp.net应用程序可以与Google应用程序集成吗
- 23. Flex Web应用程序可以访问sqlite数据库吗?
- 24. Web应用程序可以监听()websocket吗?
- 25. 您可以在Java EE Web应用程序中实现Vue.js吗?
- 26. Web应用程序可以处理设备吗?
- 27. 我可以在Chrome中清除Web应用程序吗?
- 28. 完全信任ASP.NET Web应用程序 - 可以吗?
- 29. 本体可以替代Web应用程序的RDBMS吗?
- 30. 我可以在IIS6上部署.net 4.0 web应用程序吗?
在IIW8会议上讨论的Linden的OpenID + OAuth解决方案听起来很有效。但这肯定不简单。 – 2011-01-08 15:36:59