【发布时间】:2015-11-11 20:58:26
【问题描述】:
我正在设置一个带 LDAP 身份验证的闪亮服务器。出于管理目的,我的用户被组织成部门。用户 DN 使用以下格式:
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 进行绑定?
我从shiny configuration reference 了解到这是可能的,但我似乎找不到正确的设置。
特别是,这段话似乎很相关,但我不清楚我需要为这个用例做什么:
4.6.9 用户过滤器
某些系统(尤其是许多 Active Directory 实现)不支持 使用用户名作为用户 DN 的一部分。在这样的系统中,它可能 绑定后有必要执行额外的 LDAP 查询以确定 用户的 DN 基于他们的用户名,然后才能成为组成员 决定。此设置存储用于查找用户的 LDAP 过滤器 与输入的用户名匹配的对象。
使用为 auth_active_dir 提供的默认值 (userPrincipalName={userBind}),例如。 Shiny Server Pro 将 尝试使用给定的用户名绑定到 LDAP 服务器(之后 按照 user_bind_template 中的定义进行操作)和密码。如果 成功,然后它会搜索一个对象,其属性 userPrincipalName 与操作的用户名匹配 用户绑定模板。如果找到,则返回对象的 DN 可用于 group_filter 作为 {userDN} 变量。
默认值
For auth_ldap -- N/A For auth_active_dir -- userPrincipalName={userBind}
非常感谢任何帮助。
【问题讨论】:
-
旁注:您的目录设置不当。您不应该对 DIT 中的组织结构进行建模。如果用户更改部门,或者部门本身进行了重组,则必须重新组织树。您应该在 Users 子树下拥有用户,在 Departments 子树下拥有部门,并使用 属性 将它们相互关联。
-
明确地说,目录设置不是我自己选择的。这是用于管理目录的软件的默认行为(Gosa:oss.gonicus.de/labs/gosa)。无论如何,这个限制不会影响我的用例。 “部门”是这样的,部门变更非常罕见,在这种情况下生成新帐户会很容易,甚至更可取。
标签: ldap shiny openldap shiny-server ldap-query