将openLDAP与meteor JS一起使用

时间:2016-04-06 18:28:43

标签: meteor ldap meteor-blaze meteor-accounts

我需要为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'
            }
        ]
        });

再次感谢

1 个答案:

答案 0 :(得分:0)

是;您可以在本地开发计算机上安装和运行OpenLDAP。默认LDAP端口是389,您尚未定义。一切都取决于您的操作系统,您可能已打开端口。默认的启用TLS的端口是689。

在处理Meteor界面之前,请使用和LDAP客户端BIND(即验证)到LDAP服务器,验证LDAP服务器配置和LDAP身份验证(称为LDAP BIND)。一旦验证了身份验证,它就只是SMOP Meteor。