1

我正在尝试为RT3站点的 Active Directory 服务器设置 LDAP 身份验证。

我认为 LDAP 身份验证模块中存在错误,但我真的不明白过滤器试图做什么。见RT/Authen/ExternalAuth/LDAP.pm第 126 行

$ldap_msg = $ldap->search(  base   => $group,
                            filter => $filter,
                            attrs  => \@attrs,
                            scope  => 'base');

有一个配置文件指定group,group_attrgroup_attr_value.

组作为 传递$group,过滤器是从group_attr=group字符串创建的。在我的情况下group_attr = presentmemberOf线路回来了CN=ITAdmins,CN=Builtin,DC=SPGLOBAL,DC=local,过滤器变成了Filter: (present=CN=ITAdmins,CN=Builtin,DC=SPGLOBAL,DC=local)and Attrs: dn

这对过滤器无效,但是任何对此了解更多的人都可以看到要发生的事情吗?

4

1 回答 1

1

感谢您发布代码链接,这使得它更易于理解。

所以模型是,使用用户名和密码进行身份验证,然后使用 $group,如果已定义,则意味着检查他们是否是组的成员以允许他们进入。

$group 应该是一个完整的 LDAP DN,所以 cn=AccessGroup,ou=Groups,dc=myDomain,dc=com 等。

$group_attr_val 应该是 member、memberOf 或 Member,这取决于目标 LDAP 目录中的 member 属性。

所以我认为你的问题是 group-attr=present 可能是错误的,应该像 member 一样简单。

于 2012-09-03T01:20:54.247 回答