【问题标题】:Shiny server LDAP not properly including OU in DN闪亮的服务器 LDAP 未正确包括 DN 中的 OU
【发布时间】: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


【解决方案1】:

在咨询了 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 "";
}

这是做什么的:

  1. 它使用双重绑定。也就是说,当 shiny-server 联系 ldap 服务器,它首先使用指定的帐户进行身份验证 uid=searcheraccount,ou=people,{root} 使用其密码 thepassword
  2. 进入后,它会搜索带有 with 的帐户的 dn uid={username}(即用户在登录时输入的用户名 页)。在这种情况下,这应该返回类似 uid=testuser1,ou=People,ou=Dept1
  3. 它与这个 dn+root 绑定。​​

我曾尝试过类似的设置,但问题出在user_search_base。在我之前的设置中,我将此参数设置为 'ou=people',但由于部门中的用户不直接位于 ou=people,{root} 下,因此失败了。

此配置还可以解决我之前在 gosa 设置帐户时遇到的相关问题,其中 DN 是使用 {firstName}&" "&{lastName} 而不是 uid 构建的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 2019-11-18
    • 2015-05-04
    • 2016-12-28
    • 2013-04-10
    • 2014-12-14
    • 2013-11-01
    • 2021-11-07
    相关资源
    最近更新 更多