首页 > 解决方案 > ISTIO 授权策略支持通配符规则

问题描述

我试图实施 ISTIO 授权策略,如果声明中的值与特定字符串的任何部分匹配,我需要允许请求。

示例:规则如下所示:

规则:
  - 至:
    - 手术:
        方法:[“GET”]
        主机:[“sample.com”]
    什么时候:
    - 键:request.auth.claims[TEST_STRING]
      值: ["SUBSTR" , "*SUBSTR" , "*SUBSTR*" , "SUBSTR*"]

如果值 'SUBSTR' 在声明中包含作为前缀或后缀,则一切正常,但如果字符串 SUBSTR 位于中间,则声明条件失败。如果值在中间包含 substr,是否有任何解决方案允许请求。在我的情况下,当声明包含字符串 xyxSUBSTRpqr 无法匹配规则时。

标签: istio

解决方案


不幸的是,没有您尝试使用的带有前缀和后缀的条件模板。

根据 istio文档

规则

规则匹配来自源列表的请求,这些请求执行受条件列表约束的操作列表。当至少一个源、操作和条件与请求匹配时,就会发生匹配。始终匹配空规则。

规则中的任何字符串字段都支持 Exact、Prefix、Suffix 和 Presence 匹配:

  • 完全匹配:“abc”将匹配值“abc”。
  • 前缀匹配:“abc*”将匹配值“abc”和“abcd”。
  • 后缀匹配:“*abc”将匹配值“abc”和“xabc”。
  • 存在匹配:当值不为空时,“*”将匹配。

推荐阅读