繁体   English   中英

如何使用 API 密钥保护 REST API

[英]How to Secure REST API with API Keys

我的架构由前端服务器和后端/API 服务器组成。 最终用户可以访问 API,但是我希望前端服务器能够访问最终用户无法访问的 API 的某些路由(更高权限)。

这个问题有两个部分:

(1) 我需要为最终用户使用 API 密钥。 这样做的最佳做法是什么?

(2) 前端如何进入API Key系统? 客户需要登录他们的帐户才能访问这些从前端可用的提升权限。 (例如启用 webhook)

我的应用程序托管在 Google Cloud App Engine Standard env 上,我使用的是 node.js 10。如果有人对此架构有任何建议,那就太好了。

我知道这个问题有点笼统,但我花了几个小时在网上四处寻找,我的问题不是如何使用 API 密钥,也不是如何验证前端,而是:做这两个的最佳实践是什么一起?

谢谢,尼基塔

JWT ( https://jwt.io/introduction/ ) 可以帮助解决这个问题。 您可以在请求 header 中包含 API 密钥以及 JWT。 一些服务接受 API 密钥作为 URL 参数,但将此类敏感数据放入 header 是更好的方法。

JWT 可以在用户认证时存储在 cookie 中,并可以与请求一起传输到服务器。

服务器可以使用 API 密钥来验证和解码这个 JWT 使用服务器环境中可用的密钥来授权访问,因为解码这个 JWT 可以揭示用户的类型,因此需要帮助的级别。

与多种变体一起使用的直接方法。 您可以从基本版本开始,并逐步添加图层/功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM