Ошибка аутентификации для пользователей liferay, импортированных с сервера ldap

В соответствии с моим требованием мне нужно войти в Liferay, используя пользователей, импортированных с сервера ldap. Я объясню сценарий шаг за шагом.

1)I have some java code to create a user into Ldap server(name,firstname,password etc)
2)User has been created successfully in ldap server 
3)I gave some properties in portal-ext.properties files to import these users from ldap server to liferay and to login using the screen name
4)From the control panel i could see that the user has been imported to liferay 
5)Now if i try to login with the screenname and the password (password i passed in step1)it shows authentication failed
6)I Logged into liferay as administrator and changed the password of the user
7)Now the login is successfull

Вопросы

1) How can i properly import the password from ldap server to liferay.
2)Any idea why the password i gave shows authentication failure

Portal-ext.properties

#jdbc.default.jndi.name=jdbc/LiferayPool
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=root


json.service.auth.token.hosts.allowed=127.0.0.1
json.service.auth.token.enabled=false
jsonws.web.service.public.methods=*
jsonws.servlet.hosts.allowed=127.0.0.1

users.screen.name.validator=com.liferay.portal.security.auth.LiberalScreenNameValidator
#users.screen.name.allow.numeric=true
#users.screen.name.validator=com.liferay.portal.security.auth.DefaultScreenNameValidator

ldap.base.provider.url= ldap://localhost:389
ldap.base.dn= dc=soas,dc=schoolx
ldap.security.principal= cn=admin
ldap.security.credentials= blahblah
auth.pipeline.pre=com.liferay.portal.security.auth.LDAPAuth

ldap.auth.enabled=true
ldap.auth.required=false
ldap.password.policy.enabled=true
ldap.users.dn= dc=soas,dc=schoolx
ldap.groups.dn= dc=soas,dc=schoolx

ldap.import.enabled=true
ldap.import.interval=1
ldap.import.on.startup=true

ldap.import.method=group
ldap.import.group.search.filter.enabled=true

#ldap.import.group.cache.enabled=false


users.screen.name.allow.numeric=true
#ldap.auth.method=bind
#ldap.auth.password.encryption.algorithm=
#passwords.encrypted=


ldap.user.mappings=screenName=uid\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn

#ldap.user.mappings=screenName=displayName\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn

#ldap.user.impl=com.liferay.portal.security.ldap.LDAPUser

ldap.group.mappings=groupName=cn\ndescription=description\nuser=member

ldap.import.user.search.filter=(objectClass=inetOrgPerson)

ldap.import.group.search.filter=(objectClass=groupOfEntries)

#ldap.auth.search.filter=(mail=@email_address@)
ldap.auth.search.filter=(cn=@screen_name@)

ldap.import.user.password.enabled=true

#ldap.import.create.role.per.group=true


axis.servlet.hosts.allowed=
axis.servlet.https.required=false
#company.security.auth.type=emailAddress
company.security.auth.type=screenName
search.container.show.pagination.top=false
setup.wizard.enabled=false
passwords.default.policy.change.required=false

Я использую связку Liferay 6.2 GA2 с Tomcat 7 и OpenDJ-2.5.0-Xpress. Может ли кто-нибудь помочь мне решить эту проблему


person playmaker420    schedule 16.04.2015    source источник


Ответы (3)


Могут быть определенные возможности:

  1. Соответствует ли пароль той же политике паролей и методу шифрования, которые вы применяли в Portal?
  2. Правильная ли организация/сайт/роль назначена пользователям?
person Parkash Kumar    schedule 16.04.2015
comment
1) я уже включил политику паролей пользователя ldap (ldap.password.policy.enabled=true) 2) я дал роль опытного пользователя - person playmaker420; 16.04.2015
comment
Одинаковы ли политики ldap.password.policy и password.policy портала? - person Parkash Kumar; 16.04.2015
comment
Где указать политику доступа к порталу? На вкладке «configuration›passwordpolicy» я увидел, что вы используете политику паролей LDAP. Пожалуйста, измените настройки политики паролей LDAP, если вы хотите использовать локальную политику паролей. Вы это просили? - person playmaker420; 16.04.2015
comment
Итак, это означает, что ваш пароль импортирован с использованием политики паролей LDAP. Здесь не должно быть никаких проблем. Затем может возникнуть проблема с методом шифрования. Расшифруйте свой пароль, хранящийся в lportal, и убедитесь, что он совпадает с паролем ldap. - person Parkash Kumar; 16.04.2015
comment
расшифровка пароля от lportal Хм, я не думаю, что это возможно. Я не уверен, какой метод шифрования они используют - person playmaker420; 16.04.2015

Попробуйте использовать свойства LDAP в вашем portal-ext.properties.

# LDAP id 1 is for open LDAP instance
ldap.server.ids=1

ldap.referral.1=follow
ldap.factory.initial.1=com.sun.jndi.ldap.LdapCtxFactory
ldap.server.name.1=ldaptest-internal
ldap.base.provider.url.1=ldap://<host>:<port>
ldap.base.dn.1=dc=example,dc=com

ldap.security.principal.1=cn=Manager,dc=example,dc=com
ldap.security.credentials.1=seacret

ldap.auth.search.filter.1=(mail=@email_address@)

# EXPORT RELATED PROPERTY
ldap.user.default.object.classes.1=top,person,organizationalPerson,inetOrgPerson

#User mappings
#
ldap.user.mappings.1=screenName=uid\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn\ngroup=groupMembership\nfullName=cn


# EXPORT RELATED PROPERTY
ldap.group.default.object.classes.1=top,groupOfUniqueNames

# Group mappings
#
ldap.group.mappings.1=groupName=cn\ndescription=description\nuser=uniqueMember

# Import and export search filter
#
ldap.import.user.search.filter.1=(objectClass=inetOrgPerson)
ldap.import.group.search.filter.1=(objectClass=groupOfUniqueNames)


# EXPORT RELATED PROPERTY
ldap.users.dn.1=dc=example,dc=com

# EXPORT RELATED PROPERTY
ldap.groups.dn.1=dc=example,dc=com

auth.pipeline.pre.1=com.liferay.portal.security.auth.LDAPAuth
ldap.import.method.1=user


ldap.import.enabled=true
ldap.import.on.startup=true
ldap.auth.enabled=true
ldap.auth.required=true
ldap.password.policy.enabled=true

Я предполагаю, что может быть какое-то пропавшее имущество.

person aston    schedule 16.04.2015

Как я сказал в своем вопросе, я создавал пользователя в ldap, используя некоторые коды Java, и я привязывал пароль к полю userPassword в ldap. Итак, это изменения, которые я внес, чтобы исправить проблемы.

ldap.user.mappings=screenName=uid\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn

ldap.auth.search.filter=(uid=@screen_name@)
ldap.import.user.password.enabled=false
ldap.import.user.password.autogenerated=false
ldap.import.user.password.default=userPassword
person playmaker420    schedule 20.04.2015
comment
@Parkash Kumar ,@aston Спасибо за комментарии - person playmaker420; 20.04.2015