openldap 自行添加新的AttributeTypes和ObjectClasses

openldap 自行添加新的AttributeTypes和ObjectClasses

1.openldap添加AttributeType

我的方式比较简单粗暴,是直接修改ldfi文件完成的,文件里面提示使用ldapmodify修改,但是我还没有尝试成功

文件位置:/etc/openldap/slapd.d/cn=config/cn=schema,里面的文件在重启之后会自动的加载

修改目标:为posixGroup添加一个新的属性leader

所属文件名:cn={2}nis.ldif

添加内容如下:

...

olcAttributeTypes: {24}( 1.3.6.1.1.1.1.28 NAME 'leader' EQUALITY caseEx
actIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.
121.1.26{1024} SINGLE-VALUE )

...

olcObjectClasses: {2}( 1.3.6.1.1.1.2.2 NAME 'posixGroup' DESC 'Abstraction o
f a group of accounts' SUP top STRUCTURAL MUST ( cn $ gidNumber ) MAY ( use
rPassword $ memberUid $ description $ leader ) )

...

然后重启ldap服务: service slapd restart

查看属性是否已经生效

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config  

显示较多,可以通过grep进行筛选

PS:我遇到的一个问题是,我重启后从phpldapamin里面怎么都看不到,后来直接重启了nginx服务,才加载过来

2.openldap 添加ObjectClass

创建一个test.schema

[root@localhost test]# cat test.schema
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.98
NAME 'userCertNoBaixue'
DESC 'userCertNoBaixue'
EQUALITY caseExactMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.97
NAME 'userCertCNBaixue'
DESC 'userCertCNBaixue'
EQUALITY caseExactMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.88
NAME 'financeUser'
DESC 'financeUser'
SUP top
AUXILIARY
MAY ( cn $ userCertNoBaixue $ userCertCNBaixue ) )

再创建一个cat test.conf

[root@localhost test]# cat test.conf
include /etc/openldap/test/test.schema

两个文件放在同级目录,并在目录下创建一个testdir

使用命令slaptest -f test.conf -F testdir

将会在tesdir文件夹下生成多个文件

在路径testdir/cn=config/cn=schema 将文件改名为ebankUser.ldif

文件内容如下:

[root@localhost cn=schema]# cat ebankUser.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 ded11f2d
dn: cn=financeUser,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: financeUser
olcAttributeTypes: {0}( 1.3.6.1.4.1.42.2.27.4.1.98 NAME 'userCertNoBaixue' D
ESC 'userCertNoBaixue' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.
121.1.15 SINGLE-VALUE )
olcAttributeTypes: {1}( 1.3.6.1.4.1.42.2.27.4.1.97 NAME 'userCertCNBaixue' D
ESC 'userCertCNBaixue' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.
121.1.15 SINGLE-VALUE )
olcObjectClasses: {0}( 1.3.6.1.4.1.42.2.27.4.2.88 NAME 'financeUser' DESC 'f
inanceUser' SUP top AUXILIARY MAY ( cn $ userCertNoBaixue $ userCertCNBaixu
e ) )
structuralObjectClass: olcSchemaConfig
entryUUID: 12f670e2-a24e-103a-9fa1-f93b5ff9c79e
creatorsName: cn=config
createTimestamp: 20201014094753Z
entryCSN: 20201014094753.348483Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20201014094753Z

标红的位置是需要自己手动修改的

最后使用如下命令添加:

slapadd -l ebankUser.ldif -n 0

会在/etc/openldap/slapd.d/cn=config/cn=schema看到cn={13}financeuser.ldif

其余操作跟上面一样,重启后最好将nginx也重启了,确保生效

原文地址:https://www.cnblogs.com/estherSH/p/13816907.html