security - 在 istio AuthorizationPolicy 中如何匹配包含查询字符串参数的路径
问题描述
我目前正在使用 istio 1.4 并启用了 aPolicy
来检查 jwt。
我启用了一个AuthorizationPolicy
具有该规则的:
rules
- to:
- operation:
methods: ["GET"]
paths: [
"/render/checkout"
]
when:
- key: request.auth.claims[roles]
values: ["USER"]
当我用我的 jwt 走这条路时,一切都很好。问题是,例如,当我使用查询字符串参数点击相同的 url 时/render/checkout?sort=asc
,我得到一个RBAC: access denied
.
为了绕过这个,我最终添加了包括问号和通配符的路径:
paths: [
"/render/checkout", "/render/checkout?*"
]
但是有很多路径和很多微服务,我觉得这不应该发生,因为它非常重复且容易出错。
我知道github上已经存在关于在路径中支持正则表达式的问题,但目前:
我可以避免将每个路径加倍,一个没有查询字符串参数,第二个有查询字符串参数吗?
解决方案
有一个github 问题,几天前有人问了同样的问题,这导致我们找到您添加的 github 问题。
特别是这部分github会员回答@GODBS。
没有其他方法可以排除 JWT 的路径,然后使用不允许正则表达式的授权策略。
我可以避免将每个路径加倍,一个没有查询字符串参数,第二个有查询字符串参数吗?
因此,据我了解,目前没有其他方法可以使其发挥作用。现在的解决方法是添加另一个路径,就像你做的那样。
我假设他们将来会添加它,这里的问题是需要多长时间。
推荐阅读
- c++ - 在文件中查找单词 c++
- symfony - CKEditor 不能在 Symfony 4.4 上使用 EasyAdmin 3
- nlp - 如何使用 NLP 从成分中提取主要食物词?
- javascript - 当您分发项目时,NPM 是否会自动从您的 package.json 下载所有依赖项?
- list - 如何在多个索引处用不同的字符替换列表中的项目?
- r - 将不均匀的 json 解析为 tibble
- pytorch - Pytorch 多人聚会
- java - Maven 发布插件 - 通过服务帐户更新 pom.xml
- amazon-web-services - 托管在 AWS 上的私有 NuGet 包服务器仅对一个 NuGet 包返回 403 Forbidden 错误
- javascript - 使用 Hooks replaces 而不是 concat 在 React 上更新数组状态