flask - 不同版本端点部署的 ApiKey 安全性
问题描述
一些上下文:我们有一个在 kubernetes(GKE) 上运行的烧瓶应用程序。我们使用谷歌云端点来管理对我们 api 的访问和密钥管理。我们通过 flask-restplus 创建文档并使用它来配置我们的端点。一个重要的必须是我们的招摇 UI 文档必须可以在没有 ApiKey 的情况下访问,因此我们在端点配置中设置了“x-google-allow”:“all”。以上所有工作。
问题:我们希望在 API 中部署重大更改,因此我们选择了此处描述的新版本。这意味着一个新的基本路径。因此,我们创建了 2 个端点配置文件,一个带有基本路径 /api/1/,一个带有 /api/2,它们都具有相同的主机和“x-google-allow”:“all”标志。
使用 2 个配置进行部署是可行的,但只有版本 2 (/api/2/doc/) 的 swagger UI 可用。如果我们想访问旧版本的文档(/api/1/doc/),我们需要一个 API 密钥(然后它会返回一个空白屏幕)。如果我们在本地托管相同的烧瓶应用程序,我们可以访问两个文档页面。我们需要提供两个版本的文档(我们有其他方在使用我们的 API)
我尝试更改“x-google-allow”:“all”,然后在端点配置中使用“security”:[] 添加到 /doc 页面的路径,但问题仍然存在。
解决方案
推荐阅读
- c# - 如何随鼠标 WPF 一起移动控件?
- c# - 获取IHost释放端口
- c++ - 如何导入不在头文件中的类
- java - Hibernate @OneToMany - 孩子拥有关系,但只有父母 id
- cypress - 为什么我在 Nx 使用 React 教程的第 2 步中不断收到“Cypress 无法启动”?
- python - python CMU Sphinx 与语法
- c++ - 如何将 MPICH 库添加到 CLion 项目?
- sql - 在使用带过滤器的计数和更改开启条件之间进行选择
- javascript - jQuery:将“”替换为窗口宽度低于 500 像素的普通空格
- reactjs - 如何使用 axios get 请求发送正文数据和标头?