【发布时间】:2016-04-10 18:21:09
【问题描述】:
我需要使用组织 LDAP 配置 Liferay。
我的要求是按需(登录时)将用户导入 Liferay 数据库。
当我尝试使用映射到 LDAP 中 sAMAccountNumber 的屏幕名称登录时,我得到 p>
认证失败错误
我也没有看到在 db 中导入任何用户。
经过大量调试后,LDAP 连接看起来很成功。但是 LDAP 没有返回任何结果。
我在日志中看到类似的内容。
转换前的搜索过滤器 (sAMAccountName=@screen_name‌​@)
搜索过滤后 转换 (sAMAccountName=@screen_name‌​@)
我不知道为什么它会在末尾附加垃圾字符。
应该是
"sAMAccountName=@screen_name@"
任何快速指示都会有帮助。
谢谢!
【问题讨论】:
-
ldap.security.principal.0=domainname/myusername感觉不正确。此处应为 RDN(相对 DN)(相对于ldap.base.dn)。检查github.com/liferay/liferay-portal/blob/master/portal-impl/src/…。 -
@Pavel Horal 感谢您的回复!我按照您的建议进行了更改,如下所示 ldap.security.principal.0=CN=my name,OU=Users,OU=MyLocation,OU=MyCity,OU=MyCountry ,OU=Myregion,OU=Mycompany,DC=companydomain,DC=com 我使用 Jxplorer 从 LDAP 服务器获取此值,即那里的 distinctname 字段的值。重新启动 tomcat 并尝试通过用户名登录,该用户名映射到 portal.ext 中的 sAMAccountName .我现在得到的异常是“com.liferay.portal.NoSuchUserException:没有用户存在密钥 {companyId=10157, screenName=username}”。
-
@Pavel Horal ,我尝试将 proncipal 值设置为“CN=my name,OU=Users,OU=MyLocation,OU=MyCity,OU=MyCountry,OU=Myregion,OU=Mycompany”。有没有重启服务器。我收到新异常:无法绑定到 LDAP 服务器 javax.naming.AuthenticationException:[LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A8,注释:AcceptSecurityContext 错误,数据 52e,v1db1_] [已消毒] 存在还有什么我想念的吗?谢谢。
-
@Pavel Horal,在对 liferay 源中的方法进行了更多分析之后,我发现它似乎在做的只是调用 liferay DB 并检查是否存在对应的屏幕名称。我还没有看到我的用户在数据库中导入。我不确定用户的导入实际上是在什么时候在 liferay 数据库中发生的,以及为什么它甚至在导入之前检查数据库。所以在这种情况下,导入没有发生看起来是一个问题。你有什么建议?
-
@Pavel Horal,根据 liferay 文档,启用此属性将从 LDAP 批量导入所有用户。作为我处理组织 LDAP 的 LDAP,用户数量非常多。我想按需导入 LDAP 用户,即仅当用户登录时。 liferay.com/community/wiki/-/wiki/Main/LDAP