我有一个Java应用程序,可以通过使用NTLM名称将用户登录到AD LDAP服务器来对LDAP进行身份验证(这是他们习惯的 - 这是一项要求)。
我现在还需要进行授权,因此需要为用户找到一个林唯一标识符(DN或UPN应该可以工作),我可以从中进一步查询目录。
该方法需要绝对可移植,即使AD的结构不寻常,否则我可以直接替换字符串并搜索“$ {ntlm-user} @ $ {ntlm-domain}的UPN $ {配置尾随域}“
如何使用纯LDAP执行此操作?
目前,我正在使用java.naming.directory包,我想继续使用它,因为它不会在不与DN绑定但是使用NTLM名称登录时会出现问题?
答案 0 :(得分:1)
首先,除非您在Windows 2003 Server或更高版本的环境中运行,否则UPN不是AD的必填字段。 Win2000域(实际或功能)可能没有UPN。
sAMAccount名称是唯一一个在不同版本的LDAP中完全可移植的必填字段。但是,它通常与netbios域名
结合使用(FOOBAR \ JSKEET)
使用纯LDAP,您可以使用UPN或sAMAccount名称进行绑定(确保您可以设置密封和安全标志,以便进行安全身份验证!)(如果您拥有全部DN,甚至可以使用完整DN)