【问题标题】:Java -> LDAP account password encryptionJava -> LDAP 账户密码加密
【发布时间】:2011-08-19 04:27:46
【问题描述】:

我有一个从微软活动目录同步的 Ldap 目录。

这个ldap包含很多账号,每个账号都有一个密码属性。

我必须开发一个 Java 程序,用户必须使用他的 AD 登录名和密码登录,但我不知道正确加密键入的密码的方法。

我需要它与 ldap 密码进行比较。

我还需要用相同的密码加密绑定新帐户。

有人知道怎么做吗?

【问题讨论】:

  • 为什么需要加密密码?如果您的 java 程序使用 LDAP 对用户进行身份验证,您可以只使用 bind() api 来验证凭据。
  • 我已经连接到 LDAP 目录,现在我想在 ldap 上创建新帐户(已完成),用户将可以选择他的密码。我的问题是如何加密密码??

标签: java spring encryption passwords ldap


【解决方案1】:

首先,您可以将 BIND 与 SSL 一起使用,但这被认为是一种蹩脚的方式,并且可能在某些系统上被禁用。一种真正安全的方法是使用 SPNEGO-GSS,这并非易事。您必须学习和了解 Kerberos。这是一个很长的话题,但你可以从reading and going through everything here开始

【讨论】:

    【解决方案2】:

    我已经找到了spring的解决方案,

    这里是测试登录/通过夫妇的方法:

    AndFilter filter = new AndFilter();
    filter.and(new EqualsFilter("objectclass", "person")).and(new EqualsFilter("cn", login));
    boolean authentifie = ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password);
    

    【讨论】:

      猜你喜欢
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      相关资源
      最近更新 更多