阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DrQueueOnRails 集成 LDAP 验证

227次阅读
没有评论

共计 5997 个字符,预计需要花费 15 分钟才能阅读完成。

在做集群渲染管理软件时候遇到 LDAP 问题,DrQueueOnRails 是 DrQueue 的 ruby web 接口,只有 LDAP 一种验证方式,就有了下面的安装步骤。

目录

  • 1 安装 LDAP
  • 2 修改 LDAP 配置文件
  • 3 修改 slapd.conf
  • 4 ldap_bind: Invalid credentials (49) 错误问题解决

安装 LDAP

yum install openldap-servers openldap-clients

修改主机名:

hostname master.local.com
sysctl -w kernel.hostname=master.local.com
echo '192.168.8.123 master.local.com master' >> /etc/hosts
sed -i 's/HOSTNAME=.*$/HOSTNAME=master.local.com/g' /etc/sysconfig/network

修改 LDAP 配置文件

vim /etc/openldap/ldap.conf
BASE dc=local.com
URI ldap://192.168.8.123

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap

修改 slapd.conf

vim /etc/openldap/slapd.conf
找到并修改如下内容:suffix             "dc=local.com"
rootdn          "cn=master,dc=local.com"
rootpw          geek          #ldapadd 时候要用的密码,中间用俩 TAB 键

测试配置文件是否正确:

slaptest -u -f /etc/openldap/slapd.conf 
config file testing succeeded

创建待验证的用户:

useradd geek
echo '123456' | passwd --stdin geek

安装迁移工具:

yum -y install migrationtools

会把一些迁移用户相关信息的脚本放在 /usr/share/migrationtools 下
修改迁移脚本:

vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "local.com";

# Default base 
$DEFAULT_BASE = "dc=local.com";

创建基本数据文件:

cd /usr/share/migrationtools/
./migrate_base.pl  >  base.ldif

编辑 base.ldif 文件,删除其它条目,保留如下信息:

dn: dc=local.com
dc: local.com
objectClass: top
objectClass: domain

dn: ou=People,dc=local.com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=local.com
ou: Group
objectClass: top
objectClass: organizationalUnit

创建用户数据库文件:

./migrate_passwd.pl /etc/passwd  ./user.ldif

编辑 user.ldif 文件,只保留 geek 用户相关条目:

dn: uid=geek,ou=People,dc=local.com
uid: geek
cn: geek
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$tFEuTisK$PA0x.Ib1nOmiafK4wedqTnT06nQGJxVnzzpHQYu1O8SPXy5o32KkXKzzkn3w1LM0vpauFgjDQ4FudpnoS2t6O.
shadowLastChange: 15907
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/geek

创建用户组数据库文件:

./migrate_group.pl /etc/group  groups.ldif

编辑 groups.ldif 文件,只保留 geek 组的条目:

dn: cn=geek,ou=Group,dc=local.com
objectClass: posixGroup
objectClass: top
cn: geek
userPassword: {crypt}x
gidNumber: 500

启动服务:

/etc/init.d/slapd restart
chkconfig slapd on

依次添加 base.ldif、user.ldif、groups.ldif 到 LDAP 中:

ldapadd  -D "cn=master,dc=local.com" -W  -x  -f  base.ldif
Enter LDAP Password:                                                                   # 输入在 /etc/openldap/slapd.conf 中 rootpw 项的值.
ldap_bind: Invalid credentials (49)


推荐阅读:

RedHat6 下构建 LDAP 服务 http://www.linuxidc.com/Linux/2013-05/84741.htm

Linux 使用 pam_LDAP 通过 ad 域认证 http://www.linuxidc.com/Linux/2012-09/71043.htm

Zimbra 故障——Unable to determine enabled services from LDAP http://www.linuxidc.com/Linux/2012-07/66869.htm

ldap_bind: Invalid credentials (49) 错误问题解决

如果出现如上错误,检查密码是否对应。或者重新生成 slapd.d 下的配置数据:

rm -fr /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d/
/etc/init.d/slapd restart

这样就没有问题了。

编辑 DrQueueOnRails 目录中 config 下的 env 文件:

vim .../DrQueueOnRails/config/environment.rb
# LDAP variables
ENV['LDAP_TREEBASE'] ||= "dc=local.com"
ENV['LDAP_HOST'] ||= "master.local.com"
ENV['LDAP_PORT'] ||= "389"
ENV['LDAP_FILTER'] ||= "uid"
ENV['LDAP_ATTRS'] ||= "cn"

