Authentication 非服务帐户的AD/LDAP身份验证

Authentication 非服务帐户的AD/LDAP身份验证,authentication,ldap,Authentication,Ldap,我正在使用Java和JAAS设置一个应用程序,以便首先从命令行测试AD/LDAP连接。LDAP对我来说并不新鲜,我认为我理解它,但我开始重新考虑。服务帐户进行身份验证,但普通员工不进行身份验证:- 我可以使用用户名为ldap(我知道其密码)的服务帐户进行身份验证,返回kcarson帐户的dn和sAMAccountName: ++ ldapsearch -vx -LLL -o ldif-wrap=no \ -H ldap://21.10.10.50:389 \ -b OU=MyUsers,DC=r

我正在使用Java和JAAS设置一个应用程序,以便首先从命令行测试AD/LDAP连接。LDAP对我来说并不新鲜,我认为我理解它,但我开始重新考虑。服务帐户进行身份验证,但普通员工不进行身份验证:-

我可以使用用户名为ldap(我知道其密码)的服务帐户进行身份验证,返回kcarson帐户的dn和sAMAccountName:

++ ldapsearch -vx -LLL -o ldif-wrap=no \
-H ldap://21.10.10.50:389 \
-b OU=MyUsers,DC=radical,DC=com \
-D ldap \
-W '(samAccountName=kcarson)' samaccountname

Enter LDAP Password:
dn: CN=Kevin Carson,OU=Phoenix,OU=OutsideTheLines,OU=MyUsers,DC=radical,DC=com
sAMAccountName: kcarson
但如果我使用用户名kcarson执行相同操作,我知道该用户名的密码会收到失败:

++ ldapsearch -vx -LLL -o ldif-wrap=no \
-H ldap://21.10.10.50:389 \
-b OU=MyUsers,DC=radical,DC=com \
-D kcarson \
-W '(samAccountName=kcarson)' samaccountname

Enter LDAP Password:
ldap_bind: Invalid credentials (49)
        additional info: 80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 52e, v3839
我还尝试使用完整dn而不是kcarson,但结果相同。根据这一点,这应该是成功的,除非其中任何一个失败。。。这是登录失败

因此,如果这是登录失败,那么AFAIK:

用户名或密码不正确,或者 kcarson无权进行身份验证
是否还有其他原因导致此操作失败?

搜索请求需要FDN,或者在使用Microsoft Active Directory时,您可以使用以下几种方法。因此,您可以使用以下任一选项:

完全可分辨名称:CN=Kevin Carson,OU=Phoenix,OU=OutsideLines,OU=MyUsers,DC=Radial,DC=com 用户原则名称:kcarson@radical.com NetBiosName字符串:根\kcarson ObjectGuid:{ca2e693f-6280-4589-9376-b3707345d3ad} 因此,samAccountName不是使用ANR的选项

因此,类似这样的方法应该有效:

ldapsearch -vx -LLL -o ldif-wrap=no \
-H ldap://21.10.10.50:389 \
-b OU=MyUsers,DC=radical,DC=com \
-D kcarson@radical.com \
-W \
'(samAccountName=kcarson)' samaccountname

祝你生日快乐,节日快乐

完整的电子邮件地址工作!我以为我已经尝试了用户名的所有可能的组合,但一定错过了这个。谢谢你,还有哈利迪!现在我真的很困惑。我第二次尝试以前有效的命令时,失败了。这怎么可能!广告端是否有错误的配置?不确定。请记住,这是用户名,而不是电子邮件地址。没有任何东西表明它们是相同的。