我已经成功地组装了超过六个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一起工作的好方法?
发布于 2015-06-03 12:53:58
虽然这是一个老问题,但作为passport-ldapauth的维护者,我应该稍微澄清一下LDAP身份验证。
LDAP身份验证与您以前使用的策略不同。这些OAuth策略实际上只能通过一种方式进行配置--提供所需的选项,然后它就会起作用。此部分与LDAP相同,但选项的实际值因服务器不同而不同。您所问的问题,如是否与sAMAccountName或uid匹配,实际上取决于您和LDAP服务器。
在RFC中已经广泛地定义了诸如DN看起来像什么、搜索库是什么、或者搜索过滤器的语法是什么之类的一般事情。如果不熟悉基础知识,就很难让身份验证正常工作。通常需要AD/LDAP服务器维护人员的输入来进行适当的设置,例如。什么搜索库允许查找所有需要的用户,但不会对LDAP服务器造成不必要的负载。
LDAP身份验证通常分三个步骤进行:
passport-ldapauth、bindDn和bindCredentials中),绑定到LDAP服务器。DN以及用户提供的密码,并绑定到LDAP服务器。这将验证密码。如果你想让用户使用他们的SAMAccountName登录,你的搜索过滤器可以是例如。(sAMAccountName={{username}})。如果您希望用户使用uid,那么过滤器可以只使用(uid={{username}})。如果要同时启用这两个选项,请使用(|(sAMAccountName={{username}})(uid={{username}}))。搜索过滤器语法在RFC 4515中指定。
发布于 2014-05-10 02:30:43
我可以通过passport-ldapauth认证到AD。其中一个关键是要知道要使用与某些在线LDAP示例不同的服务器选项
searchBase: 'ou=Accounts,dc=mydomain,dc=com'
searchFilter: '(sAMAccountName={{username}})' // {{username}} comes from the html form.您还需要知道是否需要ldap和TLS。(我没有)我花了大量的时间研究ldapjs.org。
发布于 2015-04-17 11:41:38
微软为此发布了一个官方的库:
https://github.com/AzureAD/passport-azure-ad
直接从npm添加到您的项目:
npm install passport-azure-ad或用于OAuth2流的Auth0的passport-azure-ad-oauth2。
https://stackoverflow.com/questions/21439030
复制相似问题