假设我有产品的REST api,我希望它只能由指定的用户访问。
我知道用户列表,我正在寻找一些方法让他们安全地访问我的API。
我不想用用户名和密码创建身份验证,生成令牌和这些东西。
我能想象的是,我给每个用户一些秘密字符串 他们在每个请求中都使用它。
我需要的是这种解决方案的一些示例/教程/名称, 我确定有一些标准,但我不知道。
我知道这是一个愚蠢的问题 - 抱歉,我只是在问;)。
提前致谢!!
答案 0 :(得分:1)
您正在寻找一种简单的共享密钥身份验证。在这种情况下,一个简单的解决方案就是将秘密检查为param(或者它可以在请求头中)。例如,客户端可以调用:
https://example.com/valuable-stuff?secret=2Hard2Gue$$
您可以在Web请求处理程序中将其实现为:
SECRET = '2Hard2Gue$$'
function showValuableStuff() {
if (params['secret'] != SECRET)
return NotFounderError;
// now retrieve and output the resource
}
一些实际考虑因素是:
虽然这对于简单的解决方案来说很好,但它违反了问责制的基本安全原则,因为您与多人共享秘密。您可能想要考虑为每个人分配他们自己的随机字符串,在这种情况下,您也可以使用HTTP Basic Authentication,因为它得到了Apache和其他Web服务器的良好支持,并且仍然是一种非常轻量级的方法。