OpenLDAP & Asterisk - nenhum conhecimento superior global

1

Estou com dificuldades para configurar o OpenLDAP para permitir que o Asterisk armazene informações sobre usuários. Eu tentei seguir vários howto's, mas infelizmente não consigo configurá-lo corretamente.

Parece que a maioria das etapas está indo bem, até eu querer importar um usuário.

Instalação do 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

Copie o esquema de asterisco LDAP:

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

Importe asterisk.ldif:

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

A importação parece estar bem aqui:

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"

Quando eu verifico as configurações em "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif", vejo que a seguinte configuração foi gerada:

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

Eu criei o seguinte arquivo para simular a importação de um usuário existente (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

Por fim, inicio a importação ...

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

mas que retorna "nenhum conhecimento superior global":

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

Devo usar "cn = asterisco, cn = esquema, cn = config" como rootCDN? O que estou fazendo errado aqui?

    
por driesken 07.04.2015 / 15:32

1 resposta

0

Seu banco de dados LDAP tem este sufixo:

dc=my-domain,dc=com

Você está tentando adicionar uma entrada com dn:

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

LDAP é um banco de dados hierárquico, você deve corrigir o sufixo DB ou o DN de entrada para atender às suas necessidades de hierarquia.

Você pode fazer isso alterando a entrada dn com:

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

Mas ainda assim a Unidade de Organização ou = sip, dc = meu-domínio, dc = com está ausente, você pode criá-lo usando um LDIF como o seguinte:

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

Agora sua hierarquia está pronta para aceitar a entrada cn = 1000, ou = sip, dc = meu-domínio, dc = com

    
por 08.04.2015 / 18:05