Кажется, что LDAP требует, чтобы строки с не-ASCII-символами были закодированы в Base64. Чтобы сказать, что строка должна быть проанализирована как строка в кодировке base64, нужно добавить лишнее двоеточие к имени атрибута так, чтобы «cn: name» стало «cn :: name» (согласно this site ).
Теперь мой вопрос: как мне сказать Ruby LDAP сделать это? Я не мог найти, что документация упоминает что-либо об этом, но, возможно, это поддерживается.
А как насчет других библиотек LDAP, таких как Net :: LDAP? Поддерживают ли они операции с не-ASCII символами?
Обновление :
Набор тестов для Ruby / LDAP (0.9.7, ruby v. 1.8.6) включает тесты для добавления записей с иностранными символами в LDAP. Они устанавливают $KCODE="UTF8"
. Однако, похоже, это не влияет на мои настройки.
Не-ASCII-символы разрешены для атрибутов, если в dn есть только ASCII-символы, поэтому в настоящее время я использую обходной путь с UID только для ASCII. Однако это не кажется оптимальным.