1

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

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

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

我做了一些挖掘,发现所有的东西都保存在内存中供 AuthZForce 使用,也保存在 IdM 数据库中,所以如果你的 AuthZForce 崩溃,那么你会丢失所有的策略和应用程序域,除非你从 IdM 数据库中恢复它。

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

有什么理由会这样吗?为什么同步没有自动完成?AuthZForce 本身能否负责策略的持久性?

4

1 回答 1

0

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

再次回到最后一个问题,AuthzForce 将从 IdM 收到的策略持久化到磁盘。然而,一方面,IdM 使用自己的简化格式来管理来自 GUI 的角色权限,而 AuthzForce 使用 XACML 标准。IdM GUI 目前不支持 XACML 的完整表达能力,远非如此。因此,当您在角色权限编辑器中单击“保存”时,IdM GUI 会在推送到 AuthzForce 之前从其自己的格式转换为 XACML(使用简单的模板处理),这只是一种方式。因此,IdM 无法从 AuthzForce 以自己的格式恢复策略(据我所知,没有实现 XACML 到 IdM 格式的转换),因此 IdM 不能仅依赖 AuthzForce 进行策略存储。我无法详细说明原因,因为我不是 IdM 开发团队的一员。

于 2017-12-18T08:53:13.443 回答