【问题标题】:mobile application: how do I provide client authentication移动应用程序:如何提供客户端身份验证
【发布时间】:2011-09-28 08:02:32
【问题描述】:

我有一个健身移动应用的想法,我一直在基于这个想法为 iPhone(基于 Obj-C)、Android(基于 java)、WebOS(基于 html5)和诺基亚 Qt 开发应用程序。

我现在需要向我的应用程序的用户提供身份验证。服务器是典型的 LAMP 系统。我希望我的移动应用程序的用户能够无缝且安全地登录到服务器。

我并不是一个真正的网络程序员,因此我会很感激关于如何提供身份验证的想法。我听说过 OpenID……但我不确定它是否可用于验证移动客户端。有人提到了 OAuth,但我不确定 a) 它是否适用于这个用例 b) 如果我的客户没有 Facebook/Twitter 帐户怎么办?

任何想法都将不胜感激!

【问题讨论】:

  • LAMP 服务器使用什么语言/工具包?

标签: authentication mobile client-server lamp


【解决方案1】:

我做了类似的事情,并使用 gnuTLS 和 x.509 证书从客户端进行身份验证。它无缝且易于集成。

https://idlebox.net/2009/apidocs/gnutls-2.6.6.zip/gnutls_7.html#SEC65

对我来说使用这种方法的重要一点是 https 连接只是简单的方法调用,握手过程本身将由 gnuTLS 库处理。

我的应用程序是一个 iOS 应用程序,我使用 xcode 来完成,这很容易。我认为在 Java 方面会更容易,但我不确定诺基亚部分。编码是 C 语言,因此是跨平台的。

但是,如果您正在寻找基于 iOS 的解决方案,我推荐 http://developer.apple.com/library/ios/#samplecode/AdvancedURLConnections/Introduction/Intro.html

但对于需要跨所有应用程序使用相同证书且无需用户输入或工作的跨平台解决方案,我仍然建议使用 gnuTLS 并使用 x509 证书。

【讨论】:

    【解决方案2】:

    如果您已经在某处拥有 LAMP 服务器,那么设置实现您自己的用于密码验证的 API 应该相当容易——重要的是您通过 HTTPS 来实现! (因此无法嗅探用户 ID/密码)。您的网络服务器需要一个数字证书 (CERT)。

    在您的 LAMP 系统上,您可以将用户数据保存在其数据库中。您的 LAMP 服务器还应该允许创建本地用户帐户(当然)。

    您可以单独使用此解决方案,也可以将其与 OpenID 或 OAuth 一起使用!

    这意味着,如果您的客户没有 Facebook 或 Twitter,他们仍然可以在您的 LAMP 服务器上创建一个帐户。

    http://en.wikipedia.org/wiki/OAuth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-23
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多