【问题标题】:Is oauth2 appropriate for closed API access via mobile client?oauth2 是否适合通过移动客户端进行封闭式 API 访问?
【发布时间】:2011-07-03 22:52:12
【问题描述】:

我看到 OAuth2 被认为是下一个身份验证方案。上下文一直允许第三方客户端在不放弃用户名/密码的情况下进行身份验证。

如果我的 API 不是供第三方访问的——唯一的用户将是通过我提供的移动客户端访问的最终用户,那该怎么办?在这种情况下 OAuth2 是否仍然合适,或者我可以通过使用更流行的现有方案之一来获得,例如 HTTP AUTH?

【问题讨论】:

  • 您如何确保通话只对您的移动客户端开放?是不是不能让别人绕过你的手机客户端打个电话。
  • 安全性不应比用户通过 Web 浏览器向服务器进行身份验证更严格。我不会验证客户端软件,只是对 API 的访问。

标签: iphone ipad authentication oauth oauth-2.0


【解决方案1】:

如果你愿意,你可以做这种事情,它通常被称为“两条腿的 Oauth”。 Oauth 是一个相当复杂的协议。必须如此,因为它正在做一些相当复杂的事情。

无论如何,我们在工作中使用两条腿的 Oauth 来处理一些事情,这会使事情变得非常复杂。我们使用它的方式,它最终只是一个更复杂的 HTTP 基本身份验证版本,但没有任何真正的好处。两条腿的 oauth 有一些有效的用例,但我认为替换 Basic Auth 不应该是其中之一。 http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi 是一个很好的例子,说明了为什么你可能想要使用两条腿的 Oauth,还有一些分散在网络上。

我建议您远离它,除非您能想出一个好的、具体的理由来使用它。不要仅仅因为它很时髦而使用它。

【讨论】:

  • 我会亲吻开始。 HTTP 认证+HTTPS。我会在需要时升级。
  • 好计划。我不得不求助于阅读规范只是为了弄清楚足以让一些简单的客户端/服务器身份验证运行。但也许我只是感到困惑......
  • 我总是阅读规范。它是唯一的权威来源,对于复杂的身份验证内容,您确实需要该主题的权威 - 对于某些教程或其他内容来说,弄错重要细节太容易了。