OpenLDAP中schema 的简单设计
schema 在 openldap 中是作为定义数据结构的描述工具,但是定义规则比较复杂,在这里简单的讨论一下相关的内容。 一般来说如果要使用到一组schema时我们都需要在slapd.conf中定义,例如下面的配中置将会加载三组schema配置。 include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
如果需要定义自己数据结构或者在已有的ldap 对象上添加属性可以通过定义自己ldif信息文件来添加 dn: cn={2}inetorgperson,cn=schema,cn=config
changetype: modify
add: olcAttributeTypes
olcAttributeTypes: ( 2.16.840.1.113731.3.1.242 NAME 'enable' DESC 'freeze status' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: ( 2.16.840.1.113731.3.1.243 NAME 'first-name' DESC 'account first name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: ( 2.16.840.1.113731.3.1.244 NAME 'last-name' DESC 'account last name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: ( 2.16.840.1.113731.3.1.245 NAME 'language' DESC 'account language' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: ( 2.16.840.1.113731.3.1.246 NAME 'timezone' DESC 'account timezone' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
dn: cn={2}inetorgperson,cn=config changetype: modify replace: olcObjectClasses olcObjectClasses: ( 2.16.840.1.113731.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2 798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ em ployeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ ini tials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ pre ferredLanguage $ userSMIMECertificate $ userPKCS12 $ enable $ first-name $ last-name $ language $ timezone ) )
例如,在这一段定义定义中就向inetorgperson 对象添加 enable、first-name、last-name、language、timezone五个属性。这里简单的以enable属性来介绍定义的含义
定义ObjectClasses的方式与AttributeTypes的方式类似这里不再赘述。 在定义好用户信息的方式后就可以使用ldapmodify将定义更新到openldap的config环境中,一般这里都是用的cn=admin,cn=config帐号 ldapmodify -D "cn=admin,cn=config" -w password -x -f $SLAPD_DIR/ldif/inetorgperson_add.ldif
以上就完成了向OpenLdap中添加自定义属性的工作,如果有更多需求可以参考OpenLdap官方相关的文档 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |