【问题标题】:Authentication for a REST based web app architecture基于 REST 的 Web 应用架构的身份验证
【发布时间】:2013-06-17 06:12:45
【问题描述】:

我需要帮助来设计我的网络应用程序。我想做一个需要身份验证的 REST Web 服务,以及一个访问此 Web 服务以获取数据的 Web 应用程序。所有用户都存储在外部数据库中(如 openldap、活动目录或其他)。

 _____________        __________________
|             |      |                  |
|   web app   |----->|   REST service   |
|_____________|      |__________________|

                      _______________
                     |               |
                     |    user db    |
                     |_______________|

问题是:我需要在web app和web service上进行认证,还是web app可以通过web service验证登录?

希望我的问题可以理解

编辑:澄清情况:我的网络服务是独立的,任何类型的应用程序都可以访问它(如网络应用程序、智能手机应用程序、curl 等)。 我认为我的问题也需要澄清。我想知道是否可以在服务中创建所有身份验证逻辑。我想像这样的事情:

  1. 应用使用 HTTP 基本身份验证查询资源 http://mywebservice.com/login
  2. 如果凭据有效,则响应将类似于{"loginStatus":true},如果无效,则响应为false

这是一个可能的解决方案吗?安全吗?

【问题讨论】:

  • REST 服务是否计划为任何可以访问 REST 服务主机的用户都可以访问的独立服务,或者它是某种 Web 应用程序的中间件/后端?
  • 是的,服务计划是独立的
  • 我想了解的是:是否只能通过 WEB 接口(Web 应用程序)访问其余服务返回的数据,还是任何授权都可以查询通过 rest 服务 api 获取原始数据(例如使用 curl:curl -H "Accept:application/json" http://mywebapp.example.net/rest/myresource?start=1&end=99999999)。
  • 是的,任何类型的应用程序都可以访问它,而不仅仅是网络应用程序
  • 首先你应该看看stackoverflow.com/questions/4608225/…。第二件事是您必须考虑如何保存/验证身份验证令牌以及在访问您的网络服务时如何传递它。

标签: web-services rest authentication web-applications architecture


【解决方案1】:

第一件事......“我需要在Web应用程序和Web服务上进行身份验证,还是Web应用程序可以通过Web服务验证登录?” ......两者都是可能的......取决于您的选择和实施。但是为了在所有情况下使流程统一以使用 DB,来自 Web 应用程序的调用应该转到 Web 服务,如图所示。我认为在登录时,客户端应该调用 Web 应用服务器,并且 Web 应用调用 Web 服务来查看数据库以检查凭据。

有很多方法。有时网络应用会大量使用 AJAX,他们会从客户端本身直接调用 REST 服务来获取数据或检查凭据。

【讨论】:

  • 感谢您的回答。我想我会按照你的建议通过网络服务来做所有事情。感谢@andih 的帮助,我在 cmets
猜你喜欢
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
相关资源
最近更新 更多