我试图弄清楚如何在rabbitmq.config
中创建更精细的身份验证/授权。我认为它使用的语言被称为Erlang(是吗?)。
我尝试使用以下条件试图使用条件,但它失败了:
{vhost_access_query,
{in_group,
{'or', [
"CN=${vhost}-users,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
"CN=${vhost}-admins,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
"CN=${vhost}-consumers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
"CN=${vhost}-producers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"
]}
}},
无论如何,它不喜欢它。我试图做的是说四个组中的任何一个都允许vhost访问 - group1
,group2
或group3
等。
答案 0 :(得分:0)
除此之外:RabbitMQ是用Erlang编写的。配置文件使用Erlang风格的术语({a, tuple}
,["a", list]
),但它不是 Erlang。
查看RabbitMQ documentation for the LDAP plugin,它说'or'
列出了一些子查询:
{'or', [SubQuery1, SubQuery2, SubQuery3, ...]}
这意味着您实际需要的是这样的:
{vhost_access_query,
{'or',
[
{in_group, "CN=${vhost}-users,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
{in_group, "CN=${vhost}-admins,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
{in_group, "CN=${vhost}-consumers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
{in_group, "CN=${vhost}-producers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"}
]
}
},
...但不要引用我(除非我是对的);我从未使用过LDAP插件。