首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于REST API令牌的身份验证

基于REST API令牌的身份验证
EN

Stack Overflow用户
提问于 2012-03-20 00:09:30
回答 3查看 175.1K关注 0票数 124

我正在开发一个需要身份验证的REST API。由于身份验证本身是通过HTTP上的外部we服务进行的,因此我推断我们应该分发令牌,以避免重复调用身份验证服务。这就引出了我的第一个问题:

这真的比仅仅要求客户端对每个请求使用HTTP Basic Auth并将调用缓存到身份验证服务服务器端更好吗?

基本身份验证解决方案的优势在于,在开始请求内容之前,不需要与服务器进行完整的往返。令牌在范围上可能更灵活(即只授予特定资源或操作的权限),但这似乎比我的更简单的用例更适合OAuth上下文。

目前令牌的获取方式如下:

代码语言:javascript
复制
curl -X POST localhost/token --data "api_key=81169d80...
                                     &verifier=2f5ae51a...
                                     &timestamp=1234567
                                     &user=foo
                                     &pass=bar"

所有请求都需要api_keytimestampverifier。“验证器”由以下方式返回:

代码语言:javascript
复制
sha1(timestamp + api_key + shared_secret)

我的意图是只允许来自已知方的呼叫,并防止呼叫逐字重复使用。

这样就足够好了吗?杀伤力不足?Overkill?

有了令牌,客户端就可以获取资源:

代码语言:javascript
复制
curl localhost/posts?api_key=81169d80...
                    &verifier=81169d80...
                    &token=9fUyas64...
                    &timestamp=1234567

对于最简单的调用来说,这似乎是非常冗长的。考虑到shared_secret最终将被嵌入到(至少) iOS应用程序中,我假设可以从该应用程序中提取它,这是否提供了超越错误的安全感的东西?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9773664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档