过滤掉LDAP用户的最佳方法

时间:2011-05-11 18:18:22

标签: php active-directory ldap

我正在使用LDAP - Active Directory来验证我的项目的用户。

我目前有2个登录页面 - 1个用于学生,另一个用于工作人员。

我设法编写了一个绑定到LDAP服务器的身份验证脚本 - 这适用于存储在LDAP服务器上的所有用户。

现在我希望能够从员工中筛选出学生,只允许员工通过“员工登录页面”登录。

DN看起来如下所示:

cn=USERNAME,ou=DEPT,ou=MAS,ou=LAN,o=UNI  <-- STAFF
cn=USERNAME,ou=DEPT,ou=STUDENT,ou=LAN,o=UNI <-- STUDENT

我如何过滤掉ou = STUDENT或其他东西以阻止学生通过新的员工认证脚本登录?

三江源

1 个答案:

答案 0 :(得分:2)

要防止学生通过新的人员身份验证脚本登录,您只需更改LDAP搜索的基础。尽管在整个目录中搜索UPN,您仍然可以从ou=MAS,ou=LAN,o=UNI搜索UPN。

使用LDIFDE.EXE,它会给出:

ldifde -f c:\ temp \ user.ldf -d“ou = MAS,ou = LAN,o = UNI”-r“(userPrincipalName = login)”

因此,如果用户是学生,搜索不会返回任何内容。

在绝对LDAP上,它存在一个名为 ExtensibleMatch 的过滤器语法,允许您这样做,但它在AD中有效。