2014-01-22 3 views
3

Я пытаюсь создать нового пользователя с помощью LDAP, делая это:рубин сетчатой ​​LDAP добавить пользователя

require 'net/ldap' 

ldap = Net::LDAP.new 
ldap.host = 'ldap' 
ldap.auth('uid=myuser,ou=users,dc=my,dc=domain,dc=com', 'mypass') 

ldap.bind # this executes successfully, up to this point, all is well 

dn = 'uid=newuser,ou=users,dc=my,dc=domain,dc=com' 
attributes = { cn: 'newuser', sn: 'surname', objectclass: ['top', 'agent'] } 

ldap.add(dn: dn, attributes: attributes) 

ldap.get_operation_result 
#=> #<OpenStruct code=21, message="unknown result (21)"> 

Я новичок в LDAP, и я не могу найти место в Интернете, что обеспечивает четкий пример о том, как использовать net-ldap для создания нового пользователя.

+0

Не зная ничего о нетто-LDAP: Вы подтвердили, что «MyUser» обладают достаточными правами доступа для добавления нового пользователя? – Ralf

+0

@ Верно, да, есть. –

ответ

3

У меня были эти проблемы, а последние 2 дня, но, наконец, выяснили решение, чтобы сделать моего пользователя. Вот рабочий код для меня:

ldap = Net::LDAP.new 
     ldap.host = SERVER 
     ldap.port = PORT 
     ldap.authenticate login, pass   

dn = "cn=Pick Name, dc=example, dc=com" 
       attr = { 
        :cn => "Pick Name", 
        :objectclass => "User", 
        :sn => 'Name', 
        :telephoneNumber => "12345678", 
        :mail => "[email protected]" 
       } 
    ldap.add(:dn => dn, :attributes => attr) 

То, что я думаю, что дал мне вопросы является ObjectClass .. В классе объекта вы пишете в типе Thats установлены в вашем AD. Поэтому, если вы хотите создать организационную единицу, это будет выглядеть так:: objectclass => "organizationUnit" Также я думаю, что CN в DN и attr должны быть идентичными.

Надеется, что это помогает

+0

Что делать, если я действительно хочу иметь uid, а не записи cn? –

+0

Измените 'cn' на' uid' –

Смежные вопросы