Как добавить членство пользователя с помощью 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 уже существует, весь оператор завершится ошибкой, и членство не будет добавлено. Это функция "Modify" changeType... Я пытался посмотреть, как по-разному форматировать LDIF, но не могу понять. Я думал о заявлении для каждого членства, но это приведет к тому, что мой файл будет огромным и сложным в управлении, а это не идеально.

Как я могу структурировать свои заявления о членстве, чтобы добавить все членства, независимо от того, существует ли уже одно из членств?


person JBuenoJr    schedule 19.11.2013    source источник


Ответы (1)


Многозначные атрибуты в объекте LDAP должны иметь уникальные значения, то есть каждое значение многозначного атрибута должно отличаться от любого другого значения атрибута в этом объекте. Никакая структуризация ввода LDIF не может этого изменить.

  1. Я видел, как приложения удаляли все значения многозначного атрибута, а затем добавляли желаемое (в данном случае многозначных атрибутов нет). В некоторых случаях, когда многозначный атрибут требуется классу объектов, членом которого является группа, вся группа может быть удалена, а затем добавлена ​​обратно.

  2. Очевидно, что № 1 является нестандартным решением (хотя его можно сделать немного более привлекательным, используя транзакции LDAP, в которых группа удаляется и добавляется как часть одной транзакции, но это может быть недоступно, в мире полно некачественных серверов и API, не поддерживающих транзакции). Клиенту LDAP было бы лучше получить всех членов группы, а затем, зная это, добавить только те значения атрибутов, которых еще нет в группе.

person Terry Gardner    schedule 20.11.2013