1. 安装LDAP插件
[ https://plugins.jenkins.io/ldap/]
2. 添加一个Jenkins LDAP配置
Server :这里填写LDAP server的地址即可
root DN : 这里填写你需要的base路径, 如果悄悄这里不填则勾选 Allow blank rootDN ,但是user search base和group search base则不能为空,否则会报找不到object的错误
User search base :可以不填,则会查找改root DN下的所有用户
User search filter :一般包含三种, uid={0}cn={0}sAMAccountName={0}, 如果不确定LDAP Server怎样设置的,则可以依次尝试
Group search base : 可以不填,则会查找改root DN下的所有组
Manager DN :认证查询该LDAP服务器的用户DN,包括该用户的完整CN, OU, DC
Manager Password : 上述用户的密码
其启缓渣他可以保持默认配置
3. 添加另外一个LDAP Server 的配置
点击 Add Server , 可以按照上述配置继续配置,这两个可以是不同的配置
配置多个ldap时建议勾选上 Ignore if unavailable ,这样如果其中一个ldap server不可用,会尝试使用下一些个ldap server。
4. 配置过程中遇到的哪瞎问题
4.1 错误日志:
User lookup: failed for user "your_username" LdapCallbacknullnested exception is javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: dc1.dc2.dc3:389 [Root exception is java.net.UnknownHostException: dc1.dc2.dc3]] LDAP Group lookup: could not verify.
其中your_username是你试图登陆的一个AD用户; dc1.dc2.dc3是你设置的DC=dc1, DC=dc2, DC=dc3,我这里出现了该问题是因为LDAP server我提供的是一个IP地址
原因:该问题是找不到 dc1.dc2.dc3该域名,请在AD上配置域名解析 your_LDAP_IP 到dc1.dc2.dc3或者临时在系统的/etc/hosts文件中添加该域名解析
4.2 错误日志:
LdapCallbackLDAP response read timed out, timeout used:60000ms.nested exception is javax.naming.NamingException: LDAP response read timed out, timeout used:60000ms.remaining name ''
这个问题是因为connection pool的连接有问题,解决方案是在Jenkins的LDAP配置中添加一个环境变量 com.sun.jndi.ldap.connect.pool 设为 false , 具体可参考:[ https://guv.cloud/post/jenkins-and-ldap/]
4.3 我使用的是docker 容器跑的Jenkins,有一些有用的命令
docker logs --following container_name/ID 查看日志
docker exec --user root -it container_name/ID /bin/bash 以root用户登陆该容器
4.4 如果登陆速度较慢,可以enable cache来减少查询LDAP server的负载
失败记录
System Security Services Dameon,能够实现linux的远程命名服务和远程认证功能。游销
优点:
当前hadoop集群使用kerberos进行服务间与外部jdbc用户的认证,使用公司LDAP作为上层应用(HUE等)的用户管理认证,使用sentry用来基本授权,sentry用户映射的是各服务所在机器的Linux用户。
虽然不用在上层应用频繁添加用户神森游,但是还需要在春耐授权阶段在机器上加用户
虽然可以用ansible批量添加,但依然需要手动触发。
随便找了一台能连上公司LDAP的机器,可在安装ldap客户端
后使用
进行验证连通性,获取到的用户信息格式是
开始几个步骤主要参考:
https://github.com/wbwangk/wbwangk.github.io/wiki/SSSD
以root身份 *** 作
vim /etc/sssd/sssd.conf进行配置,其中domains参数只是方便切换不同的配置集合,没有实际意义。[sssd]中与的配置xxx与底下的[domain/xxx]对应起来就好。
启动或重启服务
使用id username或者su username进行验证,始终报No such user
使用下面方法查看日志:
https://fedoraproject.org/wiki/How_to_debug_SSSD_problems
开始看的的问题是
经过各种参数调整,已经能retrive users了(即上述最终的配置),日志中显示的搜索路径与手动ldapsearch看起来也是一致的:
但依然在id username时No such user
能看到的信息是因为找不到uid与guid属性,所以无法自动创建linux用户。
希望有经验的朋友能支个招,或者确认一下是不是公司LDAP配置问题/属性缺失导致的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)