配置passport-ldap

时间:2015-09-28 15:54:12

标签: javascript php node.js ldap

尝试使用此程序包:https://www.npmjs.com/package/passport-ldapauth

我设法在medawikiserver(php)中找到了我公司的ldap设置

$wgLDAPDomainNames               = array("COMPANY");
$wgLDAPGroupBaseDNs              = array("COMPANY"=>"dc=company,dc=se");
$wgLDAPAutoAuthDomain            = "COMPANY";
$wgLDAPGroupUseFullDN            = array("COMPANY"=>true );
$wgLDAPServerNames               = array("COMPANY"=>"dcst.company.se");
$wgLDAPSearchStrings             = array("COMPANY" => "COMPANY\\USER-NAME" );
$wgLDAPSearchAttributes          = array("COMPANY"=>"sAMAccountName");
$wgLDAPBaseDNs                   = array("COMPANY"=>"dc=company,dc=se");
$wgLDAPEncryptionType            = array("COMPANY" => "ssl" );
$wgMinimalPasswordLength         = 1;

我需要将它映射到node-package。我试过这个:

var opts = {
  server: {
    url: 'ldaps://dcst.company.se',
    bindDn: 'dc=company,dc=se',
    //bindCredentials: 'secret',
    searchBase: 'dc=company,dc=se',
    searchFilter: '(&(objectcategory=person)(objectclass=user)(|(samaccountname={{username}})(mail={{username}})))',
    searchAttributes: ['displayName', 'mail'],
  }
};

我收到“错误请求”。这来自文档:

badRequestMessage flash message for missing username/password (default: 'Missing credentials')

我做错了什么?

1 个答案:

答案 0 :(得分:7)

您需要添加管理员凭据。以下是我的配置的工作原理:

var Strategy = require('passport-ldapauth').Strategy
  , passport = require('passport')
  , config = require('config')
  , userLookup = require('./userLookup');

var ldapConfig = {
  server: {
    url: config.get('ldap.url'),
    adminDn: config.get('ldap.adminDn'),
    adminPassword: config.get('ldap.adminPassword'),
    searchBase: config.get('ldap.searchBase'),
    searchFilter: config.get('ldap.searchFilter')
  }
};

passport.use('ldap', new Strategy(ldapConfig, userLookup));