# user status, quota (disk space in GB), job priorities 
ENV['USER_STATUS'] ||= "demo,student,advanced,admin,ldapuser1"               #在这里添加新的用户
ENV['USER_QUOTA'] ||= "0.5,5,15,35,55,55"                                      # 用户的磁盘配额
ENV['USER_PRIO'] ||= "100,500,750,1000,2000,2000"                    # 用户执行任务时候的优先级
ENV['USER_ADMIN_PW'] ||= "password"

改完重新 db 一下。
在数据库中添加 ldap 用户记录:

mysql -uroot -p
use DrQueueOnRails;
insert into profiles(name,email,avatar,ldap_account,status,accepted) values('Geek Account','geek@local.com','NULL','geek','geek','0');

重启 apache,就可以用 ldap 用户登录了。

在做集群渲染管理软件时候遇到 LDAP 问题,DrQueueOnRails 是 DrQueue 的 ruby web 接口,只有 LDAP 一种验证方式,就有了下面的安装步骤。

目录

  • 1 安装 LDAP
  • 2 修改 LDAP 配置文件
  • 3 修改 slapd.conf
  • 4 ldap_bind: Invalid credentials (49) 错误问题解决

安装 LDAP

yum install openldap-servers openldap-clients

修改主机名:

hostname master.local.com
sysctl -w kernel.hostname=master.local.com
echo '192.168.8.123 master.local.com master' >> /etc/hosts
sed -i 's/HOSTNAME=.*$/HOSTNAME=master.local.com/g' /etc/sysconfig/network

修改 LDAP 配置文件

vim /etc/openldap/ldap.conf
BASE dc=local.com
URI ldap://192.168.8.123

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap

修改 slapd.conf

vim /etc/openldap/slapd.conf
找到并修改如下内容:suffix             "dc=local.com"
rootdn          "cn=master,dc=local.com"
rootpw          geek          #ldapadd 时候要用的密码,中间用俩 TAB 键

测试配置文件是否正确:

slaptest -u -f /etc/openldap/slapd.conf 
config file testing succeeded

创建待验证的用户:

useradd geek
echo '123456' | passwd --stdin geek

安装迁移工具:

yum -y install migrationtools

会把一些迁移用户相关信息的脚本放在 /usr/share/migrationtools 下
修改迁移脚本:

vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "local.com";

# Default base 
$DEFAULT_BASE = "dc=local.com";

创建基本数据文件:

cd /usr/share/migrationtools/
./migrate_base.pl  >  base.ldif

编辑 base.ldif 文件,删除其它条目,保留如下信息:

dn: dc=local.com
dc: local.com
objectClass: top
objectClass: domain

dn: ou=People,dc=local.com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=local.com
ou: Group
objectClass: top
objectClass: organizationalUnit

创建用户数据库文件:

./migrate_passwd.pl /etc/passwd  ./user.ldif

编辑 user.ldif 文件,只保留 geek 用户相关条目:

dn: uid=geek,ou=People,dc=local.com
uid: geek
cn: geek
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$tFEuTisK$PA0x.Ib1nOmiafK4wedqTnT06nQGJxVnzzpHQYu1O8SPXy5o32KkXKzzkn3w1LM0vpauFgjDQ4FudpnoS2t6O.
shadowLastChange: 15907
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/geek

创建用户组数据库文件:

./migrate_group.pl /etc/group  groups.ldif

编辑 groups.ldif 文件,只保留 geek 组的条目:

dn: cn=geek,ou=Group,dc=local.com
objectClass: posixGroup
objectClass: top
cn: geek
userPassword: {crypt}x
gidNumber: 500

启动服务:

/etc/init.d/slapd restart
chkconfig slapd on

依次添加 base.ldif、user.ldif、groups.ldif 到 LDAP 中:

ldapadd  -D "cn=master,dc=local.com" -W  -x  -f  base.ldif
Enter LDAP Password:                                                                   # 输入在 /etc/openldap/slapd.conf 中 rootpw 项的值.
ldap_bind: Invalid credentials (49)


推荐阅读:

RedHat6 下构建 LDAP 服务 http://www.linuxidc.com/Linux/2013-05/84741.htm

Linux 使用 pam_LDAP 通过 ad 域认证 http://www.linuxidc.com/Linux/2012-09/71043.htm

Zimbra 故障——Unable to determine enabled services from LDAP http://www.linuxidc.com/Linux/2012-07/66869.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5997字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中