如何确保RESTAPI仅由已知使用者访问

如何确保RESTAPI仅由已知使用者访问,api,rest,http,api-key,secret-key,Api,Rest,Http,Api Key,Secret Key,为了确保REST API仅由已知使用者访问,客户端应用程序使用密钥对每个HTTP请求进行签名,然后使用API密钥将生成的签名发送到服务器 对于JavaScript客户端,API密钥和机密在脚本本身中硬编码。。。那么,这种机制如何确保发送请求的客户机实际上就是它应该是的客户机呢?我这样问是因为如果秘密是在JavaScript中硬编码的,每个人都可以查看它,窃取秘密,并在其他应用程序中使用它 有没有更安全的方法向消费者公开API?我知道Stackoverflow中还有其他的帖子涉及这个话题。。。但我

为了确保REST API仅由已知使用者访问,客户端应用程序使用密钥对每个HTTP请求进行签名,然后使用API密钥将生成的签名发送到服务器

对于JavaScript客户端,API密钥机密在脚本本身中硬编码。。。那么,这种机制如何确保发送请求的客户机实际上就是它应该是的客户机呢?我这样问是因为如果秘密是在JavaScript中硬编码的,每个人都可以查看它,窃取秘密,并在其他应用程序中使用它


有没有更安全的方法向消费者公开API?我知道Stackoverflow中还有其他的帖子涉及这个话题。。。但我不清楚的是如何处理消费者授权和用户授权。在我的例子中,使用者授权决定是否允许第三方访问我的API,并且与业务逻辑无关,而用户授权是在应用程序级别(即,在使用者被识别和授权之后)

您可以检查域并提供SOP设置,以仅限于已知域。 如果ip保持不变,则可以按源ip删除请求

此外,您可以在服务器上有一个秘密生成器,客户端需要从服务器上调用该生成器,并将其传递到js代码上,然后可以将其附加到api调用。这样,使用SOP的客户机可以确保他们的js没有被注入。您可以在提供响应之前检查客户端IP


基本上,这取决于你要服务的消费者类型。他们是企业客户吗?等等。

在谷歌搜索之后,我发现了这一点,并实施了它描述的解决方案;-)