jwt - 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"
}
推荐阅读
- javascript - 为什么没有将局部函数分配给全局对象(窗口)?
- python - 如何需要两个 jsonschema 属性之一,但还要设置默认值?
- reactjs - Material-UI 样式和 html/markdown
- visual-studio-code - 使用 Atmel-Ice 在 Visual Studio Code 中调试 Arduino Due
- ruby - 如何制作一个 Ruby 方法来制作具有“n”宽度的星号钻石?
- python - 使精灵在点击时消失
- sql - 通过在 Hive/Athena 的 CSV 文件中添加两列来创建外部表
- android - 深度链接在 chrome expo react native 项目中不起作用
- python - 在 MacOS Big Sur 上安装 Python3.4 时出错
- powershell - 创建 NotifyIcon 并使用 powershell 处理单击事件