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

을하는 데 도움이 : 당신은 "참고 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) 

것은 당신이 당신의 AD 설정 이잖아 유형에 쓰는 객체 클래스에서 .. 그 날 문제 오브젝트 클래스입니다 주신 것 같아요. 그래서 조직 단위를 원한다면 다음과 같이 보일 것입니다 : : objectclass => "organizationalUnit" 또한 DN과 attr의 CN은 동일해야합니다.

희망이 그물 LDAP에 대해 아무것도 모른 채

+0

정말로 cid 레코드가 아닌 uid를 갖고 싶다면 어떻게해야합니까? –

+0

'cn'을'uid'로 변경하십시오. –