闪亮的服务器 LDAP 没有正确地在 DN 中包含 OU
Shiny server LDAP not properly including OU in DN
我正在设置带有 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 user_filter
Some systems (notably many Active Directory implementations) do not
use the username as a part of the user's DN. In such systems, It may
be necessary to perform an extra LDAP query after binding to determine
the user's DN based on their username before group membership can be
determined. This setting stores the LDAP filter used to find the user
object which matches the entered username.
Using the default provided for auth_active_dir
(userPrincipalName={userBind}), as an example. Shiny Server Pro will
attempt to bind to the LDAP server using the given username (after
being manipulated as defined in user_bind_template) and password. If
successful, it will then search for an object whose attribute
userPrincipalName matches the username manipulated by
user_bind_template. If found, the returned object's DN will be made
available to the group_filter as the {userDN} variable.
Default Value
For auth_ldap -- N/A
For auth_active_dir -- userPrincipalName={userBind}
非常感谢任何帮助。
在咨询了 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 "";
}
这是做什么的:
- 它使用双重绑定。也就是说,当 shiny-server 联系 ldap
服务器,它首先使用指定的帐户进行身份验证
uid=searcheraccount,ou=people,{root}
使用其密码 thepassword
.
- 进入后,它会搜索带有 with 的帐户的 dn
uid={username}
(即用户在登录时输入的用户名
页)。在这种情况下,这应该 return 类似
uid=testuser1,ou=People,ou=Dept1
- 它与此 dn+root 绑定。
我曾尝试过类似的设置,但问题出在 user_search_base
。在我之前的设置中,我将此参数设置为 'ou=people',但失败了,因为我部门中的用户不直接在 ou=people,{root}
.
下
此配置还可以解决我之前遇到的一个相关问题,当时 gosa 正在设置使用 {firstName}&" "&{lastName} 而不是 uid 构建 DN 的帐户。
我正在设置带有 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 user_filter
Some systems (notably many Active Directory implementations) do not use the username as a part of the user's DN. In such systems, It may be necessary to perform an extra LDAP query after binding to determine the user's DN based on their username before group membership can be determined. This setting stores the LDAP filter used to find the user object which matches the entered username.
Using the default provided for auth_active_dir (userPrincipalName={userBind}), as an example. Shiny Server Pro will attempt to bind to the LDAP server using the given username (after being manipulated as defined in user_bind_template) and password. If successful, it will then search for an object whose attribute userPrincipalName matches the username manipulated by user_bind_template. If found, the returned object's DN will be made available to the group_filter as the {userDN} variable.
Default Value
For auth_ldap -- N/A For auth_active_dir -- userPrincipalName={userBind}
非常感谢任何帮助。
在咨询了 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 "";
}
这是做什么的:
- 它使用双重绑定。也就是说,当 shiny-server 联系 ldap
服务器,它首先使用指定的帐户进行身份验证
uid=searcheraccount,ou=people,{root}
使用其密码thepassword
. - 进入后,它会搜索带有 with 的帐户的 dn
uid={username}
(即用户在登录时输入的用户名 页)。在这种情况下,这应该 return 类似uid=testuser1,ou=People,ou=Dept1
- 它与此 dn+root 绑定。
我曾尝试过类似的设置,但问题出在 user_search_base
。在我之前的设置中,我将此参数设置为 'ou=people',但失败了,因为我部门中的用户不直接在 ou=people,{root}
.
此配置还可以解决我之前遇到的一个相关问题,当时 gosa 正在设置使用 {firstName}&" "&{lastName} 而不是 uid 构建 DN 的帐户。