Liferay portal-ext LDAP 配置

Liferay portal-ext LDAP configuration

我第一次配置 LDAP 连接是通过 Liferay 控制面板完成的,一切正常。但是现在我想通过portal-ext.properties文件来配置它,这些是我的配置:

ldap.auth.enabled=true
ldap.import.enabled=true
ldap.import.on.startup=true
ldap.import.method=user
ldap.auth.required=true
ldap.export.enabled=false

ldap.base.provider.url=ldap://********************
ldap.base.dn=********************
ldap.security.principal=********************
ldap.security.credentials=********************

ldap.user.mappings.0=uuid=\nscreenName=sAMAccountName\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sN\njobTitle=\ngroup=memberOf\n
ldap.auth.search.filter.0=(sAMAccountName=@screen_name@)

ldap.import.user.search.filter.0=(objectClass=person)
ldap.import.group.search.filter.0=(objectClass=group)
ldap.group.mappings.0=groupName=cn\ndescription=description\nuser=uniqueMember
ldap.user.custom.mappings.0=
ldap.contact.mappings.0=
ldap.contact.custom.mappings.0=

除此之外,每次我更改一些配置时,我都会清理数据库以确保文件被正确读取。

当我 运行 服务器并转到控制面板中的 LDAP 身份验证时,所有配置都与我在 portal-ext 文件中配置的完全相同(甚至测试 LDAP 连接工作正常)但是用户配置为空。你能解释一下为什么我遇到这个问题吗?

我找到问题所在了!我刚刚从所有配置中删除了服务器 ID,现在控制面板中的字段终于填满了。

这些是正确的 ldap 配置:

ldap.auth.enabled=true
ldap.import.enabled=true
ldap.import.on.startup=true
ldap.import.method=user
ldap.auth.required=true
ldap.export.enabled=false

ldap.base.provider.url=ldap://********************
ldap.base.dn=********************
ldap.security.principal=********************
ldap.security.credentials=********************

ldap.user.mappings=uuid=\nscreenName=sAMAccountName\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sN\njobTitle=\ngroup=memberOf\n
ldap.auth.search.filter=(sAMAccountName=@screen_name@)

ldap.import.user.search.filter=(objectClass=person)
ldap.import.group.search.filter=(objectClass=group)
ldap.group.mappings=groupName=cn\ndescription=description\nuser=uniqueMember
ldap.user.custom.mappings=
ldap.contact.mappings=
ldap.contact.custom.mappings=

另一种让它工作的方法是在连接配置中添加服务器 ID,就像这样:

ldap.auth.enabled=true
ldap.import.enabled=true
ldap.import.on.startup=true
ldap.import.method=user
ldap.auth.required=true
ldap.export.enabled=false

ldap.base.provider.url.0=ldap://********************
ldap.base.dn.0=********************
ldap.security.principal.0=********************
ldap.security.credentials.0=********************

ldap.user.mappings.0=uuid=\nscreenName=sAMAccountName\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sN\njobTitle=\ngroup=memberOf\n
ldap.auth.search.filter.0=(sAMAccountName=@screen_name@)

ldap.import.user.search.filter.0=(objectClass=person)
ldap.import.group.search.filter.0=(objectClass=group)
ldap.group.mappings.0=groupName=cn\ndescription=description\nuser=uniqueMember
ldap.user.custom.mappings.0=
ldap.contact.mappings.0=
ldap.contact.custom.mappings.0=

您必须定义以下 属性 才能使用 id

ldap.server.ids=0

您还需要使用 url、principal、credential 和 base.dn 属性,其 id 与您使用的其他属性相同

ldap.base.provider.url.0=ldap://********************
ldap.base.dn.0=********************
ldap.security.principal.0=********************
ldap.security.credentials.0=********************

希望对您有所帮助!