服务器LDAP未在DN中正确包含OU

服务器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

我正在设置一个具有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=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:的软件的默认行为。在任何情况下,这个限制都不会影响我的用例。各部门的情况是,部门变动非常罕见,在这种情况下,生成新账户非常容易,甚至更可取。