web-services - RESTful用户身份验证服务

标签 web-services api rest restful-authentication

大家好,这似乎是经常讨论的话题,但是我想对使用RESTful服务进行身份验证提出一个简单而简单的问题。场景如下:

  • 有一个系统可以容纳应用程序的注册用户。系统公开了用于访问这些用户的RESTful API。
  • 有一个具有登录表单的前端应用程序。该应用程序可以是内部的,也可以是外部的。
  • 前端应用程序需要使用User系统中的数据来对用户进行身份验证。

  • 现在的问题是如何针对用户系统中的数据对在客户端应用程序中输入了凭据(用户名/密码)的用户进行身份验证,以确保其安全性和高性能?出于这个问题的原因,假设客户端应用程序在某种Intranet内部,但是这些应用程序将不驻留在同一台计算机上,而只能通过服务进行通信。

    我了解将应用程序“由超媒体驱动”的想法,但是我们应该能够提供过滤/搜索服务。例如,考虑如下资源和API:
  • http://example.com/users
  • GET-检索所有用户(分页,超媒体驱动)
  • POST-创建新用户
  • 不支持PUT/DELETE
  • http://example.com/users/[id]
  • GET-返回id = {id}
  • 的用户的完整表示形式
  • PUT-更新用户,采用任何预定义的媒体类型
  • DELETE-删除用户(具有适当的授权)
  • 不支持POST

  • 基于上述内容,我的想法是在用户列表上使用客户端应用程序GET,并按用户名进行过滤。该服务将哈希密码和盐返回给客户端,客户端将执行身份验证。

    有什么想法吗?

    最佳答案

    如果我正确理解了您的问题,则您正在寻求实现可处理身份验证的通用服务,以便可以将其重新用于不同的应用程序。

    我建议您看看OAuth,它是专门为此问题域而构建的。

    关于web-services - RESTful用户身份验证服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2018416/

    相关文章:

    java - 接收多部分表单数据 - Jersey 1.19.1 REST

    javascript - 在 .getJson() 中传递同一参数的多个值

    jquery - 如何从不同的应用程序远程调用Grails Web服务

    rest - Coldfusion 10 REST - 500 内部服务器错误

    asp.net-mvc - REST API 嵌套资源应该由哪个 Controller 处理?

    web-services - 监控 HTTP 请求和响应(无网络浏览器)

    wcf - 我遇到 WCF 服务错误 ....Found 节点类型 'Element',名称为“tns :downloadOrders”

    c# - 无法从 AngularJS 将简单的字符串数据发布到 Web API

    api - Amazon API - 如何创建自定义负载均衡器?

    ios - 我应该如何创建和传递用户 token ?