我想制定一项政策,必须通过针对没有 http api 的记录系统查询字段来做出决定。策略有没有办法调用外部程序并使用其返回码来决定是否允许/拒绝?
查看https://www.openpolicyagent.org/docs/latest/policy-reference/#built-in-functions,我没有找到要使用的功能。有我缺少的功能吗?
我想制定一项政策,必须通过针对没有 http api 的记录系统查询字段来做出决定。策略有没有办法调用外部程序并使用其返回码来决定是否允许/拒绝?
查看https://www.openpolicyagent.org/docs/latest/policy-reference/#built-in-functions,我没有找到要使用的功能。有我缺少的功能吗?
OPA 不提供在策略评估中直接调用外部程序的方法。
我建议考虑以下几点:
在使用需要数据的 OPA 进行评估之前调用外部程序,并将程序的结果作为input
.
实现自定义内置函数。查看https://www.openpolicyagent.org/docs/latest/extensions/了解几个选项(取决于您如何集成 OPA)。
您可以实现一个轻量级 HTTP 服务,该服务包装了对外部程序的调用(例如,执行另一个程序并返回数据供内置程序使用的简单 python 或 golang 应用程序http.send
)