在 javascript 中保护 Azure API rest 调用

Secure Azure API rest calls in javascript

本文关键字:API rest 调用 Azure 保护 javascript      更新时间:2023-09-26

我们正在使用映射到python flask api的Azure API管理。我们正在进行javascript ajax调用(Azure API)。我们现在将订阅密钥直接放在 ajax 调用的查询参数中。

现在,任何有权访问此密钥(通过按开发人员工具或查看源代码)的人也可以访问 API。

有没有办法在 ajax 调用中隐藏订阅密钥?

您可以在请求中使用 JSON Web 令牌 (JWT),该令牌具有签名和过期时间。

似乎我们无法在JS代码中隐藏订阅ID。因为 JS 代码应该使用此密钥发送 http 请求,我们可以使用 Fiddler 获取订阅 ID。另一种方法是,我们可以在服务器端发送此 http 请求。我们可以使用 Ajax 调用服务器端方法,服务器端调用 Azure 管理 API,我们可以将订阅写入服务器端。使用此方法,其他人无法在 JS 代码中看到订阅 ID。

可以利用 Azure 密钥保管库来帮助保护云应用程序和服务使用的加密密钥和机密,以满足你的要求。可以参考什么是 Azure 密钥保管库?有关更多详细信息,还可以在本文的表中找到几个经典方案。

目前,提供了适用于 Azure 密钥保管库的 .Net 和 Node.js SDK。可以在 Node 中集成密钥保管库.js利用适用于 Node .js 的 Azure SDK - 密钥保管库管理Microsoft或者可能需要通过 Python 应用程序中的 REST API 实现