嘿伙计们,这似乎经常被讨论,但我想围绕用RESTful服务进行身份验证做一个简单,淡化的问题.方案如下:
有一个系统可以容纳注册用户的应用程序.系统公开RESTful API以访问这些用户.
有一个具有登录表单的前端应用程序.应用程序可以是内部的,也可以是外部的.
前端应用程序需要使用用户系统中的数据来验证用户.
现在的问题是如何根据用户系统中的数据验证在客户端应用程序中输入其凭据(用户名/密码)的用户,以确保其安全性和高性能?为了这个问题,假设客户端应用程序是某种Intranet的内部应用程序,但应用程序不会驻留在同一台机器上,只能通过该服务进行通信.
我理解让应用程序"超媒体驱动"的想法,但我们应该能够提供过滤/搜索服务.例如,考虑以下资源和API:
http://example.com/users
GET - 检索所有用户(分页,超媒体驱动)
POST - 创建新用户
不支持PUT/DELETE
http://example.com/users/[id]
GET - 返回id = {id}的用户的完整表示
PUT - 更新用户,接收任何预定义的媒体类型
删除 - 删除用户(具有适当的授权)
POST不受支持
基于以上所述,我的想法是在用户列表中使用客户端应用程序GET,按用户名进行过滤.该服务将哈希密码和salt返回给客户端,客户端将执行身份验证.
思考?
如果我正确理解您的问题,您正在寻求实现将处理身份验证的通用服务,以便您可以将其重用于不同的应用程序.
我建议你看一下为这个问题域构建的OAuth.