【问题标题】:LDAP authentication filter to validate which employee is belong to which groupLDAP 身份验证过滤器以验证哪个员工属于哪个组
【发布时间】:2019-03-14 08:28:46
【问题描述】:

我正在为用户进行 LDAP 身份验证。 步骤是 - 1.当用户在登录屏幕上输入他的用户名时。 2. 请求到达 LDAP 服务器,并尝试根据相应的组验证用户

filter :="(|(employeeNumber=deeps)(memberOf=CN=DEV_Admin,OU=LDAP,DC=TEMP,DC=com))"

此过滤器工作正常,并为我提供相关组的员工详细信息。

现在需求发生了变化 -

当用户输入他的employeeNumber =deeps时

例如,我们必须针对不同的群体对他进行验证

  1. (memberOf=CN=DEV_Admin,OU=LDAP,DC=TEMP,DC=com)
  2. (memberOf=CN=DEV_View,OU=LDAP,DC=TEMP,DC=com)
  3. (memberOf=CN=DEV_Partial,OU=LDAP,DC=TEMP,DC=com)

谁能帮我编写一个合适的过滤器来检查所有这些组并在一个过滤器中为我提供用户,而不是编写三个 LDAP 请求?

【问题讨论】:

  • 您应该首先使用正确的绑定对用户进行身份验证。然后使用 Ludovic 所示的过滤器检查用户是否已获得此特定应用程序的授权。
  • @jwilleke 是的,完整的代码包含我首先检查正确绑定的所有步骤。

标签: ldap


【解决方案1】:

过滤器对我来说似乎不正确,因为它测试employeeNumber 是否为deeps 或条目是否在Dev_Admin 组中。在我看来,您想要的是 AND,而不是 OR。

要检查这 3 个组,可以使用以下过滤器:

(&(employeeNumber=deeps)(|(memberOf=CN=DEV_Admin,OU=LDAP,DC=TEMP,DC=com)(memberOf=CN=DEV_View,OU=LDAP,DC=TEMP,DC=com)(memberOf=CN=DEV_Partial,OU=LDAP,DC=TEMP,DC=com)))

【讨论】:

  • 我已经参考了这个链接stackoverflow.com/questions/1032351/… 来编写过滤器。另外,我知道上面的过滤器,但这只会告诉我“用户是任何一个组的成员”,而“想要检查用户到底属于哪个组。”
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 2021-07-08
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多