我正试图通过Docker使用KeyRock idm,Wilma PEP-Proxy和AuthZForce PDP来保护Orion Context Broker。目前,1级安全性运行良好,我可以拒绝访问非登录用户,但是在尝试添加级别2时,我在Wilma上收到此错误。
type .\\v2\\dist\\js\\*.js >> .\\build\\a.min.js && type .\\v2\\dist\\js\\config\\*.js >> .\\build\\a.min.js && ...
这是我在Wilma的config.js文件中的azf配置:
AZF domain not created for application <applicationID>
这就是我在KeyRock上设置访问控制配置的方法:
config.azf = {
enabled: true,
protocol: 'http',
host: 'azfcontainer',
port: 8080,
custom_policy: undefined
};
我已经在Keyrock上创建了自定义策略,但是AuthZForce日志没有显示来自KeyRock或Wilma的任何请求,因此没有在PDP上创建域。我已经检查过所有容器都可以看到并相互接触,并且所有端口都已启动。我可能会错过一些配置。
这些是我正在使用的版本:
# ACCESS CONTROL GE
ACCESS_CONTROL_URL = 'http://azfcontainer:8080'
ACCESS_CONTROL_MAGIC_KEY = None
此问题与“AZF domain not created for application” AuthZforce相同,但即使使用显示的AuthZForce GE配置,我的问题仍然存在。
答案 0 :(得分:2)
我发现当 AuthZForce 不在后面时出现此问题的原因,因此未修改变量ACCESS_CONTROL_MAGIC_KEY(默认情况下为None)。
当需要连接到AuthZForce时,似乎horizon在 openstack_dashboard / local / local_settings.py 中读取ACCESS_CONTROL_URL和ACCESS_CONTROL_MAGIC_KEY参数。从理论上讲,第二个参数是可选的(它为PEP代理引入了一个'X-Auth-Token'标头),但是如果horizon检测到它是None(local_settings.py中的默认值)或空字符串,则日志显示警告并从 openstack_dashboard / fiware_api / access_control_ge.py 中的“policyset_update”函数返回。因此,与AuthZForce的沟通永远不会发生。
解决问题的更简单方法是将一些文本作为魔术键写入: openstack_dashboard / local / local_settings.py :
# ACCESS CONTROL GE
ACCESS_CONTROL_URL = 'http://authzforce_url:port'
ACCESS_CONTROL_MAGIC_KEY = '1234567890' # DO NOT LEAVE None OR EMPTY
因此,将生成'X-Auth-Token'标头,但是当AuthZForce不在PEP代理后面时(不应忽略标头),它不应影响通信。
注意:在进行更改时,请务必删除缓存的字节码文件“openstack_dashboard / local / local_settings.py c ”,以确保在重新启动视野服务后更新新配置
PS:我向https://github.com/ging/horizon发送了拉取请求,并通过简单的修改解决了问题。