gpt4 book ai didi

node.js - Passport 事件目录 node.js

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:25 25 4
gpt4 key购买 nike

我已经成功地将超过六种通行证策略(facebook、twitter、linkedin、instagram、tumblr、google、youtube)与 oauth1 和 oauth2 token 交换帐户信息整合到一个独立的身份验证服务器中,该服务器在 Mongo 中保存 session 并创建事件配置文件,带有 token / session /代码/id 字段以及 SQL 服务器中使用 Tedious.js 的许多标准化属性字段。这些 Passport 工具非常好,谢谢。

我对这个项目的最后一个挑战是进展不顺利,用户名和密码进入事件目录存储库,以相同的方式查找和授权。我一直在一遍又一遍地尝试 passport-ldap、passport-ldapauth(基于 ldapauth-gfork,基于 ldapjs)、passport-windowsauth 和 passport-kerberos,似乎出现了相关的凭证错误(深入代码,添加控制台.logs 来尝试找出我在语法上出错的地方)。

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

与其他 70 种通行证策略不同,在其他 70 种通行证策略中,文档和示例清晰且有效,而对于 ad/ldap 通行证则不是那么多。任何人都可以指出一个很好的测试、文档或设置,特别适用于 Passport.js 和 Active Directory 吗?

最佳答案

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

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

诸如 DN 的外观、什么是搜索基础或搜索过滤器的语法等一般内容已在 RFC 中进行了广泛定义。如果不熟悉基础知识,则很难进行身份验证。通常需要 AD/LDAP 服务器维护者输入以进行适当的设置,例如。 what search base 允许找到所有需要的用户,但不会在 LDAP 服务器上造成不必要的负载。

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

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

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

关于node.js - Passport 事件目录 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com