我正在使用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或其他东西以阻止学生通过新的员工认证脚本登录?
三江源
答案 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中有效。