首页 > 解决方案 > 使用 JAVA 修改 LDAP 中的用户属性

问题描述

我正在尝试更改 LDAP 服务器中用户的属性,当我尝试更改 LDAP 中用户的任何属性时,我得到 NoPermissionException 但是如果用户是管理员,我可以更改/添加属性。我的目标也是更改密码。

javax.naming.NoPermissionException: [LDAP: error code 50 - 00002098: SecErr: DSID-03150F93, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0
]; remaining name 'CN=test,CN=Users,DC=myid,DC=com,DC=local'

我的代码

ModificationItem[] mods = new ModificationItem[2];
mods[0] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE,
                            new BasicAttribute("department"));
mods[1] = new ModificationItem(DirContext.ADD_ATTRIBUTE,
                            new BasicAttribute("department", "New Department"));
                   
ldapCtx.modifyAttributes("CN=test,CN=Users,DC=myid,DC=com,DC=local", mods);

谢谢。

标签: javaactive-directoryldap

解决方案


经过一番研究,我想通了。您可以通过授予他们在 Active Directory 中的权限来将这些权限委派给该用户。

  1. 在 ADUC(Active Directory 用户和计算机)中,右键单击 OU(组织单位),其中包含您希望其他用户能够修改其属性的所有用户。选择“委托控制”。

  2. 添加您希望授予权限的用户。下一个。

  3. 选择“创建要委派的自定义任务”。下一个。

  4. 选择“仅文件夹中的以下对象”,然后在列表中选择“用户对象”。下一个。

  5. 取消选中常规。只检查属性特定。

  6. 在权限列表下,根据您的要求检查条目,例如

写部门

写电话号码

写街道地址

  1. 单击下一步并完成。

推荐阅读