如何在LDAP服务器上使用Perl for Unix身份验证创建用户?

zf2sa74q  于 2022-11-04  发布在  Unix
关注(0)|答案(1)|浏览(152)

我正在尝试创建一个Web服务器,它需要在服务器本身进行一些用户身份验证,我需要用Perl来完成,所以我决定尝试在localhost中使用LDAP服务器。
我一直在尝试使用下面的脚本。一切都配置正确(因为我试图搜索已配置的条目),但是,当我尝试运行脚本时,它告诉我“索引生成失败”

  1. my $ldap = Net::LDAP->new( '127.0.0.1' ) or die "$@";
  2. my $mesg = $ldap->bind ('cn=admin, dc=ramal, dc=com',
  3. password=>'<admin_password>'
  4. );
  5. # $mesg->code or die $mesg->error;
  6. my $result = $ldap->add('uid=pruebaPerl, ou=User, dc=ramal, dc=com',
  7. attrs=> [
  8. 'uid' => 'pruebaPerl',
  9. 'cn' => 'Usuario de prueba de Perl',
  10. 'objectclass' => ['account', 'posixAccount', 'shadowAccount'],
  11. 'userPassword' => '<hashed password>',
  12. 'loginShell' => '/bin/bash',
  13. 'uidNumber' => 2001,
  14. 'gidNumber' => 2001,
  15. 'homeDirectory' => '/home/pruebaPerl'
  16. ]
  17. );
  18. $result->code and warn "Failed to add entry: ", $result->error;
  19. $mesg = $ldap->unbind

我认为加法的论证有问题,但我不知道是什么,欢迎任何帮助。

mhd8tkvw

mhd8tkvw1#

绝对是slapd方面的问题。不是perl方面的问题。
这个旧的线程https://www.openldap.org/lists/openldap-software/200407/msg00007.html表明,也许你的测试ldap结构是使用slapadd而不是ldapadd创建的错误,或者你有一个权限问题。
您是否尝试过strace 'ing slapd过程?
同时尝试删除'uid=pruebaPerl, ou=User, dc=ramal, dc=com' and 'cn=admin, dc=ramal, dc=com'中的空格

相关问题