Authzforce 不存储策略?

Authzforce does not store policies?

我正在使用 Fiware 开发一个新应用程序,我有兴趣为此使用特定的 Fiware GE 添加安全层:

我从 this 教程开始设置我自己的这些组​​件的本地安装。几分钟后,我能够成功安装所有三个组件 & 运行.

然后我开始创建应用程序、角色、权限、为用户分配角色等等。事情是在玩了一段时间后 AuthZforce 崩溃了,我不得不重新启动它。之后我注意到所有策略和域都从 AuthZForce 中删除了。

我进行了一些挖掘,发现所有内容都保存在 AuthZForce 的内存中以及 IdM 数据库中,因此如果您的 AuthZForce 崩溃,那么您将丢失所有策略和应用程序域,除非您从 IdM 数据库中恢复它。

问题是当您重新启动 AuthZForce 时,存储在 IdM 数据库中的所有策略和应用程序都不会自动与 AuthZForce 同步。要强制同步,您必须对您的应用程序进行一些更改,例如使用 IdM Web 界面更改应用程序描述。然后 IdM 重新创建应用程序域和所有应用程序策略。

为什么会这样?为什么同步没有自动完成? AuthZForce 本身是否可以对策略的持久性负责?

就 AuthzForce 而言,IdM 成功推送到 Authzforce 的所有策略都保存在 AuthzForce 服务器的 /opt/authzforce-ce-server/data 目录中的磁盘中。据我所知,AuthzForce 服务器没有理由从那里删除数据,除非通过 REST API 请求,例如由 IdM。如果您在某个时候检查此目录的内容并且它是空的,原因之一可能是 IdM 根本没有将任何策略推送到 AuthzForce。 如果您真的发现 AuthzForce 崩溃会删除 /opt/authzforce-ce-server/data 中的所有文件(显然假设之前有一些文件),那么请 report this issue to AuthzForce team 提供相关的服务器日志和足够的信息来重现问题。

回到上一个问题,AuthzForce 将从 IdM 收到的策略保存到磁盘。然而,一方面,IdM 使用自己的简化格式来管理来自 GUI 的角色权限,而 AuthzForce 使用 XACML 标准。 IdM GUI 目前不支持 XACML 的完整表现力,远非如此。因此,当您在角色权限编辑器中单击“保存”时,IdM GUI 会在推送到 AuthzForce 之前从其自己的格式转换为 XACML(使用简单的模板处理),这只是一种方式。因此,IdM 无法从 AuthzForce 以自己的格式恢复策略(据我所知,XACML 到 IdM 格式的转换尚未实现),因此 IdM 不能仅依赖 AuthzForce 进行策略存储。我无法深入了解细节以及原因,因为我不是 IdM 开发团队的一员。因此,请询问他们是否需要更好的答案。