REST认证/授权

我需要一些关于如何保护我的应用程序的建议:

我有一个使用Spring MVC 3的REST服务

我有我的客户端应用程序,使用Ext GWT 2.2

用户凭证仅在服务器端提供。

SSL可用

REST服务只能由经过认证的用户使用。

我已阅读过关于HTTP摘要,基于令牌的授权,oAuth等,但我需要一些关于如何保护我的应用程序的澄清和建议,以及哪些方法对我来说是最好的。


这里是我们为我们的应用程序创建的方法,工作得很好,而且非常安全。

这是一个非常概念性的解释,有很多代码支持这个,FYI

  • 当用户进行身份验证或创建帐户时,服务器将返回一个x.509证书,base64编码,该证书对用户是唯一的。 服务器存储一份副本。

  • 每次客户端需要访问REST API时,客户端都会创建一个由以下内容组成的JSON字符串。

  • 用户唯一ID(用户ID)

  • GUID或UUID,保证此呼叫是唯一的(CallID)(防止重播攻击)
  • 剩余调用的每个参数的字典(键/值的集合)
  • 然后我们使用x.509公钥对该字符串进行加密,然后将其编码回base64字符串,并将此加密值并将UserID添加到我们称之为令牌的json对象。

    然后我们将令牌放入每个调用的头部,并将其称为:X-Auth-UserToken

    在每次调用服务器获取令牌时,根据用户ID查找用户证书,然后验证令牌的加密部分可以使用服务器为用户保留的私钥解密。

    一旦解密,服务器就会根据自己的calllog数据库采用CallID并验证它是唯一的。

    如果检出,则用户通过认证。

    一旦用户通过身份验证,您就可以根据用户uniqueID应用您自己的授权规则。

    当然,以上都是通过SSL。

    让我知道你是否需要我钻取任何零件。

    链接地址: http://www.djcxy.com/p/22271.html

    上一篇: REST authentication / authorization

    下一篇: DotNetOpenAuth OpenID Flow w/ Own Auth Server