服务器LDAP未在DN中正确包含OU
我正在设置一个具有LDAP身份验证的闪亮服务器。出于管理目的,我的用户被组织成多个部门。用户DNs使用以下格式:服务器LDAP未在DN中正确包含OU,ldap,shiny,openldap,shiny-server,ldap-query,Ldap,Shiny,Openldap,Shiny Server,Ldap Query,我正在设置一个具有LDAP身份验证的闪亮服务器。出于管理目的,我的用户被组织成多个部门。用户DNs使用以下格式: uid=testuser1,ou=People,ou=Dept1,dc=example,dc=com uid=testuser2,ou=People,ou=Dept2,dc=example,dc=com 我的问题是,我似乎可以找到一个允许上述两个用户登录的设置。当用户尝试登录时,所使用的DN需要包含部门,例如ou=Dept1,但它将尝试绑定而不包含部门,例如uid=testuser
uid=testuser1,ou=People,ou=Dept1,dc=example,dc=com
uid=testuser2,ou=People,ou=Dept2,dc=example,dc=com
我的问题是,我似乎可以找到一个允许上述两个用户登录的设置。当用户尝试登录时,所使用的DN需要包含部门,例如ou=Dept1,但它将尝试绑定而不包含部门,例如uid=testuser2,ou=People,dc=example,dc=com
是否有一种方法可以设置conf文件,以便shiny使用给定UID搜索包含用户部门的完整DN,然后使用该完整DN进行绑定
我感觉这是可能的,但我似乎找不到正确的设置
特别是,这篇文章似乎很相关,但我不清楚我需要为这个用例做什么:
4.6.9用户过滤器
某些系统(尤其是许多Active Directory实现)没有
将用户名用作用户DN的一部分。在这样的系统中,它可能
需要在绑定后执行额外的LDAP查询以确定
用户的DN基于其用户名,然后才能成为组成员
决心此设置存储用于查找用户的LDAP筛选器
对象,该对象与输入的用户名匹配
使用为auth\u active\u dir提供的默认值
例如,userPrincipalName={userBind}。闪亮服务器专业版
之后尝试使用给定用户名绑定到LDAP服务器
正在按照用户绑定模板和密码中的定义进行操作。如果
如果成功,它将搜索属性为
userPrincipalName与由
用户绑定模板。如果找到,将生成返回对象的DN
可作为{userDN}变量用于组_筛选器
默认值
For auth_ldap -- N/A
For auth_active_dir -- userPrincipalName={userBind}
非常感谢您的帮助。在咨询了w/Rstudio技术支持后,我在Shiny Server中使用了以下配置:
auth_ldap ldaps://server:636/dc=example,dc=com {
base_bind "uid=searcheraccount,ou=People,{root}" 'thepassword';
user_filter "uid={username}";
user_search_base "";
}
它的作用是:
它使用双重绑定。也就是说,当服务器联系ldap时
服务器,它首先使用指定的帐户进行身份验证
uid=searcheraccount,ou=people,{root}使用其密码密码password。
输入后,它将使用搜索帐户的dn
uid={username}即用户在登录时输入的用户名
页在这种情况下,应该返回如下内容
uid=testuser1,ou=People,ou=Dept1
它与此dn+根绑定。
我曾尝试过类似的设置,但问题在于用户搜索库。在以前的设置中,我将此参数设置为“ou=people”,但由于我在部门中的用户不直接位于ou=people,{root}之下,因此设置失败
此配置还可以解决我以前在gosa设置帐户时遇到的一个相关问题,其中DNs是使用{firstName}&&{lastName}而不是uid构建的。旁注:您的目录设置不好。您不应该在DIT中对组织结构进行建模。如果用户更改了部门,或者部门本身已重新组织,则必须重新组织树。您应该在用户子树下有用户,在部门子树下有部门,并使用属性将它们相互关联。要清楚,目录设置不是我自己选择的。这是用于管理目录Gosa:的软件的默认行为。在任何情况下,这个限制都不会影响我的用例。各部门的情况是,部门变动非常罕见,在这种情况下,生成新账户非常容易,甚至更可取。