护照-ldapauth获取嵌套组

时间:2018-07-10 16:43:02

标签: node.js active-directory ldap passport.js

我在我的NODEJS + ExpressJS应用程序中使用passport-ldapauth。 我正在尝试获取经过身份验证的用户的所有NESTED成员的列表,但无法弄清楚该怎么做。

我的用户“ X”的成员资格为“ ROL-B”,而ROL-B的成员资格为其他10个组。 现在,经过身份验证后,当它返回经过身份验证的用户对象时,我仅将ROL-B视为该组的成员。 我有什么办法可以获取用户所属的嵌套组的完整列表?

这是我的配置 "adAuthConfig": { "url": "ldap://localhost:8076", "bindDn": "CN=svcAccount,OU=Services,OU=Accounts,DC=misd,DC=net", "bindCredentials": "XXXXXXXXXXXXXXX", "searchBase": "OU=Accounts,DC=misd,DC=net", "searchFilter": "(userPrincipalName={{username}})" },

1 个答案:

答案 0 :(得分:0)

我还没有尝试使用passport-ldapauth,但这对我直接使用ldapauth-fork有用:

const LDAP_MATCHING_RULE_IN_CHAIN = '1.2.840.113556.1.4.1941'
const config = { ... your config here ... }
config.groupSearchBase = config.searchBase
config.groupSearchFilter = `(&(objectclass=group)(member:${LDAP_MATCHING_RULE_IN_CHAIN}:={{dn}}))`

new LdapAuth(config)
// etc

这会将_groups属性添加到LdapAuth.authenticate结果中。这包括所有嵌套的组。