omniauth ldap 模块中的 ldap 过滤器在话语中不起作用
ldap filter in omniauth ldap module not working in discourse
我目前尝试将 Discourse 配置为仅允许特定 ldap 组中的用户登录。Discourse 有一个名为 discourse-ldap auth 的插件(https://github.com/jonmbake/discourse-ldap-auth ). This plugin uses the omniauth ldap module: https://github.com/omniauth/omniauth-ldap
我的discourse插件配置(该配置实际上是discourse插件对omniauth ldap模块使用的):
- ldap 启用:真
- ldap 主机名:我的 ldap 服务器的主机名
- ldap 端口:389
- ldap 方法:普通
- ldap base:我的 ldap 服务器的基础
- ldap uid: userPrincipalName
- ldap 绑定 dn:无
- ldap 密码:无
- ldap过滤器:(&(userPrincipalName=%{username})(memberOf=cn=[所需组名],ou=....,[base]))
使用此配置时,任何人都无法登录论坛。当我使用绑定 dn 和密码时,每个人都可以登录。
我也试过这个过滤器但没有成功(从我的 ldap 服务器过滤器复制):
- (&(&(&(userPrincipalName=%{username})(memberOf=[组的 dn]))))
我必须配置什么才能只允许该特定组中的用户登录?
我没有在日志中发现任何错误或指示符。请帮忙!
感谢您的帮助和关注!
您确实需要 "ldap dn" 和 "ldap password"。这些是用于向 LDAP 进行身份验证的凭据,因此您可以查找人们的帐户。通常,这是一个仅供您的应用程序使用的服务帐户。
过滤器可能看起来像这样:
(&(sAMAccountName=%{username})(memberOf:1.2.840.113556.1.4.1941:=[dn of the group]))
用户通常会使用 sAMAccountName
登录,通常称为 "username"。每当您看到 DOMAIN\username
格式的帐户时,username
就是 sAMAccountName
.
userPrincipalName
通常是username@domain.com
的格式。它有时与电子邮件地址相同,但并非必须如此。
我在该查询中输入的疯狂数字告诉 Active Directory 在组中递归搜索。这样一来,您就可以将组放入您的身份验证组中,并且该新组的成员也可以访问您的应用程序。否则,只有该组的直接成员才能访问。
我目前尝试将 Discourse 配置为仅允许特定 ldap 组中的用户登录。Discourse 有一个名为 discourse-ldap auth 的插件(https://github.com/jonmbake/discourse-ldap-auth ). This plugin uses the omniauth ldap module: https://github.com/omniauth/omniauth-ldap
我的discourse插件配置(该配置实际上是discourse插件对omniauth ldap模块使用的):
- ldap 启用:真
- ldap 主机名:我的 ldap 服务器的主机名
- ldap 端口:389
- ldap 方法:普通
- ldap base:我的 ldap 服务器的基础
- ldap uid: userPrincipalName
- ldap 绑定 dn:无
- ldap 密码:无
- ldap过滤器:(&(userPrincipalName=%{username})(memberOf=cn=[所需组名],ou=....,[base]))
使用此配置时,任何人都无法登录论坛。当我使用绑定 dn 和密码时,每个人都可以登录。 我也试过这个过滤器但没有成功(从我的 ldap 服务器过滤器复制):
- (&(&(&(userPrincipalName=%{username})(memberOf=[组的 dn]))))
我必须配置什么才能只允许该特定组中的用户登录?
我没有在日志中发现任何错误或指示符。请帮忙!
感谢您的帮助和关注!
您确实需要 "ldap dn" 和 "ldap password"。这些是用于向 LDAP 进行身份验证的凭据,因此您可以查找人们的帐户。通常,这是一个仅供您的应用程序使用的服务帐户。
过滤器可能看起来像这样:
(&(sAMAccountName=%{username})(memberOf:1.2.840.113556.1.4.1941:=[dn of the group]))
用户通常会使用 sAMAccountName
登录,通常称为 "username"。每当您看到 DOMAIN\username
格式的帐户时,username
就是 sAMAccountName
.
userPrincipalName
通常是username@domain.com
的格式。它有时与电子邮件地址相同,但并非必须如此。
我在该查询中输入的疯狂数字告诉 Active Directory 在组中递归搜索。这样一来,您就可以将组放入您的身份验证组中,并且该新组的成员也可以访问您的应用程序。否则,只有该组的直接成员才能访问。