Tag: ldap

npm activedirectory获取objectGUID

我有一个Nodejs应用程序,我似乎无法得到一个实体唯一的ID这里是我正在使用的模块: https://www.npmjs.com/package/activedirectory 拉群体,我似乎无法得到以下属性: 的objectGUID 的objectSID 这里是片段 var ad = new ActiveDirectory(domainConfig); var query = 'CN=*'; ad.findGroups(query, function (err, result) { if (err) { console.log(err); log.error("No Groups found."); } log.info(result); }); 我错过了什么? 默认情况下,所有的属性应该返回 attributes – 要select和返回的属性(如果设置了这些属性,服务器将只返回这些属性)。 默认为空集,这意味着所有的属性。

制造商ldapjs使用tls

是否有可能使ldapjs(使用nodejs)使用TLS而不是仅使用SSL? 如果是,我将如何设置? 如果不是,他们是否支持TLS的nodejs的任何其他ldap库? 我可以find的唯一信息是ldaps://后者将通过SSL进行连接(请注意,这不会使用LDAP TLS扩展操作,但实际上是与端口636的SSL连接,如在LDAP v2中一样)。 而且在网页上说不支持TLS扩展操作(认真的说就是使用SSL) 如果我需要使用TLS连接到ldap服务器,对解决scheme有何build议?

ldapjs(使用node-express)client.search很慢

