我正在为一个Web应用程序开发一个REST API,到目前为止我们已经在内部开发了几个配套应用程序。现在我们正在考虑向外部开发人员开放,我们希望向API添加令牌,以帮助确定谁在提出请求,并且通常帮助管理它的使用。此时,我们使用https和基本身份验证对API进行用户身份验证。
我们一直在讨论的令牌方案非常简单,每个开发人员将分配一个或多个令牌,这些令牌将作为参数传递给每个请求。
我的问题是,如果你在做过之前做过类似的事情(你做得多或少,你是如何处理安全性等)并且你有什么建议吗?
谢谢!
答案 0 :(得分:6)
首先,您可能需要查看http://OAuth.net。根据您的使用情况,它可能会提供您所需的安全性。
对于令牌,它是大多数协议的BLOB,包括OAuth。您可以以任何格式提供所需的任何信息。
以下是我们的工作,
希望有所帮助!
答案 1 :(得分:2)
您可能还想考虑添加基于时间的令牌,以允许您限制请求有效的时间。这将有助于尝试进行重播攻击的人。
您将根据上述developerKey进行握手调用以获取/分配时间有效令牌。该令牌将存储在本地并传递回调用者。
然后,开发人员将在请求中使用此密钥来验证请求和开发人员。
例如,该密钥可用于5分钟或10个请求或您定义的任何内容。在此之后,生成的基于时间的令牌将从有效列表中删除,并且无法再使用。然后开发人员必须要求新的令牌。
答案 2 :(得分:1)
UUID非常适合您喜欢的任何临时随机密钥。不可预测且快速生成,碰撞不太可能,它们实际上是独一无二的。制作好的会话密钥。