OpenLDAP&Asterisk – 没有全球性的高级知识

我正在努力设置OpenLDAP以允许Asterisk存储有关用户的信息。 我试图遵循几个如何,但不幸的是我无法正确设置它。

似乎大多数步骤都很好,直到我想导入一个用户。

安装OpenLDAP:

yum install openldap-servers openldap-clients mkdir /var/lib/ldap chown -R ldap:ldap /var/lib/ldap cd /usr/local/src/certified-asterisk-13.1-cert1/contrib/scripts 

复制星号LDAPscheme:

 cp asterisk.ldap-schema /etc/openldap/schema/ systemctl restart slapd.service 

导入asterisk.ldif:

 ldapadd -Y EXTERNAL -H ldapi:/// -f ./asterisk.ldif 

导入似乎在这里罚款:

 SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=asterisk,cn=schema,cn=config" 

当我检查“/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif”中的configuration时,看到下面的configuration生成了:

 dn: olcDatabase={2}hdb objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {2}hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=my-domain,dc=com olcRootDN: cn=Manager,dc=my-domain,dc=com olcDbIndex: objectClass eq,pres olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub structuralObjectClass: olcHdbConfig entryUUID: c11a9b72-7170-1034-8245-599798aeacb0 creatorsName: cn=config createTimestamp: 20150407125255Z entryCSN: 20150407125255.397631Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20150407125255Z 

然后我创build了以下文件来模拟现有用户(createduser.ldif)的导入:

 dn: cn=1000,ou=sip,dc=digium,dc=internal objectClass: AsteriskAccount objectClass: AsteriskExtension objectClass: AsteriskSIPUser objectClass: top AstAccountName: sip user cn: 1000 AstAccountDefaultUser: 0 AstAccountExpirationTimestamp: 0 AstAccountFullContact: 0 AstAccountHost: dynamic AstAccountIPAddress: 0 AstAccountLastQualifyMilliseconds: 0 AstAccountPort: 0 AstAccountRegistrationServer: 0 AstAccountType: 0 AstAccountUserAgent: 0 AstExtension: 1000 

最后,我开始导入…

 ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=Manager,dc=my-domain,dc=com" -f createduser.ldif 

但是,返回“没有全球优越的知识”:

 SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=1000,ou=sip,dc=digium,dc=internal" ldap_add: Server is unwilling to perform (53) additional info: no global superior knowledge 

我应该用“cn = asterisk,cn = schema,cn = config”作为rootCDN吗? 我在这里做错了什么?

您的LDAP数据库具有此后缀:

 dc=my-domain,dc=com 

您正试图添加一个条目与DN:

 cn=1000,ou=sip,dc=digium,dc=internal 

LDAP是一个分层数据库,您必须修复数据库后缀或条目DN以符合您的层次结构需求。

您可以通过以下操作更改条目dn:

 cn=1000,ou=sip,dc=my-domain,dc=com 

但是,组织单元ou = sip,dc = my-domain,dc = com仍然缺失,您可以使用如下所示的LDIF创build它:

 dn: ou=sip,dc=my-domain,dc=com ou: sip objectClass: organizationalUnit 

现在您的层次结构已准备好接受条目cn = 1000,ou = sip,dc = my-domain,dc = com