В ldap моей компании у нас есть два атрибута, один называется cryptodata
и другие cryptodata;binary
Когда я выполняю команду ldapsearch и помещаю cryptodata
завершение команды для фильтрации только по этому атрибуту, это приносит мне оба cryptodata
и cryptodata;binary
атрибуты. Я хочу вернуть только cryptodata
и нет cryptodata;binary
. Как я могу это сделать ? Оба эти атрибута занимают много строк, поэтому использовать grep было бы неудобно.
Пример используемой мной команды, которая возвращает оба поля:
ldapsearch -h 0.0.0.0 -p 389 -D "cn=sysname,ou=whatever,o=ca,c=country" -b "CN=SOMEONE,OU=AUTHORITHY,OU=COMPANY,OU=TYPE,O=CA,C=COUNTRY" -w "password" dn cryptodata
обратите внимание, что оба поля не совпадают. Так что я не могу просто фильтровать по cryptodata;binary
Кроме того, это большая компания ldap, поэтому у меня нет управления структурой полей ldap.
В LDAP вы можете добавлять так называемые описания к именам атрибутов, разделенные точкой с запятой. Интерпретация этих описаний может варьироваться в зависимости от описания.
Таким образом криптоданные и криптоданные; двоичные не разные атрибуты!
Фактически ;binary
- это просто тип передачи для изменения кодировки, используемой при передаче атрибута по сети. Сегодня он имеет очень ограниченное применение (см. RFC 4522) и в основном используется при запросе атрибутов сертификата PKI.
Если ваш сервер LDAP действительно возвращает разные значения атрибутов для криптоданные и криптоданные; двоичные вы должны проверить, какая кодировка подходит для вашего клиента, и работать с ней на стороне клиента. Не пишите простые сценарии оболочки. Лучше использовать для этого скриптовый язык вроде Python / Perl / Ruby и достойный модуль LDAP.