首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LDAP- ldap.add不向LDAP服务器添加条目

LDAP- ldap.add不向LDAP服务器添加条目
EN

Stack Overflow用户
提问于 2019-08-19 09:55:55
回答 1查看 237关注 0票数 1

我对LDAP的工作非常陌生,任何帮助我都很感激。

我正在编写一个Ruby程序,用于向LDAP服务器添加条目。我可以使用终端添加条目。但挑战在于如何使用Ruby让它正常工作。

这是我试图写入的LDAP服务器。

代码语言:javascript
复制
# example.org
dn: dc=example,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Inc.
dc: example

# admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: mypassword

# people, example.org
dn: ou=people,dc=example,dc=org
objectClass: organizationalUnit
ou: people

下面是ldap-program.rb的内容。对于

代码语言:javascript
复制
    require 'rubygems'
    require 'net/ldap'

    ldap = Net::LDAP.new  :host => '127.0.0.1',
                            :port => 1300,
                            :auth => {
                                :method => :simple,
                                :username => 'cn=admin,dc=example,dc=org',
                                :password => 'mypassword'
    }

  dn = "uid=christine,ou=people,dc=example,dc=com"
attr = {
  :cn => "Christine",
  :sn => "Smith",
  :objectClass => "inetOrgPerson",
  :mail => "christine@example.com",
  :uid => "christine"
}

ldap.add(:dn => dn, :attr => attr)

我一直非常关注ldap.add的文档,但是在本例中,条目并没有添加到LDAP中。有没有人能给点建议呢?

EN

回答 1

Stack Overflow用户

发布于 2019-08-21 02:28:03

我不是Ruby开发人员,所以我的代码示例可能需要调整。但是,如果您使用的是Active Directory,那么我看到两个问题:

  1. objectClass应该是 AD,uid属性没有特殊含义。用于登录的用户名是sAMAccountName属性。

代码语言:javascript
复制
attr = {
  :cn => "Christine",
  :sn => "Smith",
  :objectClass => "user",
  :mail => "christine@example.com",
  :sAMAccountName => "christine"
}

您可能还想设置givenName,它用于用户的名字。

如果这不起作用,请让我们知道你得到了什么错误。

这将创建处于禁用状态的帐户。要启用它,您需要在第二步中给它一个密码,方法是设置unicodePwd属性(格式奇怪),并更新userAccountControl属性以启用它。

使用以下属性再次修改它(其中新密码为"new_password"):

代码语言:javascript
复制
def self.str2unicodePwd(str)
    ('"' + str + '"').encode("utf-16le").force_encoding("utf-8")
end

attr = {
  :unicodePwd, str2unicodePwd("new_password"),
  :userAccountControl, 0x200
}

我从here借了一些代码来实现密码位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57549697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档