我正在使用开放策略语言为我的微服务实施策略,使用 JWT 和角色和组。
我的 OPA 政策正在解码 JWT 并提取声明。问题是其中一些声明可能是标量(例如 group1)或数组(例如 ["group1", "group2"]),我需要知道才能正确处理它。
问题类似于 如何确定 opa 中变量的类型?
有什么帮助吗?
我正在使用开放策略语言为我的微服务实施策略,使用 JWT 和角色和组。
我的 OPA 政策正在解码 JWT 并提取声明。问题是其中一些声明可能是标量(例如 group1)或数组(例如 ["group1", "group2"]),我需要知道才能正确处理它。
问题类似于 如何确定 opa 中变量的类型?
有什么帮助吗?
您通常使用内置的 is_xxxxx函数来检查类型。按照你的例子,你可能想要类似的东西:
allow {
is_array(claims.groups)
claims.groups[_] == "group1"
}
allow {
is_string(claims.groups)
claims.groups == "group1"
}