java - 使用 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);
谢谢。
解决方案
经过一番研究,我想通了。您可以通过授予他们在 Active Directory 中的权限来将这些权限委派给该用户。
在 ADUC(Active Directory 用户和计算机)中,右键单击 OU(组织单位),其中包含您希望其他用户能够修改其属性的所有用户。选择“委托控制”。
添加您希望授予权限的用户。下一个。
选择“创建要委派的自定义任务”。下一个。
选择“仅文件夹中的以下对象”,然后在列表中选择“用户对象”。下一个。
取消选中常规。只检查属性特定。
在权限列表下,根据您的要求检查条目,例如
写部门
写电话号码
写街道地址
- 单击下一步并完成。
推荐阅读
- python - 如何反转 scipy.interpolate.interp1d 行为
- java - Apache POI 5:在单词表单元格中设置超链接
- reactjs - Rect Native,为什么 onEndReached setState 不起作用?
- jenkins - 如何更新詹金斯工作并立即运行?
- gstreamer - 使 GStreamer 正确读取视频信息损坏的 FLV 文件
- laravel - 如何在 URL 中传递参数
- python - 在 python 和 raspberry 中看不到随 post 请求发送的 json 内容
- android - 如何在 TextInputLayout Android 中实现这样的密码错误?
- javascript - 如何在 JavaScript 中从文件系统中读取文本文件
- python - 根据 Python 中的代码从其他 2 个数据帧创建一个数据帧