如何使用LDIF添加用户成员资格?

时间:2013-11-19 20:55:01

标签: active-directory ldap ldif

我正在尝试使用LDIF将用户成员身份添加到现有用户组。

示例:

dn: CN=Domain Users,CN=Users
changeType: Modify
add: member
member: CN=SomeCN1
member: CN=SomeCN2
member: CN=SomeCN3
member: CN=SomeCN4

一切正常,除非其中一个会员资格已经存在。例如,如果SomeCN2成员资格已存在,则整个语句将失败,并且不会添加任何成员资格。这是“修改”changeType的一个功能......我试着看看如何以不同的方式格式化LDIF,但似乎无法弄明白。我想到了每个成员的声明,但这将导致我的文件庞大且难以管理,这并不理想。

如何构建我的会员资格语句,以便添加所有会员资格,无论其中一个会员资格是否已经存在?

1 个答案:

答案 0 :(得分:1)

LDAP对象中的多值属性必须具有唯一值,也就是说,多值属性的每个值必须与该对象中该属性的任何其他值不同。没有LDIF输入的结构可以改变它。

  1. 我看过应用程序删除了多值属性的所有值,然后添加了所需的(在这种情况下,没有多值属性)。在某些情况下,如果该组所属的对象类需要多值属性,则可以删除整个组,然后将其添加回来。

  2. 显然,#1是一个不合标准的解决方案(尽管通过使用LDAP 事务可以使其更加可口,其中该组被删除并作为单个事务的一部分添加,但是这可能不可用,世界上充斥着不支持交易的低质量服务器和API。 LDAP客户端最好检索该组的所有成员,然后,根据该知识,仅添加该组中尚未存在的属性值。