Неуспешно удостоверяване за потребители на 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. Паролата следва ли същата политика за парола и техника за криптиране, които сте посочили в портала?
  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 и portal password.policy еднакви ли са? - person Parkash Kumar; 16.04.2015
comment
Къде да посоча политиката за парола на портала? От раздела за конфигурация ›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