openLdap扩展用户信息之自定义objectClass

1.创建新的schema文件

1.1 创建自己的目录

mkdir /etc/openldap/my

1.2 创建schema文件personExt.schema

cd /etc/openldap/my

vim personExt.schema

1.3 编辑personExt.schema文件

attributetype:类属性定义

必须确保每个项的oid全局唯一 如:2.16.840.1.113730.3.1.902

1.3.6.1.4.1.1466.115.121.1.15 为字符串类型的语法

#身份证
attributetype ( 2.16.840.1.113730.3.1.902
  NAME 'idCard'
  DESC 'the id of person'
  EQUALITY caseExactMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE )

#性别  
attributetype ( 2.16.840.1.113730.3.1.903
  NAME 'sex'
  DESC 'the sex of person'
  EQUALITY caseExactMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE)

#personExt
objectclass	( 1.3.6.1.4.1.42.2.27.4.2.88
    NAME 'personExt'
	DESC 'personExt'
    SUP top
    AUXILIARY
	MAY ( cn $ idCard $ sex ))

2:创建编译用的配置文件,例如ext.conf

[root@xxx my]# vim ext.conf 

include /etc/openldap/my/personExt.schema

3. 执行slaptest命令编译自定义的schema,生成ldif等文件

slaptest -f ext.conf -F /etc/openldap/my

4. 修改ldif文件

进入etc/openldap/my目录下的cn=config/cn=schema目录下可以看到生成的一个ldif文件。此时重命名该文件personext.ldif,并修改其中的cn和dn。(ldif文件中对空格等元素有严格要求,请不要额外添加空格等其他不必要的元素)

cd /etc/openldap/my/cn\=config/cn\=schema

cat personext.ldif 
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 82df3bb8
dn: cn=personext,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: personext
olcAttributeTypes: {0}( 2.16.840.1.113730.3.1.902 NAME 'idCard' DESC 'the id
  of person' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SI
 NGLE-VALUE )
olcAttributeTypes: {1}( 2.16.840.1.113730.3.1.903 NAME 'sex' DESC 'the sex o
 f person' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SING
 LE-VALUE )
olcObjectClasses: {0}( 1.3.6.1.4.1.42.2.27.4.2.88 NAME 'personExt' DESC 'per
 sonExt' SUP top AUXILIARY MAY ( cn $ idCard $ sex ) )
structuralObjectClass: olcSchemaConfig
entryUUID: 1959ae8c-3443-103a-8a17-3f6499b48a02
creatorsName: cn=config
createTimestamp: 20200527085211Z
entryCSN: 20200527085211.695732Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20200527085211Z

5.执行slapadd命令,将该文件添加进OpenLdap库

slapadd -l personext.ldif -n 0

如下图所示即为成功,需要注意是否有提示属性重复或者oid重复,如果提示报错需要修改schema后再次编译。

较为常见的错误是提示你属性重复或者oid重复,此时最好重新修改schema文件然后再次编译。

6.以上步骤完成后可以在/etc/openldap/slapd.d/cn=config/cn=schema路径下看到自己新添加的objectclass对应的ldif文件了

7.文件赋权并重启ldap服务

直接重启服务会报错,需要给/etc/openldap/slapd.d/cn=config/cn=schema赋权或直接修改文件所有者为ldap,否则用户ldap无法读取

cd /etc/openldap/slapd.d/cn=config/cn=schema
chmod -R 777 cn=schema
systemctl restart slapd

至此,自定义的objectClass已经生效

8.删除自定义的objectClass

移除/etc/openldap/slapd.d/cn=config/cn=schema下personext.ldif文件,并重启opldap服务即可

OpenLDAP中,查看管理员用户信息通常是通过命令行工具`ldapsearch`来完成的。管理员用户信息可能包括用户的DN(Distinguished Name),以及可能绑定到用户对象的其他属性。要查看这些信息,您需要以具有足够权限的用户身份运行ldapsearch命令。 以下是查看管理员用户信息的一般步骤: 1. 确保您具有访问OpenLDAP服务器的权限,并且安装了`ldapsearch`工具。 2. 使用正确的命令格式,指定基础DN(Base Distinguished Name),过滤器以及所需的属性来查询用户信息。例如,如果管理员用户的DN是已知的,您可以直接指定它。否则,您可以从一个通用的DN开始搜索,如`ou=people,dc=example,dc=com`,然后逐步缩小搜索范围。 3. 您可能需要提供认证信息,比如管理员的bind DN和密码。 一个基本的`ldapsearch`命令格式如下: ```bash ldapsearch -x -D "管理员DN" -w 管理员密码 -b "搜索的基础DN" "(过滤条件)" "(属性列表)" ``` 这里是一个示例命令,用于搜索OU(组织单元)中所有管理员用户的信息: ```bash ldapsearch -x -D "cn=admin,dc=example,dc=com" -w secret -b "ou=administrators,dc=example,dc=com" "(objectClass=*)" "(cn=*)" ``` 在这个示例中: - `-x` 表示使用简单认证。 - `-D` 指定绑定的管理员DN。 - `-w` 后跟管理员密码。 - `-b` 设置搜索的基础DN。 - `(objectClass=*)` 是一个过滤器,用于选择所有对象类的条目。 - `(cn=*)` 表示返回所有以cn开头的属性。 请注意,根据您的OpenLDAP配置和安全要求,上述命令中的认证和访问控制可能有所不同。确保在执行之前咨询您的LDAP管理员或者参考相关的LDAP服务器文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值