是否可以在开放策略代理策略中使用外部程序的输出

问题描述

我想制定一个策略,其中必须通过针对不具有http api的记录系统查询字段来做出决定。策略是否可以调用外部程序并使用其返回代码来决定是否允许/拒绝?

看着https://www.openpolicyagent.org/docs/latest/policy-reference/#built-in-functions,我找不到要使用的函数我有缺少的功能吗?

解决方法

OPA无法提供一种在策略评估中直接调用外部程序的方法。

我建议您考虑一些事项:

  1. 在使用需要数据的OPA进行评估之前,先调用外部程序 ,并将该程序的结果作为input的一部分提供。

  2. 实现自定义内置函数。查看https://www.openpolicyagent.org/docs/latest/extensions/的几个选项 (取决于您如何集成OPA)。

  3. 您可以实现一个轻量级的HTTP服务,该服务包装对外部程序的调用(例如,执行其他程序的简单python或golang应用程序,并返回供内置http.send使用的数据)