Невозможно получить группы пользователей и атрибуты пользователей с сервера ldap, используя passport-ldapauth в node js - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь интегрировать аутентификацию ldapserver в мое приложение node js. Я использовал passport-ldapauth для аутентификации имени пользователя и пароля ldap. Аутентификация пользователя работает нормально, но в ответе нет атрибутов пользователя и групп пользователей. Как я могу получить их от ldapserver в качестве ответа.

Используя код ниже

  passport.use(new LdapStrategy({
            server: {
                url: `ldap://${keys.host}:${keys.port}`,
                bindDN: keys.bindDN,
                bindCredentials: keys.bindCredentials,
                searchBase: 'ou=people,dc=kobil,dc=com',
                searchFilter: '(uid={{username}})'
            },
            usernameField: "username",
            passwordField: "password"
        },
            async function (user, done) {
                logger.info("passport callback function fired for ldap");
                try {
                    const info = {
                        keys: keys,
                        repositoryId: keys.repositoryId,
                        tenantId: keys.tenantId,
                    };
                    return done(null, info);
                } catch (e) {
                    logger.error("Error in passport callback function for ldap: %s", JSON.stringify(e));
                    return done(e, null);
                }
            }
        ));

passport.authenticate('ldapauth', { session: false }, async (err, user) => {
            if (err) {
                return next(err); // will generate a 500 error
            }
            // Generate a JSON response reflecting authentication status
            if (!user) {
                return res.send({ success: false, message: 'authentication failed' });
            } else {
                return res.send(user);
            }
        })(req, res, next);
...