首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Passport活动目录node.js

Passport活动目录node.js
EN

Stack Overflow用户
提问于 2014-01-30 02:02:36
回答 5查看 14.8K关注 0票数 8

我已经成功地组装了超过六个passport策略(脸书,推特,领英,instagram,tumblr,谷歌,youtube)与oauth1和oauth2 token交换帐户信息,整合到一个独立的身份验证服务器中,该服务器在Mongo中保存会话并创建活动配置文件,具有token/ session /code/id字段和使用Tedious.js的SQL server中的许多标准化属性字段。这些护照工具非常棒,谢谢。

我在这个项目中遇到的最后一个挑战是,在active directory存储库中使用用户名和密码,以相同的方式进行查找和验证。我一次又一次地尝试passport-ldap,passport-ldapauth (基于ldapauth-gfork,基于ldapjs),passport-windowsauth和passport-kerberos,似乎得到了相关的凭证错误(在代码中添加了console.logs,试图找出我在语法上出错的地方)。

是否有其他资源和文档可用于使用任何Passport策略访问Node.js中的LDAP/AD?DN与ou的语法,以及存储库的帐户访问用户(具有专门设置的访问AD的服务帐户)与您正在查找的帐户用户的位置,以及筛选器使得很难找到与找出错误位置相关的任何错误。你匹配sAMAccountName还是uid?我一直收到“未经授权”的错误。

与其他70种passport策略不同的是,文档和示例都很清晰,而且只起作用,不太适合ad/ldap passport。谁能给我一个好的测试,文档或设置,特别是与Passport.js和Active Directory一起工作的好方法?

EN

回答 5

Stack Overflow用户

发布于 2015-06-03 12:53:58

虽然这是一个老问题,但作为passport-ldapauth的维护者,我应该稍微澄清一下LDAP身份验证。

LDAP身份验证与您以前使用的策略不同。这些OAuth策略实际上只能通过一种方式进行配置--提供所需的选项,然后它就会起作用。此部分与LDAP相同,但选项的实际值因服务器不同而不同。您所问的问题,如是否与sAMAccountName或uid匹配,实际上取决于您和LDAP服务器。

在RFC中已经广泛地定义了诸如DN看起来像什么、搜索库是什么、或者搜索过滤器的语法是什么之类的一般事情。如果不熟悉基础知识,就很难让身份验证正常工作。通常需要AD/LDAP服务器维护人员的输入来进行适当的设置,例如。什么搜索库允许查找所有需要的用户,但不会对LDAP服务器造成不必要的负载。

LDAP身份验证通常分三个步骤进行:

  1. 使用服务帐户(在passport-ldapauthbindDnbindCredentials中),绑定到LDAP服务器。
  2. 绑定后,执行配置的搜索,将占位符替换为用户提供的用户名。这将确定是否从LDAP服务器中找到给定的用户名。
  3. 使用搜索结果的DN以及用户提供的密码,并绑定到LDAP服务器。这将验证密码。

如果你想让用户使用他们的SAMAccountName登录,你的搜索过滤器可以是例如。(sAMAccountName={{username}})。如果您希望用户使用uid,那么过滤器可以只使用(uid={{username}})。如果要同时启用这两个选项,请使用(|(sAMAccountName={{username}})(uid={{username}}))。搜索过滤器语法在RFC 4515中指定。

票数 8
EN

Stack Overflow用户

发布于 2014-05-10 02:30:43

我可以通过passport-ldapauth认证到AD。其中一个关键是要知道要使用与某些在线LDAP示例不同的服务器选项

代码语言:javascript
复制
searchBase: 'ou=Accounts,dc=mydomain,dc=com'
searchFilter: '(sAMAccountName={{username}})'  // {{username}} comes from the html form.

您还需要知道是否需要ldap和TLS。(我没有)我花了大量的时间研究ldapjs.org。

票数 1
EN

Stack Overflow用户

发布于 2015-04-17 11:41:38

微软为此发布了一个官方的库:

https://github.com/AzureAD/passport-azure-ad

直接从npm添加到您的项目:

代码语言:javascript
复制
npm install passport-azure-ad

或用于OAuth2流的Auth0的passport-azure-ad-oauth2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21439030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档