Azure API 管理 - 如何保护订阅密钥

Azure API Management - How to secure Subscription key

技术栈

现在在这种情况下,订阅密钥将通过浏览器 -> 检查 -> 网络选项卡可见

我们要确保用户不能使用 UI 键进行 API 呼叫 使用 Proxy 会隐藏密钥,但现在任何人都可以调用代理 url 来获取数据。

如何保证安全?

将您的密钥存储在 Azure 密钥保管库中并从您的前端应用程序访问, https://medium.com/@ayanfecrown/azure-key-vault-node-js-step-by-step-tutorial-af131a78e220

正如 nmbrphi 和 garethb 所提到的,我们无法控制最终用户在浏览器网络选项卡中看到的内容。

并且由于我们在系统中没有可用的用户身份验证,只有 IP 身份验证,因此无法直接从 API.

控制 UI 密钥的使用

为了确保我们有更安全的 UI 调用,我们实现了可用于任何 javascript 应用程序的自定义逻辑

参考 http://billpatrianakos.me/blog/2013/09/12/securing-api-keys-in-a-client-side-javascript-app/

这至少帮助我区分了 UI 呼叫 API 和 API 直接呼叫与其他 application/tools 像邮递员。

感谢大家的帮助。

你找到解决办法了吗?我使用 nginx 作为代理服务器,并在调用微服务时将订阅密钥保存为 proxy_set_header subscription-key abc-def。这样订阅密钥就不会暴露给 UI 并将通过 nginx 转发给 API 管理服务。