我正在开发一个需要身份验证的REST API。由于身份验证本身是通过HTTP上的外部we服务进行的,因此我推断我们应该分发令牌,以避免重复调用身份验证服务。这就引出了我的第一个问题:
这真的比仅仅要求客户端对每个请求使用HTTP Basic Auth并将调用缓存到身份验证服务服务器端更好吗?
基本身份验证解决方案的优势在于,在开始请求内容之前,不需要与服务器进行完整的往返。令牌在范围上可能更灵活(即只授予特定资源或操作的权限),但这似乎比我的更简单的用例更适合OAuth上下文。
目前令牌的获取方式如下:
curl -X POST localhost/token --data "api_key=81169d80...
&verifier=2f5ae51a...
×tamp=1234567
&user=foo
&pass=bar"
所有请求都需要api_key
、timestamp
和verifier
。“验证器”由以下方式返回:
sha1(timestamp + api_key + shared_secret)
我的意图是只允许来自已知方的呼叫,并防止呼叫逐字重复使用。
这样就足够好了吗?杀伤力不足?Overkill?
有了令牌,客户端就可以获取资源:
curl localhost/posts?api_key=81169d80...
&verifier=81169d80...
&token=9fUyas64...
×tamp=1234567
对于最简单的调用来说,这似乎是非常冗长的。考虑到shared_secret
最终将被嵌入到(至少) iOS应用程序中,我假设可以从该应用程序中提取它,这是否提供了超越错误的安全感的东西?
https://stackoverflow.com/questions/9773664
复制相似问题