LDAP配置与Rundeck JettyCachingLdapLoginModule参数映射咨询
Rundeck LDAP认证参数映射说明
先拆解你的LDAP查询信息
你成功执行的ldapsearch命令里,已经包含了配置所需的关键信息:
- 用于查询LDAP的服务账号:
some_address@myorg.lan(对应命令里的-D参数) - 查询的根节点:
dc=myorg,dc=lan(对应命令里的-b参数) - 返回的用户完整DN:
CN=user_1@myorg.lan,CN=Users,CN=myorg,CN=Zones,OU=Circular,OU=warehouse,DC=myorg,DC=lan
对应JettyCachingLdapLoginModule参数
直接给你明确映射关系:
- bindDn:填你ldapsearch里的
-D值,也就是some_address@myorg.lan——这是Rundeck用来连接LDAP查询用户的服务账号DN - userBaseDn:填用户条目所在的上层容器,从你的用户DN里截取:
CN=Users,CN=myorg,CN=Zones,OU=Circular,OU=warehouse,DC=myorg,DC=lan——Rundeck会从这个节点开始搜索用户 - roleBaseDn:如果需要同步LDAP角色/组,填组条目所在的上层容器(比如如果组都在
CN=Groups,DC=myorg,DC=lan下就填这个);暂时不需要角色可以留空,后续再调整 - userRdnAttribute:填
cn——因为你的用户DN开头是CN=user_1@myorg.lan,用CN作为用户条目的RDN属性 - userSearchFilter:填
(uid={0})——你用uid=user_1查到了用户,这个规则会把用户输入的登录名替换{0}来匹配LDAP条目
示例配置片段
把这些参数填入Rundeck的jaas-loginmodule.conf文件,大概是这样:
loginmodule.1.name=ldap loginmodule.1.classname=org.eclipse.jetty.jaas.spi.JettyCachingLdapLoginModule loginmodule.1.flag=required loginmodule.1.debug=false loginmodule.1.contextFactory=com.sun.jndi.ldap.LdapCtxFactory loginmodule.1.providerUrl=ldap://ldaphost.myorg.lan loginmodule.1.bindDn=some_address@myorg.lan loginmodule.1.bindPassword=你的服务账号密码 loginmodule.1.userBaseDn=CN=Users,CN=myorg,CN=Zones,OU=Circular,OU=warehouse,DC=myorg,DC=lan loginmodule.1.userRdnAttribute=cn loginmodule.1.userSearchFilter=(uid={0}) # 以下是角色映射可选配置 loginmodule.1.roleBaseDn=CN=Groups,DC=myorg,DC=lan loginmodule.1.roleNameAttribute=cn loginmodule.1.roleSearchFilter=(member={0})
验证小技巧
因为你没法直接访问LDAP服务器,可以用ldapsearch验证userBaseDn是否正确:
ldapsearch -v -x -D "some_address@myorg.lan" -b "CN=Users,CN=myorg,CN=Zones,OU=Circular,OU=warehouse,DC=myorg,DC=lan" -H ldap://ldaphost.myorg.lan -w **** "uid=user_1"
如果能返回用户条目,说明userBaseDn配置正确。另外如果用户登录用的是CN而非UID,记得把userSearchFilter改成(cn={0})。
内容的提问来源于stack exchange,提问作者user971741
相关产品推荐
相关产品推荐

