Fórumok
Проблемы с авторизацией через LDAP
Fedor Ignatiev, módosítva 10 év-val korábban
Проблемы с авторизацией через LDAP
New Member Bejegyzések: 6 Csatlakozás dátuma: 2013.10.25. Legújabb bejegyzések
День добрый! Прошу помощи знатоков, с Liferay работаю совсем не долго и до конца не понимаю еще всех тонкостей настройки. Проблема заключается в следующем: Есть Active Directory, сервер Windows 2012 на который установлен Liferay 6.2 в комплекте с Tomcat. Пользователи импортируются через LDAP успешно, но вот если попытаться зайти - выдает ошибку:
Ваш запрос завершился с ошибкой.
Аутентификация не пройдена. Пожалуйста, попробуйте снова.
Сперва в логи писалась ошибка про неверный тип шифрования паролей. т.к. я перешел с версии 6.1 (на которой тоже была эта ошибка), я почитал мануал и сделал следующее:
Создал файл С:\\_liferay\liferay-portal-6.2-ce-ga2\tomcat-7.0.42\webapps\ROOT\WEB-INF\classes\portal-ext.properties
Следующего содержания:
После этих действий ошибка В ЛОГАХ исчезла, но и проблема не решилась.
Я заметил интересную вещь - пароли импортированных пользователей в версии 6.1 в зашифрованном виде выглядели так:
А пароли пользователей созданных в версии 6.2 выглядят так:
Я удалил всех пользователей, и по новой импортировал, теперь все пользователи имеют пароли в зашифрованном виде как:
Но зайти все-равно не получается и в логи не пишутся ошибки, связанные с ошибкой авторизации.
Может я не там смотрю? Заранее спасибо!
P.S. Прошу удалить предыдущие дубляжи темы
Ваш запрос завершился с ошибкой.
Аутентификация не пройдена. Пожалуйста, попробуйте снова.
Сперва в логи писалась ошибка про неверный тип шифрования паролей. т.к. я перешел с версии 6.1 (на которой тоже была эта ошибка), я почитал мануал и сделал следующее:
Создал файл С:\\_liferay\liferay-portal-6.2-ce-ga2\tomcat-7.0.42\webapps\ROOT\WEB-INF\classes\portal-ext.properties
Следующего содержания:
1#ldap.auth.password.encryption.algorithm=BCRYPT
2#ldap.auth.password.encryption.algorithm=MD2
3#ldap.auth.password.encryption.algorithm=MD5
4#ldap.auth.password.encryption.algorithm=SHA
5#ldap.auth.password.encryption.algorithm=SHA-256
6#ldap.auth.password.encryption.algorithm=SHA-384
7#ldap.auth.password.encryption.algorithm=SSHA
8#ldap.auth.password.encryption.algorithm=UFC-CRYPT
9ldap.auth.password.encryption.algorithm=
После этих действий ошибка В ЛОГАХ исчезла, но и проблема не решилась.
Я заметил интересную вещь - пароли импортированных пользователей в версии 6.1 в зашифрованном виде выглядели так:
1xVUFoT3HTF2fO1hjIY46yICsDkI=
А пароли пользователей созданных в версии 6.2 выглядят так:
1AAAAoAAB9ADb9CdCtNVU8OwDRmoROUtg62QvCS0syoByevOR
Я удалил всех пользователей, и по новой импортировал, теперь все пользователи имеют пароли в зашифрованном виде как:
1AAAAoAAB9ADb9CdCtNVU8OwDRmoROUtg62QvCS0syoByevOR
Но зайти все-равно не получается и в логи не пишутся ошибки, связанные с ошибкой авторизации.
Может я не там смотрю? Заранее спасибо!
P.S. Прошу удалить предыдущие дубляжи темы
Alexey Melnikov, módosítva 10 év-val korábban
RE: Проблемы с авторизацией через LDAP
Regular Member Bejegyzések: 108 Csatlakozás dátuma: 2012.03.27. Legújabb bejegyzések
Добрый день.
В AD пароль хранится в поле unicodePwd, так что поменяйте на это значение (хотя смысла большого нету если используется только импорт пользователей, без экспорта).
Работа с sAMAccountName и unicodePwd подразумевает работу через протокол ldaps (это опять же в случае экспорта пользователей). В случае ldaps нужно также ssl сертификат AD установить в trusted store java.
Про пароли в базе - AD вроде бы не дает пароль в открытом виде, следовательно Liferay не может ничего туда поставить (в вашем случае, он еще ничего и прочитать из того поля не мог). В итоге прописывается пароль по умолчанию - скорей всего 'test'.
Разница в длине паролей - поменяли длину хеша видать, вот и все.
Если включена обязательная авторизация через AD (чекбокс 'требуется'), то введенный логин и пароль отправляются в AD для проверки по правилу которое указал пользователь (в этом случае может не работать фильтр поиска пользователя из-за неправильных значений). После нахождения пользователя идет попытка его аутентификации - тут не скажу как она осуществляется и влияет ли неправильное название поля с паролем на это. Экспериментируйте на здоровье дальше ))
В AD пароль хранится в поле unicodePwd, так что поменяйте на это значение (хотя смысла большого нету если используется только импорт пользователей, без экспорта).
Работа с sAMAccountName и unicodePwd подразумевает работу через протокол ldaps (это опять же в случае экспорта пользователей). В случае ldaps нужно также ssl сертификат AD установить в trusted store java.
Про пароли в базе - AD вроде бы не дает пароль в открытом виде, следовательно Liferay не может ничего туда поставить (в вашем случае, он еще ничего и прочитать из того поля не мог). В итоге прописывается пароль по умолчанию - скорей всего 'test'.
Разница в длине паролей - поменяли длину хеша видать, вот и все.
Если включена обязательная авторизация через AD (чекбокс 'требуется'), то введенный логин и пароль отправляются в AD для проверки по правилу которое указал пользователь (в этом случае может не работать фильтр поиска пользователя из-за неправильных значений). После нахождения пользователя идет попытка его аутентификации - тут не скажу как она осуществляется и влияет ли неправильное название поля с паролем на это. Экспериментируйте на здоровье дальше ))
Fedor Ignatiev, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
New Member Bejegyzések: 6 Csatlakozás dátuma: 2013.10.25. Legújabb bejegyzések
Спасибо за советы!
Удалось решить проблему с авторизацией методом проб и ошибок.
В итоге для меня оказался рабочим следующий набор опций в portal-ext.properties
з.ы. мне тему не удалить из-за того, что я сперва png картинки прикреплял - у меня не видно кнопок для управления темой. баг, баг )))
Удалось решить проблему с авторизацией методом проб и ошибок.
В итоге для меня оказался рабочим следующий набор опций в portal-ext.properties
#Порт для работы сервера по-умолчанию
web.server.http.port=80
#Локаль по-умолчанию
locales=ru_RU
#Ошибка доступа к портлетам
layout.show.portlet.access.denied=true
#ldap.auth.password.encryption.algorithm=BCRYPT
#ldap.auth.password.encryption.algorithm=MD2
ldap.auth.password.encryption.algorithm=[b]MD5[/b]
#ldap.auth.password.encryption.algorithm=NONE
#ldap.auth.password.encryption.algorithm=SHA
#ldap.auth.password.encryption.algorithm=SHA-256
#ldap.auth.password.encryption.algorithm=SHA-384
#ldap.auth.password.encryption.algorithm=SSHA
#ldap.auth.password.encryption.algorithm=UFC-CRYPT
auth.pipeline.enable.liferay.check=false
ldap.import.user.password.enabled=true
#
# Set this to true to store the user's password in the session.
#
session.store.password=false
з.ы. мне тему не удалить из-за того, что я сперва png картинки прикреплял - у меня не видно кнопок для управления темой. баг, баг )))
Alexey Melnikov, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
Regular Member Bejegyzések: 108 Csatlakozás dátuma: 2012.03.27. Legújabb bejegyzések
Неужели только MD5 шифрование поменяли и все заработало?
ldap.auth.password.encryption.algorithm=MD5
Fedor Ignatiev, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
New Member Bejegyzések: 6 Csatlakozás dátuma: 2013.10.25. Legújabb bejegyzések
Я так понял, что роль сыграла эта:
ldap.auth.password.encryption.algorithm=MD5
и эта опция:
ldap.import.user.password.enabled=true
auth.pipeline.enable.liferay.check=false и session.store.password=false - не уверен что особо нужны.
Инфу брал тут:
https://www.liferay.com/web/jonas.yuan/blog/-/blogs/6583930
http://www.liferaysavvy.com/2013/10/liferay-ldap-integration_8.html
Теперь нужно решить следующие проблемы:
- Выставить язык новых импортированных пользователей - Русский, а не Английский, как сейчас
- Выставить часовой пояс по умолчанию в +4
- Убрать префексы у пользователей i.ivanov.2, i.ivanov.3, которые появились из-за МНОГОкратного удаления и импорта пользователей.
ldap.auth.password.encryption.algorithm=MD5
и эта опция:
ldap.import.user.password.enabled=true
auth.pipeline.enable.liferay.check=false и session.store.password=false - не уверен что особо нужны.
Инфу брал тут:
https://www.liferay.com/web/jonas.yuan/blog/-/blogs/6583930
http://www.liferaysavvy.com/2013/10/liferay-ldap-integration_8.html
Теперь нужно решить следующие проблемы:
- Выставить язык новых импортированных пользователей - Русский, а не Английский, как сейчас
- Выставить часовой пояс по умолчанию в +4
- Убрать префексы у пользователей i.ivanov.2, i.ivanov.3, которые появились из-за МНОГОкратного удаления и импорта пользователей.
Alexey Melnikov, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
Regular Member Bejegyzések: 108 Csatlakozás dátuma: 2012.03.27. Legújabb bejegyzésekFedor Ignatiev:
Теперь нужно решить следующие проблемы:
- Выставить язык новых импортированных пользователей - Русский, а не Английский, как сейчас
- Выставить часовой пояс по умолчанию в +4
- Убрать префексы у пользователей i.ivanov.2, i.ivanov.3, которые появились из-за МНОГОкратного удаления и импорта пользователей.
1 и 2 - не помню точно, то ли берется из настроек портала/сайта в который они импортируются, то ли из default user, который в базе виден.
3 - это из-за кэшей, после нескольких импортов закэшировались занятые логины. Помогает либо очистка кэша через панель управления, либо перезагрузка, во время которой все также чистится.
Fedor Ignatiev, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
New Member Bejegyzések: 6 Csatlakozás dátuma: 2013.10.25. Legújabb bejegyzésekAlexey Melnikov:
Fedor Ignatiev:
Теперь нужно решить следующие проблемы:
- Выставить язык новых импортированных пользователей - Русский, а не Английский, как сейчас
- Выставить часовой пояс по умолчанию в +4
- Убрать префексы у пользователей i.ivanov.2, i.ivanov.3, которые появились из-за МНОГОкратного удаления и импорта пользователей.
1 и 2 - не помню точно, то ли берется из настроек портала/сайта в который они импортируются, то ли из default user, который в базе виден.
3 - это из-за кэшей, после нескольких импортов закэшировались занятые логины. Помогает либо очистка кэша через панель управления, либо перезагрузка, во время которой все также чистится.
Вроде всё перепробовал, но пользователи из LDAP импортируются с дефолтным английским языком, а не русским.
У администратора и дефолтного пользователя (его я почему-то вижу только в базе mysql, на сайте не видно) выставлен русский по умолчанию
Нашел похожую проблему: https://issues.liferay.com/browse/LPS-10402
Но не могу найти собственно класс для правки: "com.liferay.portal.security.ldap.BaseLDAPToPortalConverter"
Mellékletek:
Alexey Melnikov, módosítva 9 év-val korábban
RE: Проблемы с авторизацией через LDAP
Regular Member Bejegyzések: 108 Csatlakozás dátuma: 2012.03.27. Legújabb bejegyzésekFedor Ignatiev:
Нашел похожую проблему: https://issues.liferay.com/browse/LPS-10402
Но не могу найти собственно класс для правки: "com.liferay.portal.security.ldap.BaseLDAPToPortalConverter"
Его переименовали кажется в DefaultLDAPToPortalConverter. Смотрите лучше сразу все содержимое пакета в portal-impl.
Alexey Melnikov, módosítva 10 év-val korábban
RE: Проблемы с авторизацией через LDAP
Regular Member Bejegyzések: 108 Csatlakozás dátuma: 2012.03.27. Legújabb bejegyzések
PS: модеров в русской ветке нету, так что самостоятельно удаляйте тему ;)