Назад | Перейти на главную страницу

ошибка: автоматически удален объектный класс из шаблона, поскольку он не определен в схеме

Я устанавливаю openldap с phpldapadmin на 2 разных серверах CENTOS 7 со следующей конфигурацией:

сервер openldap:

firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-port=389/tcp
firewall-cmd --reload
yum install -y openldap openldap-clients openldap-servers
slappasswd

установите пропуск и обратите внимание на хеш

в: /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

Изменить:

olcSuffix: dc =mydomain, dc = com

olcRootDN: cn =пользователь, dc =mydomain, dc = com

olcRootPW: {SSHA} therandomhashfromslappswd

в /usr/share/openldap-servers/slapd.ldif

Изменить:

Строка 134: n = auth "прочитано

dn.base = "cn =пользователь, dc =mydomain, dc = com "прочитано * none Строка 144:

olcSuffix: dc =mydomain, dc = com Строка 145: olcRootDN:

cn =пользователь, dc =mydomain, dc = com

Добавить:

olcRootPW: {SSHA} therandomhashfromslappswd

в /etc/openldap/ldap.conf

изменение:

БАЗА dc = mydomain, dc = com

URI ldap: //hostname.domain.local

Бегать:

slaptest -u

тестирование файла конфигурации прошло успешно

Я получаю ошибку контрольной суммы, как показано ниже, но игнорирую ее.

54a39508 ldif_read_file: ошибка контрольной суммы на "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"

54a39508 ldif_read_file: ошибка контрольной суммы на "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"

Бегать:

systemctl enable slapd
systemctl start slapd
systemctl restart slapd
cd /etc/openldap/
vi base.ldif

Создайте

base.ldif

следующим образом:

dn: dc=mydomain,dc=com
objectClass: dcObject
objectClass: organization
o: mydomain.com
dc: mydomain

dn: ou=users,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users

dn: ou=groups,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: group

наконец запустить:

ldapadd -x -W -D "cn=root,dc=mydomain,dc=com" -f base.ldif
systemctl restart slapd

Сервер phpldapadmin:

Бегать:

yum -y install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
systemctl restart httpd.service
systemctl start httpd.service
systemctl enable httpd.service
yum -y install php php-mbstring php-pear php-ldap
systemctl restart httpd.service
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum --enablerepo=epel -y install phpldapadmin
setsebool -P httpd_can_connect_ldap on

результат:

соединение работает нормально, я могу получить доступ к сайту phpldapadmin и войти через открытый сервер ldap.

Проблема:

Я получаю много ошибок: Автоматически удалил ObjectClass из шаблона - хотя он мне действительно нужен для создания acct и т. Д.

Кто-нибудь знает, что здесь не так?

Я потратил немало часов на выяснение :(

Пожалуйста, дайте мне знать, если кто-нибудь может мне помочь :)

Спасибо,

И

Эти ошибки не влияют на функциональность. Вы можете скрыть эти сообщения об ошибках шаблона, раскомментировав эту строку в /etc/phpldapadmin/config.php:

$config->custom->appearance['hide_template_warning'] = true;

Сообщение об ошибке кажется довольно ясным. inetOrgPerson не определен в схеме вашего сервера. По умолчанию его там нет, и не похоже, что вы его добавили.

inetOrgPerson схема зависит от cosine схема, которая, в свою очередь, зависит от core схема. Схема ядра может присутствовать по умолчанию.

ldapadd <auth for cn=config> -f /etc/openldap/schema/core.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/cosine.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/inetorgperson.ldif

Возможно, вам придется немного взломать /etc/openldap/slapd.d/cn=config.ldif чтобы иметь возможность писать на cn=config. Некоторые дистрибутивы не имеют разумных значений по умолчанию для OpenLDAP.