2014-01-22 62 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

@Ralf,是的,我有。 –

回答

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 =>「organizationalUnit」 另外我認爲DN和attr中的CN需要相同。

希望這有助於

+0

如果我真的想要使用uid而不是cn記錄怎麼辦? –

+0

將'cn'更改爲'uid' –