LDAP搭建统一认证服务

LDAP搭建统一认证服务LDAP主要用来解决统一认证的问题,比如我们经常使用的nextcloud、proxmox、Linux主机等,均支持配置LDAP。

欢迎大家来到IT世界,在知识的湖畔探索吧!

LDAP的基本概念

  LDAP主要用来解决统一认证的问题,比如我们经常使用的nextcloud、proxmox、Linux主机等,均支持配置LDAP。通过部署LDAP,我们开发的众多网站和搭建的服务可以实现统一的用户管理,实现不同系统的统一认证,用户密码的统一修改等。LDAP是以树状结构的目录数据库为基础的服务,所以和我们文件夹类似的结构,以下是各个目录部分的名称。

属性名

英文名称

中文名

备注

DN

Distinguished Name

识别名

表示条目在目录树中从根出发的绝对路径,是条目的唯一标识

DC

Domain Name

域名

OU

Organizational Unit

组织单元

最多可以有四级,每级最长32个字符,可以为中文

CN

Common Name

用户名

LDAP的搭建和使用

1. 安装ldap服务端及工具集

slapd是服务端程序,ldap-utils是工具集(ladpmodify,ldapadd等)

apt install slapd ldap-utils

欢迎大家来到IT世界,在知识的湖畔探索吧!

2. 重设密码和DN等信息

欢迎大家来到IT世界,在知识的湖畔探索吧!dpkg-reconfigure slapd
LDAP搭建统一认证服务

3. 配置支持memberOf模块

  由于部分应用需要memberOf支持,所以我们在一开始就要添加该模块,这样后续用到时候方便直接使用。该部分参考链接完成。

  首先需要新建三个文件,可以新建一个目录,分别是memberof_config.ldifrefint1.ldifrefint2.ldif。特别注意的是,在做这些之前,需要获取几个参数。

  • 查询ldap配置db文件。ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn | grep db
  • 查询ldap模块路径。find /usr/ -name ldap
LDAP搭建统一认证服务

新建memberof_config.ldif,注意修改olcDatabaseolcModulePath为上面查询得结果。

# vim memberof_config.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcModulePath: /usr/lib/ldap

dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

新建refint1.ldif

欢迎大家来到IT世界,在知识的湖畔探索吧!# vim refint1.ldif
dn: cn=module{1},cn=config
add: olcmoduleload
olcmoduleload: refint

新建refint2.ldif,同样需要注意修改olcDatabase和上面查询得db结果一致。

# vim refint2.ldif
dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner

运行下面命令,配置memberof模块。

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif

运行下面命令加载和配置refint模块。

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif

4. 测试模块是否添加成功(生产环境不需要执行)

先添加两个节点,分别用于存放用户和用户组。新建配置文件add_nodes.ldif。注意修改dn的值为你自己的。

# vim add_nodes.ldif
dn: ou=people,dc=zhushurui,dc=cn
objectClass: organizationalUnit
ou: People

dn: ou=groups,dc=zhushurui,dc=cn
objectClass: organizationalUnit
ou: Groups

执行以下命令使得配置生效。注意修改dc,输入密码后执行成功。

ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_nodes.ldif

添加一个用户,首先生成用户密码。

slappasswd -h {SHA} -s my_secret_password

结果如下:

{SHA}M6XDJwA47cNw9gm5kXV1uTQuMoY=

新建配置文件add_user.ldif如下,添加用户,特别注意修改你的dn。

# vim add_user.ldif
dn: uid=john,ou=people,dc=zhushurui,dc=cn
cn: John Doe
givenName: John
sn: Doe
uid: john
uidNumber: 5000
gidNumber: 10000
homeDirectory: /home/john
mail: john.doe@example.com
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
loginShell: /bin/bash
userPassword: {SHA}M6XDJwA47cNw9gm5kXV1uTQuMoY=

执行以下命令,添加用户,需要修改dc和cn为你管理员的账号,默认情况只需要修改dc即可,然后输入你的管理员密码。

ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_user.ldif

新建配置文件add_group.ldif,添加用户组,特别注意修改你的dn和member。

# vim add_group.ldif
dn: cn=mygroup,ou=groups,dc=zhushurui,dc=cn
objectClass: groupofnames
cn: mygroup
description: All users
member: uid=john,ou=people,dc=zhushurui,dc=cn

执行以下命令,添加用户组,同样需要修改dc和cn。输入密码后添加成功。

ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_group.ldif

接下来查询用户,看是否已经有memberof模块配置了。

ldapsearch -x -LLL -H ldap:/// -b uid=john,ou=people,dc=zhushurui,dc=cn dn memberof
LDAP搭建统一认证服务

5. 安装phpldapadmin

phpldapadmin可以用来管理ldap,执行以下命令安装软件。

apt install phpldapadmin

这时候可以通过访问http://ip/phpldapadmin/访问,我们需要修改配置文件。

vim /etc/phpldapadmin/config.php

注意设置成以下几个。第一条表示不给匿名用户登录,第二话设置只允许管理员登录,第三句话修改登录页默认填充的用户名,第四句话让phpldapadmin识别默认的dn。

$servers->setValue('login','anon_bind',false);
$servers->setValue('login','allowed_dns',array('cn=admin,dc=zhushurui,dc=cn'));
$servers->setValue('login','bind_id','cn=admin,dc=zhushurui,dc=cn');
$servers->setValue('server','base',array('dc=zhushurui,dc=cn'));

6. 使用phpldapadmin新增用户和用户组

  一开始先使用模板Generic: Organisational Unit新建PeopleGroups两个节点,分别用于新建用户和用户组。在Users下面新建用户使用inetOrgPerson,在Groups下面新建用户组使用groupOfNames就可以自动添加memberof模块支持。也可以参考第四部分新增一个用户模板,后续可以通过复制的形式新增用户。

7. 安装和使用ldap-account-management(可选)

尝试后不推荐用,好像字段不全等问题,执行下列命令安装。

apt install ldap-account-manager

访问http://ip/lam即可登录系统。然后根据下面的动图完成初始化配置。初始化密码是lam

配置服务器设置。

LDAP搭建统一认证服务

配置账号。

LDAP搭建统一认证服务

— Write by PercyC

2021年12月14日

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/36926.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信