ruby 1.9.2 と ruby-ldap gem ( http://ruby-ldap.sourceforge.net/ ) を使用して新しい LDAP ユーザーを作成しようとすると、常に次のエラーが表示されます:「無効な DN 構文」
なぜこれが起こるのか分かりません。サーバーへの接続は正常に機能します。既存のユーザーの属性を読み取ることは問題なく可能です。
cn = "#{first_name}#{last_name}"
entry = [
LDAP.mod(LDAP::LDAP_MOD_ADD,'objectclass',['top','person', 'user']),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'name', [cn]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'accountExpires', ["0"]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'displayName', [cn]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'name', [cn]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'givenName', [first_name]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'sn', [last_name]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'userPrincipalName', ["#{first_name}.#{last_name}@my.domain"]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'pwdLastSet', ["0"]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'sAMAccountName', ["#{first_name}.#{last_name}"]),
LDAP.mod(LDAP::LDAP_MOD_ADD | LDAP::LDAP_MOD_BVALUES, 'unicodePwd', [password_hash]),
LDAP.mod(LDAP::LDAP_MOD_ADD, 'userAccountControl', ["66048"]),
]
begin
ldap_connection.add("cn=#{cn}, ou=MyUsers, dc=my, dc=domain", entry)
rescue
puts ldap_connection.err2string(ldap_connection.err)
end
これは、たとえば名が「John」で姓が「Doe」の場合に発生します。
ありがとう