0

我正在尝试使用 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,但似乎无法弄清楚。我想了一个针对每个成员的声明,但这会导致我的文件庞大且难以管理,这并不理想。

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

4

1 回答 1

1

LDAP 对象中的多值属性必须具有唯一值,即多值属性的每个值都必须不同于该对象中属性的任何其他值。LDIF 输入的任何结构都无法改变这一点。

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

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

于 2013-11-20T11:13:22.960 回答