我使用node.js expressjs ldapjs来实现身份validation。 我有一个要求如下: validation用户 查找用户所属的所有组名称 通过configuration的深度级别(最多3次)查找用户组所属的父组名称; 这意味着find用户 – >find用户的组(#)—>find组的父母组多达三个级别。 为了在node-express环境中实现上述function,我使用了passportjs的ldapjs(编写一个自定义的策略来适应我们的需求)。 我的观察是,throgh ldapClient所做的每个search请求大约需要70ms,这对于完成我所需要的所有search请求(在身份validation过程中需要执行多达60-80个search请求)非常缓慢。 我上面实现了串行请求(我现在做完当前的下一个请求)。 在这种情况下,我该如何提高性能呢? 我可以查看哪些可用的选项?

如何在NodeJS中使用ldapjs连接LDAP

过去几天一直在使用NodeJS,并使用ldapjs模块运行LDAP连接。 我尝试连接的背景故事Active-Directory服务器支持LDAPv3。 以下是我用来连接到LDAP服务器的代码: var ldapClient = ldap.createClient({url: 'ldap://ldap.myhost.com.au:389'}, function (err){ if (err) { console.log('Failed'); process.exit(1); } else console.log('Through'); }); 在给定的例子中 ,它不包括最后一个callback函数,我尝试了它,因为大多数操作都包含callback的常见模式,所以我想我可以有一点运气,我没有。 我也尝试过和没有callback,仍然没有工作。 即使将url更改为无效URL,ldapClient容器也将始终返回true。 – 到目前为止,詹姆斯·托马斯的答案已经在下面解释了这一点 – 编辑: 我尝试绑定到LDAP的用户,并执行search查询作为下面的代码片段: ldapClient.bind('cn=drupal,ou=SystemAccount,dc=myhost,dc=com,dc=au', '', function (err) { if (err) { console.log('LDAP binding failed… disconnecting'); process.exit(1); } }); var opts = { scope: 'sub' }; var result = ldapClient.search('ou=Users,dc=myhost,dc=com,dc=au', opts, […]

我需要什么来连接到LDAP,并绑定到更“一般”的DN来search用户?

我遇到了一个我从未真正遇到过的问题,即从NodeJS应用程序连接到LDAP。 到现在为止,我甚至不知道有一个LDAP这样的东西,所以我一直在学习。 这就是为什么这可能是一个愚蠢的问题,但我还没有find任何简洁的答案。 这个要求是: “用你的应用程序login到你的应用程序中,用户和你的login屏幕上提供的通行证” 。 客户端有一个LDAP,并且想要使用它来validation我们的应用程序的用户,所以用户login屏幕上input的用户名和密码用于尝试login到LDAP。 我知道我需要三件东西来连接到LDAP: 服务器的URL 用户(通过) 和一个DN绑定 我目前使用ldapjs从ldapjs进行连接。 我需要用来validation用户的操作,我知道, 这是bind操作 。 为此,我需要创build服务器(已经完成,没有问题),并通过DN和密码。 我假设DN包含用户。 就像是 CN=myuser,OU=MyOrg,OU=Users,DN=MyLdapServer,DN=com 哪些工作… 只要用户属于同一个“分支” 。 也就是说,如果他们都在,比如OU=MyOrg 。 这就是为什么我能够在bind()对DN进行“硬编码”,只需要用replace来改变用户。 问题是,并不是所有的人都属于同一个“分支”(我不知道这个技术名称)。 说,我有一些在OU=MyOrg ,一些在OU=MyOtherOrg … 所以我不知道用户的组织是什么,所以我不能让他绑定到LDAP客户端,因为我缺lessDN。 客户端仅向我们提供了一个例子,使用ASP.NET和ADO.NET这样的另一个应用程序,使用类似于SQL命令的方式获取LDAP信息。 事情是,相当于DN是一个更通用的。 就像是 ldap://MyLdapServer.com/CN=[the_user_provided] 这显然是有效的。 如果我尝试做同样的事情,使用更多的“通用”DN路由(我假设它是LDAP树上的一个更高的节点),提供其中一个用户的密码,我得到一个authentication错误。 那么,怎么样? 我错过了什么? 只需使用“CN = [username]”DNlogin用户到LDAP,我需要什么? 那是只有ADO.NET可以使用的东西吗? 谢谢,抱歉,如果这是一个太普通的问题。

在Express js中检查没有密码的Active Directory

我正在使用express js 4.1 。 我想访问没有用户和pipe理员凭据的Active Directory。 我只想要检查在根域连接的用户名。 如果用户存在于域中,我将从login页面将我的应用程序redirect到主页面。 我已经尝试了大部分的npm的活动目录, passport-windowsauth , passport-ldapauth 上述方法都不起作用,因为它们都需要某个pipe理员或用户的凭证详细信息。 请build议我一个很好的方法来访问活动目录用户名和npm绝对适合我的要求。

在Node.js上使用passport-ldapauth进行LDAPauthentication

我一直在与护照ldapauth挣扎了几天,我没有更多的想法,我做错了什么。 简而言之,我有一个使用两种护照策略的项目:本地和LDAP。 本地策略对我来说是完美的,但LDAP是有问题的。 我有一个AD的只读用户(我们称之为“ldap-read-only-admin”),我可以通过外部LDAP客户端连接到这个用户并查看相关的OU。 我也三重检查了SearchBase,这似乎是正确的。 但是,当将相同的configuration传递给passport-ldapauth时,它似乎无法绑定用户凭据(我猜)。 任何想法如何debugging这将非常感激。 这是app.js: var express = require("express"); var app = express(); var path = require("path"); var session = require("express-session"); var mongoose = require("mongoose"); var passport = require("passport"); var flash = require("connect-flash"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var morgan = require("morgan"); var configDB = require('./config/database.js'); require('./config/passport.js')(passport); // pass […]

在nodejs上的ldap auth – 不断得到32没有这样的对象

我是一个LDAP新手。 我正在使用nodejs的ldapauth ,我一直得到32 – No Such Object 。 这是我的代码: var LdapAuth = require('ldapauth'); var ldapOptions = { "url":"ldap://my-host:389", "adminDn" : "cn=manager,dc=guycrc,dc=com", "adminPassword":"secret", "searchBase":"ou=Engineering", "searchFilter":"(uid={{username}})" }; var ldapAuthClient = new LdapAuth( ldapOptions ); ldapAuthClient.authenticate('Dana', 'Dana', function(err, result) { if (err) { console.log(['Error',err.code, err.dn, err.message ]); } else { console.log('Credentials valid = ' + result); // true […]

通过HTTP访问LDAP目录?

我试图从本身不支持协议的设备访问LDAP目录。 我希望能够通过HTTP操作发送请求,运行LDAP查询,并以JSONforms返回结果。 我试图通过一个类似于LDAP客户端的Node.js服务器来做到这一点。 你可以在这里查看Gist。 几个问题: 这甚至有可能吗? 什么是authentication的最佳做法? 谢谢!

使用passport-ldapauth npm进行LDAPauthentication

我正在尝试使用passport-ldapauth npm来validationopenLDAP用户名和密码。 在执行下面的代码时,我总是得到错误{ message: 'Missing credentials' } 。 请帮助我,我的代码有什么问题。 var connect = require('connect'), app = connect(), passport = require('passport'), LdapStrategy = require('passport-ldapauth'); // Credentials from the free LDAP test server by forumsys // More info at: http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/ var OPTS = { server: { url: 'ldap://<ip>', bindDn: '<admin username>', bindCredentials: '<admin password>', usernameField: "<passing actual username>", […]