【问题标题】:How to create and enable a user in ldap using java?如何使用 java 在 ldap 中创建和启用用户?
【发布时间】:2017-06-08 06:03:32
【问题描述】:

我正在尝试使用 java 在 ldap 中创建一个用户,但是正在创建用户但它被禁用,如何在创建用户时启用它,发布我用于创建的代码。是否缺少任何参数或设置错误的属性或密码设置错误?帮帮我。

        Attribute userCn = new BasicAttribute("cn", commonName);
        Attribute samAccountName = new BasicAttribute("samAccountName",samaccountname);
        Attribute userPassword = new BasicAttribute("userPassword",Password);
        Attribute oc = new BasicAttribute("objectClass");
            oc.add("top");
            oc.add("person");
            oc.add("organizationalPerson");
            oc.add("user");
        Attributes entry = new BasicAttributes(true);
        entry.put(userCn);
        entry.put(samAccountName);
        entry.put(oc);
        entry.put(userPassword);
String entryDN = "CN=" + userID.trim() + ",OU=abc,OU=def,DC=ghi,DC=jkl";
dirContext.createSubcontext(entryDN, entry);

更新 1

我在更新或修改用户以设置用户密码并启用它时遇到以下异常/错误,我正在使用 ldap 服务器和我的环境之间的私有连接,所以我需要使用 SSL/TLS 配置。

错误代码 53 和 WILL_NOT_PERFORM

【问题讨论】:

  • 您使用的是哪种 LDAP 实现以及架构中的什么属性决定用户是否处于活动状态?
  • 对于 ldap 实现-“需要创建一个活跃用户”,我不知道负责使其活跃的属性这就是为什么发布这个问题
  • 我对实施的意思是“品牌”、Active Directory、OpenLdap 或其他。什么告诉您用户已禁用?您使用的是特定客户端吗?
  • 我正在使用 Active Directory,通过打开微软的 ldap 浏览器并点击用户属性,我知道它已被禁用,并且我没有使用任何特定的客户端,只是使用 java JNDI
  • 如果您使用 Active Directory 和 Java JNDI,您的问题与 openldap 无关。

标签: java active-directory ldap jndi


【解决方案1】:

AFIK,这一定是因为您设置了 Microsoft Active Directory 中不存在的“userPassword”属性(默认情况下)。

unicodePwd 是 Microsoft Active Directory 中的密码属性,它需要从 JNDI 设置“特殊”编码。我们在source code 中展示了一个示例。

因此默认禁用在 Microsoft Active Directory 中创建的无密码用户条目。

另外,对于 Microsoft Active Directory,您可以 MUST use SSL-TLS 更改 unicodePwd。

您可以但不推荐尝试在没有 unicodePwd 的已创建用户条目上设置属性 userAccountControl = 544。您可能需要在创建后执行此操作。

【讨论】:

  • 我试过你的代码,但它给了我错误代码 53 和“WILL_NOT_PERFORM”异常
  • 似乎即使在使用unicodePwd 创建用户后它仍然保持禁用状态
  • @rajatravigarg14 你有适当的权限吗?你在使用 TLS 吗?
  • @PhilippGrigoryev 尝试在 MMC 中使用与代码中相同的用户更改帐户,然后登录?有效果吗?
  • 我实际上认为,它需要两个步骤:首先创建一个用户,然后设置密码和 userAccountControl。谢谢你们,伙计们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多