OpenLDAP 和 Asterisk - 没有全球高级知识

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

复制星号 LDAP 方案:

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”中的配置时,我发现生成了以下配置:

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

然后我创建了以下文件来模拟现有用户的导入(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 吗?我在这里做错了什么?

答案1

您的 LDAP 数据库具有以下命令:

dc=my-domain,dc=com

您正在尝试添加带有 dn 的条目:

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

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

您可以通过以下方式更改条目 dn 来实现:

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

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

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

现在你的层次结构已准备好接受输入cn=1000,ou=sip,dc=我的域,dc=com

相关内容