我目前在Rabbit中使用ldap插件,它将登录我域中的任何用户。这是问题,它是为每个用户做的。
我希望能够限制Rabbitmq管理门户访问AD中的1个或2个特定组。更进一步,我希望只有这两个组才能在Rabbit Portal中完全控制(创建交换/ vhosts /队列/无论如何。)下面我只是尝试用1组进行此操作。我怎么能用2组来做到这一点?我是否为第二个添加了另一个{resource_access_query,}
块?
这是我当前的配置:
[
{rabbit, [{auth_backends, [rabbit_auth_backend_ldap]}]},
{rabbitmq_auth_backend_ldap,
[ {servers, ["dc.domain.com"]},
{dn_lookup_attribute, "sAMAccountName"},
{dn_lookup_base, "CN=Prod_Group,OU=ProductGroups,OU=Security Groups,OU=Production,OU=domain,DC=hq,DC=domain,DC=com"},
{user_dn_pattern, "${username}@domain.com"},
{use_ssl, false},
{port, 389},
{log, true},
{resource_access_query,
{for, [{permission, configure, {in_group, "CN=Prod_Group,OU=ProductGroups,OU=Security Groups,OU=Production,OU=domain,DC=hq,DC=domain,DC=com"}},
{permission, write,
{for, [{resource, queue, {in_group, "CN=Prod_Group,OU=ProductGroups,OU=Security Groups,OU=Production,OU=domain,DC=hq,DC=domain,DC=com"}},
{resource, exchange, {constant, true}}]}},
{permission, read,
{for, [{resource, exchange, {in_group, "CN=Prod_Group,OU=ProductGroups,OU=Security Groups,OU=Production,OU=domain,DC=hq,DC=domain,DC=com"}},
{resource, queue, {constant, true}}]}}
]
}},
{tag_queries, [{administrator, {constant, true}},
{management, {constant, true}}]}
]
}
].
即使这样,它仍然在DC=hq,DC=domain,DC=com
的基数dn登录任何人......就像它没有看到我提供的DN路径一样。有任何想法吗?谢谢!
答案 0 :(得分:0)
据我所知,你需要使用嵌套组来查看你的
在嵌套组查询中
{in_group_nested,Pattern} {in_group_nested,Pattern,AttributeName} {in_group_nested,Pattern,AttributeName,Scope}
与in_group查询类似,但也遍历组层次结构,例如如果登录用户是该组的成员,该组是另一个组的成员。根据成员属性或任何命名属性检查成员身份。在group_lookup_base配置键定义的DN中搜索组,如果前者为none,则搜索thedn_lookup_base变量。如果两个查找基础变量都设置为none,则查询将始终返回false。搜索范围可以设置为eithersubtree或single_level。
子树搜索查找base下包含的所有对象.lele_level搜索直接包含在查找baseDefault值中的组,范围是subrtee查询正在使用从用户到目标组的深入搜索。搜索过程将检测并跳过循环路径。如果用户是许多组的成员,则该查询可能耗费时间和内存,这些组也是许多组的成员。在成员层次结构的组时使用此查询。仍然建议尽可能使用普通的{in_group,...}查询:嵌套组可能难以理解。
示例:
[ {group_lookup_base, "ou=groups,dc=example,dc=com"}, {vhost_access_query, {in_group_nested, "cn=${vhost}-groups,ou=groups,dc=example,dc=com"}, "member", single_level}]
当用户是由membneltribute值定义的组层次结构中的成员并位于theou = groups,dc = example,dc = com目录中时,这将授予对虚拟主机的访问权。