我目前正在使用istio 1.4,并启用了Policy
来检查jwt
我启用了具有以下规则的AuthorizationPolicy
:
rules
- to:
- operation:
methods: ["GET"]
paths: [
"/render/checkout"
]
when:
- key: request.auth.claims[roles]
values: ["USER"]
当我用jwt走上这条路时,每件事都很好。问题是,当我使用查询字符串参数(例如/render/checkout?sort=asc
(访问同一个url时,我会得到一个RBAC: access denied
为了绕过这一点,我最终添加了包括问号和通配符的路径:
paths: [
"/render/checkout", "/render/checkout?*"
]
但是有很多路径和微服务,我觉得这不应该发生,因为它非常重复和容易出错。
我知道github上已经存在关于在路径中支持regex的问题,但目前:
我可以避免将每条路径加倍吗?一条没有查询字符串参数,另一条有查询字符串参数?
有一个github问题,几天前有人问了同样的问题,这导致我们遇到了您添加的github。
特别是这部分github成员回答@GODBS。
除了使用不允许regex的授权策略之外,没有其他方法可以排除JWT的路径。
我能避免将每条路径加倍吗?一条没有查询字符串参数,另一条有查询字符串参数?
据我所知,目前没有其他方法可以让它发挥作用。现在的解决方法是添加其他路径,就像您所做的那样。
我想他们将来会添加它,这里的问题是需要多长时间。