本文介绍了用的NodeJS,防爆preSS和护照ldapauth LDAP验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到了麻烦,以验证在标题中提到的工具/应用的Active Directory服务器米
我使用的是测试AD环境中发现的
以下是相关的code段,如果任何人有任何建议,我真的AP preciate它。
目前,我得到的错误是无效的用户名/密码。我不知道这是否是指定binddn帐号/密码或用户在表单中输入的人。按照护照ldapauth项目是:
为InvalidCredentialsError invalidCredentials的闪信
NoSuchObjectError和
/没有这样的用户/ LDAP我的错误(默认:无效的用户名/密码)
先谢谢了。
客户端 - auth.service.js
...登录:功能(用户,回调){
变种CB = ||回调angular.noop;
变种推迟= $ q.defer();$ http.post('/认证/ LDAP',{
电子邮件:user.email,
密码:user.password的
})。
成功(功能(数据){
$ cookieStore.put('令牌',data.token);
的currentUser = User.get();
deferred.resolve(数据);
返回CB();
})。
错误(函数(ERR){
this.logout();
deferred.reject(ERR);
返回CB(ERR);
} .bind(本));返回deferred.promise;
},...
服务器index.js
使用严格的;VAR前preSS =要求('前preSS');
VAR护照=要求('护照');
VAR AUTH =要求('../ auth.service');VAR路由器=前press.Router();router.post('/',函数(REQ,资源,下一个){
passport.authenticate('ldapauth',函数(ERR,用户信息){
VAR误差= ||犯错信息;
如果(错误)返回res.json(401错误);
如果返回res.json(404,{消息:出事了,请重试。'});(用户!) VAR令牌= auth.signToken(user._id,user.role);
res.json({令牌:令牌});
})(REQ,资源,下一个)
});module.exports =路由器;
服务器passport.js
VAR护照=要求('护照');
VAR LdapStrategy =要求('护照ldapauth')战略。exports.setup =功能(用户配置){
passport.use(新LdapStrategy({
usernameField:电子邮件,
passwordField:'密码',
服务器:{
网址:'LDAP://ldap.forumsys.com:389',
指定binddn:CN =只读管理员,DC =例如,DC = COM,
bindCredentials:密码
searchBase:OU =数学家,DC =例如,DC = com公司,
searchFilter:UID = {{名}}'
}
},
功能(用户,完成){
返回完成(NULL,用户);
}
));
};
解决方案
现在的问题是,在搜索基础的 OU =数学家
。有一个在该网页上的评论以下提到的:
This should work (tried it even with ldapauth-fork
which passport-ldapauth
uses):
var opts = {
server: {
"url": "ldap://ldap.forumsys.com:389",
"adminDn": "cn=read-only-admin,dc=example,dc=com",
"adminPassword": "password",
"searchBase": "dc=example,dc=com",
"searchFilter": "(uid={{username}})",
}
};
这篇关于用的NodeJS,防爆preSS和护照ldapauth LDAP验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!