我正在努力设置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