Я пытаюсь интегрировать аутентификацию 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);