我需要为Meteor App实施LDAP身份验证,因为我们目前没有LDAP服务器。
我可以在本地计算机上使用OpenLDAP实现。
我对LDAP身份验证了解不多。所以我可以感谢任何帮助。我正在实现我朋友提供的以下提到的代码
Template.ldapLogin.events({
'submit #login-form': function (e) {
e.preventDefault();
var form = $(e.target);
var username = form.find("#login-form-username").val();
var password = form.find("#login-form-password").val();
if (username === "admin") {
Meteor.loginWithPassword(username, password, function (error) {
if ( ! error && password === "admin") {
// Set switch to trigger alert to change password
Session.setPersistent("passChangePrompt", 1);
}
});
} else {
Meteor.loginWithLDAP(username, password,
{ dn: "uid=" + username + ",ou=<foo>,dc=<bar>,dc=<baz>,dc=<qux>" },
function (error, success) {
if (error) {
console.log(error.reason);
} else {
FlowRouter.redirect('/');
};
});
}
}
});
Server:
Meteor.startup( function() {
LDAP_DEFAULTS.url = 'ldap://<ask your IT dude or gal>';
LDAP_DEFAULTS.dn = 'ou=<foo>,dc=<bar>,dc=<baz>,dc=<qux>';
LDAP_DEFAULTS.port = '';
LDAP_DEFAULTS.searchResultsProfileMap = [
{
resultKey: 'cn',
profileProperty: 'name'
}
,{
resultKey: 'mail',
profileProperty: 'phoneNumber'
}
]
});
再次感谢
答案 0 :(得分:0)
是;您可以在本地开发计算机上安装和运行OpenLDAP。默认LDAP端口是389,您尚未定义。一切都取决于您的操作系统,您可能已打开端口。默认的启用TLS的端口是689。
在处理Meteor界面之前,请使用和LDAP客户端BIND(即验证)到LDAP服务器,验证LDAP服务器配置和LDAP身份验证(称为LDAP BIND)。一旦验证了身份验证,它就只是SMOP Meteor。