Alfresco: авторизация пользователей в Zimbra LDAP + SSL
Есть сервер с Alfresco 3.4d и сервер с Zimbra 7. Настроим авторизацию пользователей в LDAP Zimbra. Будем использовать SSL шифрование для LDAP. Есть одна трудность — по-умолчанию, LDAP Zimbrы работает на 389 порту и поддерживает конечно TLS, но Alfresco с ним нормально не работает. Для того, чтобы LDAP Zimbrы работал также на 636 порту с поддержкой SSL нужно подправить конфигурацию.
На сервере Zimbra заходим в консоль:
Добавляем новую переменную:
Правим скрипт /opt/zimbra/bin/ldap. Ищем строки соответствующие. Ниже закоментировано то что было, под этим что стало:
Рестартуем:
Теперь OpenLDAP, входящий в состав Zimbra работает на 2х портах.
Почитать
Для сервера Alfresco нам понадобится сертификат сервера Zimbra. Копируем файл ca.pem из /opt/zimbra/conf/ca на сервер Alfresco.
Используем keytool, чтобы добавить сертификат в хранилище:
ca.pem удаляем — он нам больше не нужен.
Правим:
/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/ldap/ldap-authentication.properties
Мои настройки:
user1 — пользователь, который по-умолчанию получит права администратора Alfresco.
Правим /opt/alfresco/tomcat/shared/classes/alfresco-global.properties. Создаем цепочку авторизации, т.е. сначала внутренняя авторизация, затем с использованием LDAP:
Правим скрипт запуска /opt/alfresco/tomcat/bin/catalina.sh. Добавляем следущюю строку:
Это необходимо, чтобы виртуальная машина Java нашла файл с хранилищем ключей.
Перезапускаем Alfresco.
На сервере Zimbra заходим в консоль:
su - zimbra
Добавляем новую переменную:
zmlocalconfig -e ldaps_url="ldaps://mail.mydomain.com:636"
Правим скрипт /opt/zimbra/bin/ldap. Ищем строки соответствующие. Ниже закоментировано то что было, под этим что стало:
#zmsetvars \
# ldap_is_master \
# ldap_url \
# ldap_bind_url \
# ldap_master_url \
# ldap_replica_rid \
# ldap_replication_password \
# ldap_common_require_tls
zmsetvars \
ldap_is_master \
ldap_url \
ldap_bind_url \
ldap_master_url \
ldap_replica_rid \
ldap_replication_password \
ldap_common_require_tls \
ldaps_url
# sudo /opt/zimbra/libexec/zmslapd -l LOCAL0 -u zimbra -h "${bind_url} ldapi:///" \
# -F /opt/zimbra/data/ldap/config -d 1 2>&1 | egrep "failed|error" &
sudo /opt/zimbra/libexec/zmslapd -l LOCAL0 -u zimbra -h "${bind_url} ${ldaps_url} ldapi:///" \
-F /opt/zimbra/data/ldap/config -d 1 2>&1 | egrep "failed|error" &
# sudo /opt/zimbra/libexec/zmslapd -l LOCAL0 \
# -u zimbra -h "${bind_url} ldapi:///" -F /opt/zimbra/data/ldap/config
sudo /opt/zimbra/libexec/zmslapd -l LOCAL0 \
-u zimbra -h "${bind_url} ${ldaps_url} ldapi:///" -F /opt/zimbra/data/ldap/config
Рестартуем:
zmcontrol restart
Теперь OpenLDAP, входящий в состав Zimbra работает на 2х портах.
Почитать
Для сервера Alfresco нам понадобится сертификат сервера Zimbra. Копируем файл ca.pem из /opt/zimbra/conf/ca на сервер Alfresco.
Используем keytool, чтобы добавить сертификат в хранилище:
/opt/alfresco/java/bin/keytool -import -alias mail.mydomain.com -keystore /opt/alfresco/keystore -file ./ca.pem
ca.pem удаляем — он нам больше не нужен.
Правим:
/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/ldap/ldap-authentication.properties
Мои настройки:
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=uid=%s,ou=people,dc=domain,dc=com
ldap.authentication.java.naming.provider.url=ldaps://mail.mydomain.com:636
ldap.authentication.defaultAdministratorUserNames=user1
ldap.synchronization.active=false
user1 — пользователь, который по-умолчанию получит права администратора Alfresco.
Правим /opt/alfresco/tomcat/shared/classes/alfresco-global.properties. Создаем цепочку авторизации, т.е. сначала внутренняя авторизация, затем с использованием LDAP:
authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
Правим скрипт запуска /opt/alfresco/tomcat/bin/catalina.sh. Добавляем следущюю строку:
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/opt/alfresco/keystore"
Это необходимо, чтобы виртуальная машина Java нашла файл с хранилищем ключей.
Перезапускаем Alfresco.
Комментарии (14)
RSS свернуть / развернутьgogasir
Sergei_T
Sergei_T
Нужно было 'ldap.authentication.userNameFormat=uid=%s,ou=people,dc=zibra,dc=XXXX,dc=com'
Теперь другая проблема, импортированные Имена пользователей в Alfresco отображаются вопросами.
gogasir
Было:'ldap.authentication.userNameFormat=uid=%s,ou=people,dc=zibra,dc=XXXX,dc=com'
Вот так надо:'ldap.authentication.userNameFormat=uid=%s,ou=people,dc=zibra,dc=XXXX,dc=com'
gogasir
mtaalamu.ru/blog/admining/1851.html
mtaalamu.ru/blog/admining/1201.html
А сервер на чем, mysql из комплекта alfresco? (возможно неправильный collation в mysql)
Sergei_T
Есть правда подозрение, что грабли из-за кривости импорта сертификата. Keytool сначала спрашивает, стоит ли доверять сертификату и нужно ли его импортировать, потом говорит, что импортировал сертификат в keystore, а в конце выдает ошибку типа "/opt/alfresco/keystore — это директория". Ну понятно, что директория, но чего ругаться то?!
И еще: проверил открытость портов. Оказалось 389 открыт, а 636 нет. При этом в настройках брандмауэра сказано пускать всех и отовсюду. Перевешивание синхронизации на 389 порт результатов не дает :-( Вобщем уже голову сломал над вопросом «что делать?!»
Ritm
Чтобы openldap работал на двух портах вот это делали? —
www.zimbra.com/forums/administrators/24352-enable-ldap-over-tls-_and_-ssl.html
Надо бы детально вывод команды keystore сюда
Sergei_T
-u zimbra -h "${bind_url} ldapi:///" -F /opt/zimbra/data/ldap/config
и меняю ее на
Ritm
-u zimbra -h "${bind_url} ldapi:///" -F /opt/zimbra/data/ldap/config
и меняю ее на
-u zimbra -h "${bind_url} ${ldaps_url} ldapi:///" -F /opt/zimbra/data/ldap/config
то у меня не стартует LDAP. Говорит что в 138 строке имеется ошибка. bind_url — команда не найдена, как и «ldaps_url», как и "-u"
Если я оставляю обе строки, то как я понимаю у меня LDAP работает на 389 порту и не работает на 636.
Под утро засыпая я подумал, а в подключении ли дело? Возможно ли, что ZIMBRA хранит информацию о пользователях где-то еще. Т.е. не в LDAP? Понимаю, звучит бредовенько, но может быть в этом проблема?
Ritm
Sergei_T
Sergei_T
Ritm
разрешен ли imap в настройках?
Касаемо что в админке пишет что мта не работает — это все фигня, там есть просто косяки со сбором статистики, это не значит что mta не работает))
Sergei_T
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.