gpt4 book ai didi

authentication - REST 认证/授权

转载 作者:行者123 更新时间:2023-12-03 23:21:11 27 4
gpt4 key购买 nike

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

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

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

用户凭据仅在服务器端可用。

可用 SSL

REST 服务只能由经过身份验证的用户使用。

我已经阅读了有关 HTTP Digest 、基于 token 的授权、oAuth 等的信息,但我需要一些关于如何保护我的应用程序的说明和建议,以及哪些方法在我的情况下是最好的。

最佳答案

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

这是一个非常概念性的解释,有很多代码支持这一点,仅供引用

  • 当用户验证或创建帐户时,服务器返回一个 x.509 证书,base64 编码,对用户来说是唯一的。服务器存储一个副本。
  • 每次客户端需要访问 REST API 时,客户端都会创建一个包含以下内容的 JSON 字符串。
  • 用户唯一 ID (UserID)
  • 保证此调用唯一的 GUID 或 UUID,(CallID)(防止重放攻击)
  • 其余调用的每个参数的字典(键/值的集合)

  • 然后,我们使用 x.509 公钥加密该字符串,并将其编码回 base64 字符串,并获取此加密值并将 UserID 添加到我们称为 token 的 json 对象中。

    然后我们将 token 放入每个调用的 header 中,并将其命名为:X-Auth-UserToken

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

    解密后,服务器获取 CallID 并根据自己的 calllog db 验证它是唯一的。

    如果它 checkout ,则用户已通过身份验证。

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

    当然,以上都是通过 SSL 的。

    如果您需要我深入研究任何部分,请告诉我。

    关于authentication - REST 认证/授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811088/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com