Интегрировать eGroupWare с доменом Centaurus: различия между версиями

Материал из ALT Linux Wiki
(Дополнение, касающееся безопасности)
Строка 7: Строка 7:
Вероятно, это ограничение можно обойти, например при помощи [http://ru.wikipedia.org/wiki/SSH#SSH-.D1.82.D1.83.D0.BD.D0.BD.D0.B5.D0.BB.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 SSH-туннелирования].   
Вероятно, это ограничение можно обойти, например при помощи [http://ru.wikipedia.org/wiki/SSH#SSH-.D1.82.D1.83.D0.BD.D0.BD.D0.B5.D0.BB.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 SSH-туннелирования].   


''На самом деле можно просто ослабить безопасность, разрешив соединения ldap из сети. Для этого достаточно в /etc/sysconfig/ldap изменить параметр SLAPDURLLIST:''
На самом деле можно просто ослабить безопасность, разрешив соединения ldap из сети. Для этого достаточно в /etc/sysconfig/ldap изменить параметр:
 
  #SLAPDURLLIST="'ldap://localhost/ ldaps:///'"
  #SLAPDURLLIST="'ldap://localhost/ ldaps:///'"
  SLAPDURLLIST="'ldap:/// ldaps:///'"  
  SLAPDURLLIST="'ldap:/// ldaps:///'"  
''Однако, поступать так следует только в самом крайнем случае и при полной уверенности в безопасности локальной сети, к которой подключен сервер.''
 
''Однако, поступать так можно только в крайнем случае и при полной уверенности в безопасности сети, к которой подключен сервер.''


Здесь и далее: ''domain'' - имя домена Centaurus, точно так, как было указано в поле имени "Домен:"
Здесь и далее: ''domain'' - имя домена Centaurus, точно так, как было указано в поле имени "Домен:"
Строка 30: Строка 32:
  Имя сервера LDAP: localhost
  Имя сервера LDAP: localhost
  LDAP контекст: ou=People,dc=''domain''
  LDAP контекст: ou=People,dc=''domain''
  Контекст групп LDAP: ou=Group,dc=''domain''
  Контекст групп LDAP: [[ou=EGroup]],dc=''domain''
  Корневой dn LDAP (поиск акаунтов и смена паролей): cn=ldaproot,dc=''domain''
  Корневой dn LDAP (поиск акаунтов и смена паролей): cn=ldaproot,dc=''domain''
  Пароль LDAP: '''взять из файла /etc/openldap/slapd-''domain''.conf'''
  Пароль LDAP: '''взять из файла /etc/openldap/slapd-''domain''.conf'''
  Тип шифрования LDAP: BLOWISH_CRYPT
  Тип шифрования LDAP: BLOWISH_CRYPT
[[Важное замечание:]]
В домене Centaurus для хранения групп используется ou=Group,dc=''domain''. По умолчанию, там образуется множество групп с именами, совпадающими с именами пользователей. Поэтому при назначении, например, задач в ИнфоЖурнале будет указан не пользователь, а его группа с таким же именем. В результате не работает уведомление по e-mail, так как группа (в отличие от самого пользователя) аргумента mail не имеет. Видимо, это баг EGroupware. Выход в том чтобы назначить любой другой ou специально для групп EGroupware. 


Остальные параметры можно попробовать оставить как есть по умолчанию. Если всё получилось, то после сохранения настроек  
Остальные параметры можно попробовать оставить как есть по умолчанию. Если всё получилось, то после сохранения настроек  

Версия от 14:23, 3 мая 2012

Хранение учётных записей пользователей eGroupWare в домене Centaurus (LDAP)

Решение задачи аутентификации и хранения данных пользователей eGroupWare в домене Centaurus относительно несложно в случае, если eGroupWare и LDAP расположены на одном сервере. Дело в том, что по умолчанию для обращения к LDAP по сети разрешён только протокол ldaps, и это правильно. В eGroupWare (пока?) указать ldaps для аутентификации не получается, только ldap. Вероятно, это ограничение можно обойти, например при помощи SSH-туннелирования.

На самом деле можно просто ослабить безопасность, разрешив соединения ldap из сети. Для этого достаточно в /etc/sysconfig/ldap изменить параметр:

#SLAPDURLLIST="'ldap://localhost/ ldaps:///'"
SLAPDURLLIST="'ldap:/// ldaps:///'" 

Однако, поступать так можно только в крайнем случае и при полной уверенности в безопасности сети, к которой подключен сервер.

Здесь и далее: domain - имя домена Centaurus, точно так, как было указано в поле имени "Домен:" в соответствующем интерфейсе Alterator при инициализации домена. Если есть сомения, их можно устранить при помощи инструментария phpldapadmin или данных из конфигурационного файла /etc/openldap/slapd-domain.conf

Необходимые параметры вводятся в меню установки eGroupWare "Шаг 2 - Конфигуратор":

Авторизация / Учётные записи
Выберите используемый вами тип идентификации: LDAP
Тип шифрования SQL Для пароля (по умолчанию - md5): BLOWISH_CRYPT
Выберите где вы будете хранить/получать информацию об учетных записях пользователей: LDAP
Минимальный идентификатор учетных записей (напр.500 или 100, и т.п.): 5000
Используя LDAP:
Имя сервера LDAP: localhost
LDAP контекст: ou=People,dc=domain
Контекст групп LDAP: ou=EGroup,dc=domain
Корневой dn LDAP (поиск акаунтов и смена паролей): cn=ldaproot,dc=domain
Пароль LDAP: взять из файла /etc/openldap/slapd-domain.conf
Тип шифрования LDAP: BLOWISH_CRYPT

Важное замечание: В домене Centaurus для хранения групп используется ou=Group,dc=domain. По умолчанию, там образуется множество групп с именами, совпадающими с именами пользователей. Поэтому при назначении, например, задач в ИнфоЖурнале будет указан не пользователь, а его группа с таким же именем. В результате не работает уведомление по e-mail, так как группа (в отличие от самого пользователя) аргумента mail не имеет. Видимо, это баг EGroupware. Выход в том чтобы назначить любой другой ou специально для групп EGroupware.

Остальные параметры можно попробовать оставить как есть по умолчанию. Если всё получилось, то после сохранения настроек (перезапуск http-сервера не требуется) eGroupWare начнёт принимать пароли пользователей, определённых в домене Centaurus, хотя и не пропустит, ссылаясь на недостаточность прав доступа. Чтобы пользователь вошёл, необходимо зарегистрироваться в eGroupWare с учетной записью администратора "Шаг 3 - Учетная запись администратора" и добавить всем пользователям, которым разрешено использование eGroupWare, группу Default. Или любую другую группу, которой разрешено запускать приложение "Домой". Обратите внимание, что имена пользователей и их участие в группах одинаково отображаются как в меню Администрирование eGroupWare, так и в меню Пользователи через Alterator.

Создание новых учетных записей

Создавать новые учетные записи пользователей теперь можно как через Alterator, так и через eGroupWare. Однако, в домене Centaurus учетная запись имеет дополнительные атрибуты (класс sambaSamAccount), а eGroupWare их не создаёт, они для eGroupWare попросту не нужны. Поэтому, кроме особых случаев, учетные записи в домене следует создавать через Alterator.

Адресные книги

Адресная книга - список пользователей

Поскольку мы уже храним учетные записи пользователей со всеми необходимыми атрибутами в каталоге LDAP, к ним можно обратиться из почтового клиента. Почтовым клиентом по умолчанию в дистрибутиве Centaurus служит Evolution, поэтому подключение адресной книги лучше всего показать на его примере. Откроем Evolution, Вид - Окно - Контакты (Ctrl+2) - Файл - Создать - Адресная книга. В окне Новая адресная книга следует выставить такие параметры:

Тип: На серверах LDAP
Имя: любое интуитивно понятное, например, Сотрудники
Сервер: имя или адрес сервера LDAP (в нашем примере - контроллера домена domain)
Порт: 636
Использовать защищенное соединение: Шифрование TLS
Метод подключения: использовать адрес электронной почты пользователя, как он указан в свойствах учетной записи

Далее, на вкладке Подробности

База поиска: ou=People,dc=domain
Диапазон поиска: Один или Под (достаточно Один)
OK  

Если всё получилось, то при первом обращении к адресной книге Evolution переспросит и предложит сохранить пароль пользователя. После этого адресную книгу Сотрудники можно использовать при создании новых сообщений как из веб-интерфейса eGroupWare, так и напрямую из Evolution.

Общая адресная книга

Подключим общую адресную книгу (она же - адресная книга группы Default) с тем, чтобы все пользователи в группе могли создавать, хранить, изменять и при необходимости удалять контакты в ней. Причем не только из веб-интерфейса, но и из Evolution. По умолчанию eGroupWare сохраняет адресные книги в базе данных SQL, эту настройку необходимо изменить. Для этого надо войти в eGroupWare с учетной записи администратора, Адресная книга, Меню адресной книги (слева), Администрирование - Конфигурирование сайта и установить следующие параметры:

Выберите, где вы хотите записывать/извлекать контакы: LDAP
Хост LDAP для контактов: localhost
Контекст LDAP для контактов: dc=domain

Там же есть такая фраза: "Дополнительная информация об использовании LDAP в качестве хранилища контактов" и ссылка README. Крайне рекомендуется ознакомиться с файлом README, там есть все необходимые пояснения. Дело в том, что eGroupWare создаёт в каталоге новую ветку, для этого требуется разрешение в ACL каталога LDAP. Дополним список ACL в конфигурационном файле /etc/openldap/slapd-domain.conf

# Access to groups addressbooks
access to dn.regex="cn=default,ou=shared,ou=contacts,dc=domain$"
	attrs=entry,@person,@inetOrgPerson
	by users write
access to dn.regex="cn=default,ou=shared,ou=contacts,dc=domain$"
	attrs=children
	by users write

И перезапустим slapd. Теперь можно настроить Evolution так же, как на список пользователей, только имя адресной книге дадим Общая, а база поиска у нас будет cn=default,ou=shared,ou=contacts,dc=domain После этого адресную книгу можно использовать для ввода, редактирования и удаления контактов, создания новых сообщений как из веб-интерфейса eGroupWare (Default), так и напрямую из Evolution (Общая).