Rest 使用secret的节点请求身份验证

Rest 使用secret的节点请求身份验证,rest,authentication,Rest,Authentication,假设我的产品中有RESTAPI,并且我希望它只对指定的用户可访问 我知道这个用户列表,我正在寻找一些方法让他们安全地访问我的API 我不想用用户名和密码创建身份验证,生成令牌和其他东西 我能想象的是,我给了我的每个用户一些秘密字符串 他们在每一个请求中都使用它 我需要的是这种解决方案的一些示例/教程/名称, 我肯定这方面有一些标准,但我不知道 我知道这是一个无所谓的问题——很抱歉,我只是在问;) 提前谢谢 您正在寻找一种简单的共享秘密身份验证。在这种情况下,一个简单的解决方案就是将机密作为参数进


假设我的产品中有RESTAPI,并且我希望它只对指定的用户可访问

我知道这个用户列表,我正在寻找一些方法让他们安全地访问我的API

我不想用用户名和密码创建身份验证,生成令牌和其他东西

我能想象的是,我给了我的每个用户一些秘密字符串 他们在每一个请求中都使用它

我需要的是这种解决方案的一些示例/教程/名称,
我肯定这方面有一些标准,但我不知道

我知道这是一个无所谓的问题——很抱歉,我只是在问;)


提前谢谢

您正在寻找一种简单的共享秘密身份验证。在这种情况下,一个简单的解决方案就是将机密作为参数进行检查(也可以在请求头中)。例如,客户端可以调用:

https://example.com/valuable-stuff?secret=2Hard2Gue$$
您可以在web请求处理程序中实现这一点,如下所示:

SECRET = '2Hard2Gue$$'
function showValuableStuff() {
   if (params['secret'] != SECRET)
     return NotFounderError;
   // now retrieve and output the resource 
}
一些实际考虑是:

  • 为此使用安全连接以防止机密泄漏(即安全的HTTPS公开)
  • 如果要硬编码源代码,请小心将其存储在何处。一个更奇特的解决方案是使用一个在服务器上设置的环境变量,因此您可以将其保留在源代码之外。或者至少加密源中包含秘密的部分

虽然这对于简单的解决方案来说很好,但它违反了基本的安全责任原则,因为您与多人共享秘密。你可能想考虑每个人都分配他们自己的随机字符串,在这种情况下,你也可以使用它,因为它被Apache和其他Web服务器很好地支持,并且仍然是一个轻量级的方法。