安装Linkedin WhereHows后LDAP登录凭证无效求助
我之前帮团队排查过好几起WhereHows LDAP登录失败的问题,结合你的配置和报错提示,给你梳理几个最可能的排查方向:
检查LDAP搜索基础的准确性
你的WHZ_LDAP_SEARCH_BASE设置为ou=mapr access,dc=co,dc=local,首先要确认这个OU路径和LDAP服务器里的实际结构完全匹配——比如OU名称是不是真的带空格?有些团队可能会把mapr access写成mapraccess(无空格)。
可以用LDAP客户端工具测试这个搜索基础能不能找到目标用户:ldapsearch -x -H ldap://co.myco.local:389 -b "ou=mapr access,dc=co,dc=local" "(uid=你的测试用户名)"如果返回空结果,说明搜索基础配置错误,得调整成正确的OU层级路径。
验证主体域名的拼接逻辑
WHZ_LDAP_PRINCIPAL_DOMAIN="@co.local"会把用户输入的登录名拼接成用户名@co.local去绑定LDAP,但不同LDAP服务器的绑定格式要求不一样:- 有些AD服务器要求用
域名\用户名(比如co.local\john) - 有些则需要完整的用户DN(比如
uid=john,ou=mapr access,dc=co,dc=local)
你可以先通过LDAP客户端测试不同的绑定格式,确认哪种能成功,再对应调整WHZ_LDAP_PRINCIPAL_DOMAIN的设置,甚至部分场景下需要修改WhereHows后端的LDAP搜索过滤器配置。
- 有些AD服务器要求用
排查LDAP连接与权限问题
首先确认WhereHows后端服务器能连通LDAP端口:telnet co.myco.local 389如果连不通,先解决网络防火墙或者LDAP服务器的端口开放问题。
另外,很多LDAP服务器不允许匿名搜索用户,这时候你需要配置WHZ_LDAP_BIND_DN和WHZ_LDAP_BIND_PASSWORD这两个环境变量(有些入门文档可能没提及),用有搜索权限的LDAP账号去执行用户查询操作。确认前端配置已生效
修改前端环境变量后,必须重新构建并重启Play应用才能让配置生效。可以执行以下命令重新构建部署包:activator clean dist部署新生成的包后,再测试登录是否正常。
检查LDAP属性映射是否匹配
WhereHows默认用uid作为登录匹配属性,但有些LDAP服务器(比如Active Directory)用的是samAccountName。你需要确认你的LDAP服务器中用户登录对应的属性,然后检查后端配置文件conf/application.conf里的ldap.user.search.filter是否正确,比如AD环境下可能需要改成:ldap.user.search.filter = "(samAccountName={0})"
内容的提问来源于stack exchange,提问作者lampShadesDrifter

