OpenLDAP添加自定义objectClass实现添加自定义属性

最近使用到OpenLDAP,需要集成进系统。但是OpenLDAP本身的模板中,能用的属性太少了,无法满足正常的业务需求,因此需要对条目的属性进行扩展。

确定的思路是新增自定义的objectClass,条目的objectClass添加该objectClass之后就可以合法添加自定义属性了(支持PhpLdapAdmin和ApacheDirectoryStudio等可视化工具)

但是能找到的相关的内容比较少,查到的比较多的也是直接添加schema然后在slapd.conf中引入。在服务器上试了一下(OpenLDAP版本号:2.4.44),没起作用。所以去stackoverflow上取了取经。

参考来源:https://stackoverflow.com/questions/45511696/creating-a-new-objectclass-and-attribute-in-openldap?r=SearchResults

1:服务器任意目录创建新的schema文件,例如test.schema。

文件中的objectclass需要修改name,且必须确保每个项的oid全局唯一(oid的命名都有规律可循,但是我不知道的时候都是瞎编的- - )。

attributetype ( 1.3.6.1.4.1.42.2.27.4.1.98
        NAME ‘userCertNo‘
        DESC ‘userCertNo‘
        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 ‘userCertCN‘
        DESC ‘userCertCN‘
        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 $ userCertNo $ userCertCN ) )

2:创建编译用的配置文件,例如test.conf。其中只需要包含自己创建的schema即可

include /etc/openldap/test/test.schema

3:以上两个文件放在同级目录下(也可以不放一起,编译时指定即可),随后创建目录testdir用于存放编译后的文件。

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

slaptest -f test.conf -F testdir

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

图中标黄的内容表明的是你要创建的objectClass的类名。

5:文件名修改完成后在该目录下执行slapadd命令,将该文件添加进OpenLdap库

slapadd -l ebankUser.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无法读取。

chmod -R 777 cn=schema

然后重启服务

Service slapd restart

8:通过可视化管理界面phpldapadmin或者ApacheDirectoryStudio连接,然后在已有的用户上新增objectClass,选择自定义添加的class即可。随后便可以手动添加自定义的属性值了。

原文地址:https://www.cnblogs.com/ForsakenCoder/p/12149910.html

时间: 2024-10-13 00:44:34

OpenLDAP添加自定义objectClass实现添加自定义属性的相关文章

Jquery获取select option动态添加自定义属性值失效

Jquery获取select option动态添加自定义属性值失效 2014/12/31 11:49:19 中国学网转载 编辑:李强 http://www.xue163.com/588880/39096/390963333.html 为了帮助网友解决“Jquery获取select optio”相关的问题,中国学网通过互联网对“Jquery获取select optio”相关的解决方案进行了整理,用户详细问题包括:jqueryselectie9  function GetFenceItemData(

Java编程:向枚举添加自定义属性(用for-each循环来打印每种苹果的名称和价格)

package 枚举; //向枚举添加自定义属性 enum Apple { AURORA(10),BELMAC(12),CORTLAND(15),EMPIRE(8),GRAVENSTEIN(11); private int price; //构造方法 Apple(int price) { this.price = price; } int getPrice() { return price; } } public class ApplesEnum { public static void mai

添加自定义属性值及应用

添加自定义属性值: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <script> 7 window.onload = function (){ 8 var aBtn =

dedecms:织梦文章如何添加“自定义属性”标签(sql命令行工具)

dede织梦如何添加“自定义属性”标签“症状” 1.进入后台——系统——SQL命令行工具——运行SQL命令行,添加arcatt表字段: insert into`dede_arcatt`(sortid,att,attname) values(9,'d','症状') 2.添加archives表字段: alter table `dede_archives` modify `flag` set ('h','c','p','f','s','j','a','b','d') default NULL     

JavaScript: 高级技巧: window 对象也可以添加自定义属性

JavaScript: 高级技巧: window 对象也可以添加自定义属性 例如 window.ntName = 'a';例如 window.ntXw = top; 优点是, window 无须等加载完毕, 任何时候都可以调用, 如果是页面元素和变量, 就需要小姐加载完毕才能使用 例如在 lhg: 中 父页面dlg_XXX.ShowDialog(); dlg_XXX.inwin.nt调用父窗口 = window; 子页面alert( window.nt调用父窗口.location.href );

给html元素添加自定义属性,并且用jquery进行筛选

例如有多个div,想要实现类似radio的效果. <div name="teacher" selected="selected">tch1</div> <div name="teacher">tch1</div> <div name="teacher">tch1</div> <div name="student">stu1&

redmine添加自定义属性

使用redmine创建问题的时候,可能会发现没有我们需要的属性,这时候我们可以添加自定义的属性. 以添加满意度属性为例: 1.进入redmine管理界面,选择自定义属性 2.选择问题下面的新建自定义属性 3.按照需求添加属性,把需要跟踪的问题标签勾选上 4.现在我们创建问题的时候就有自定义的属性了

React添加自定义属性

使用‘data-’前缀即可,代码举例 render(){ return ( <ul className={css.forUl}> { this.props.todo.map(function(item,index){ return ( <li className={css.forLi} key={index+'s'} data-index={index}> //此处即为添加的自定义属性 <input type="text" onBlur={this.han

图解如何在DC上添加自定义属性类

刚才在群里,看到大家问了个AD 自定义属性的问题,现在我来给大家解答下,大家可能都遇到过这样的场景: 1. 在工作上,需要在人员上增加一些属性,比如:性别.是否婚配.年龄.性取向-.(请忽视) 2. 我们不只想要自定义一些人员属性,还想给组.计算机.其他对象也需要定义一些属性,比如说,这个组是否为领导组.排序排多少位等等 我先来说个真实的例子,我去年在做项目上遇到个需求,XX公司要求在SharePoint 上按照公司.部门优先级做为顺序显示组织结构.部门点开后,里面的人员还要求领导要排在上面,然