【问题标题】:AD/LDAP Authentication for a Non-Service account非服务帐户的 AD/LDAP 身份验证
【发布时间】:2020-04-15 01:54:41
【问题描述】:

我正在使用 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”,但结果相同。根据Username and Password for LDAP Authentication,这应该是成功的,除非“如果其中任何一个失败......那就是登录失败”

所以,如果这是登录失败,AFAIK:

  • 要么用户名或密码不正确,要么
  • kcarson 无权进行身份验证

还有其他可能失败的原因吗?

【问题讨论】:

    标签: authentication ldap


    【解决方案1】:

    搜索请求需要 FDN,或者在使用 Microsoft Active Directory 时,您可以使用 Ambiguous Name Resolution (ANR) 的一部分。所以你可以使用以下任何一种:

    • 完全专有名称:CN=Kevin Carson,OU=Phoenix,OU=OutsideTheLines,OU=MyUsers,DC=radical,DC=com
    • userPrincipleName:kcarson@radical.com
    • NetBiosName 字符串:(RADICAL\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
    

    LDAPing 快乐,节日快乐!

    【讨论】:

    • 完整的电子邮件地址有效!我以为我已经尝试了所有可能的用户名组合,但一定错过了这个。非常感谢,还有 Hoppy Hallidays!
    • 现在我真的很困惑。我第二次尝试之前有效的命令,它失败了。这怎么可能! AD端会不会有错误的配置?
    • 不确定。请记住,它是 userPrincipalName,而不是电子邮件地址。没有什么说它们是相同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2014-08-09
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多