我们正在使用映射到 python flask api 的 Azure API 管理。我们正在进行 javascript ajax 调用(Azure API)。我们现在将订阅密钥直接放在 ajax 调用的查询参数中。
现在任何有权访问此密钥的人(通过按开发人员工具或查看源代码)也可以访问 api。
有没有办法在 ajax 调用中隐藏订阅密钥?
我们正在使用映射到 python flask api 的 Azure API 管理。我们正在进行 javascript ajax 调用(Azure API)。我们现在将订阅密钥直接放在 ajax 调用的查询参数中。
现在任何有权访问此密钥的人(通过按开发人员工具或查看源代码)也可以访问 api。
有没有办法在 ajax 调用中隐藏订阅密钥?
您可以在请求中使用 JSON Web Token (JWT),它具有签名和过期时间。
似乎我们无法在 JS 代码中隐藏订阅 ID。因为 JS 代码应该用这个 key 发送 http 请求,我们可以用 Fiddler 获取订阅 ID。另一种方法是,我们可以在服务器端发送这个 http 请求。我们可以使用Ajax调用服务端方法,服务端调用Azure管理API我们可以将订阅写入服务端。使用这种方法,其他人在 JS 代码中是看不到订阅 ID 的。
你可以利用 Azure Key Vault,它有助于保护云应用程序和服务使用的加密密钥和机密,以满足你的要求。您可以参考什么是 Azure Key Vault?更多细节,您还可以在本文的表格中找到几个经典场景。
目前,提供了适用于 Azure Key Vault 的 .Net 和 Node.js SDK。您可以利用Microsoft Azure SDK for Node.js - Key Vault Management将 Key Vault 集成到 Node.js 中,或者您可能需要通过Python 应用程序中的REST API实现