修改OpenLDAP架构 – 将“host”属性添加到“person”objectclass

我们有一个传统的自定义Web应用程序,可以根据OpenLDAP服务器validation用户身份。 我们正试图build立另一个单独的OpenLDAP服务器来取代旧的OpenLDAP服务器,但是我们需要使新的OpenLDAP服务器与这个旧的应用程序兼容。 该应用程序从用户的属性中读取“主机”属性以获取应用程序的权限级别。

我的问题是,每当我尝试手动添加'主机'属性到任何'人'在新的目录我得到的错误:#!错误[LDAP:错误代码65 – 属性'主机'不允许]。

我已经尝试了Apache DS,ldapvi,ldapmodify等来添加这个属性,但不pipe我尝试什么,都说不允许。

(ldif | schema)中定义的'person'对象类是否有一个简单的方法来将这个'host'属性添加到余弦。 我对ldap模式比较陌生,正在寻找最简单,最简单的方法。

我将创build一个新的自定义对象类“MyCompanyPerson”,将其定义为派生自人员,并添加或创build我想要的属性。 这听起来像是你想要的?

编辑:

我不是这方面的世界专家,但是这是我今天使用的匿名版本。 令人讨厌的是没有本地使用的OID(我的LDAP没有办法连接到别人的),但是如果你愿意,你可以请求你自己的OID。

$ for i in * ; do echo ; echo $i ; echo ; cat $i | sed 's/^/ /' ; done 

mycompany.conf

 include /etc/openldap/schema/oidmacros include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/samba.schema include /etc/openldap/schema/mycompany.schema 

mycompany.schema

 attributeType ( MyCompanyInternalTelephone-oid NAME 'MyCompanyInternalTelephone' DESC 'MyCompany Internal Telephone' EQUALITY telephoneNumberMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 SINGLE-VALUE X-ORIGIN 'Custom MyCompany Internal Telephone Directory' ) attributeType ( MyCompanyPhotoURL-oid NAME 'MyCompanyPhotoURL' DESC 'MyCompany Photo URL' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'Custom MyCompany Wiki' ) objectClass ( MyCompanyPerson-oid NAME 'MyCompanyPerson' DESC 'MyCompany Person' SUP ( inetOrgPerson ) STRUCTURAL MUST ( ) MAY ( MyCompanyInternalTelephone $ MyCompanyPhotoURL $ sshPublicKey ) X-ORIGIN 'Custom MyCompany Directory' ) 

oidmacros

 # OID Macros # # Yellowbank's IANA Assigned OID for testing objectIdentifier MyCompany 1.3.6.1.4.1.25948.1 objectIdentifier MyCompanyAT MyCompany:1 objectIdentifier MyCompanyOC MyCompany:2 objectIdentifier MyCompanyPhotoURL-oid MyCompanyAT:100 objectIdentifier MyCompanyInternalTelephone-oid MyCompanyAT:101 objectIdentifier MyCompanyPerson-oid MyCompanyOC:1 

openssh.schema

 # octetString SYNTAX attributetype ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey' DESC 'MANDATORY: OpenSSH Public key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) # printableString SYNTAX yes|no objectclass ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY DESC 'MANDATORY: OpenSSH LPK objectclass' MAY ( sshPublicKey $ uid ) ) 

您需要包含ldapns.schema

 include /etc/openldap/schema/ldapns.schema 

ldapns模式为您提供了一个辅助objectClass“hostObject”。 如果您将其添加到您的个人,“主机”属性将可用。