NodeJS – 使用Active Directory进行身份validation

我正在构build一个nodejs服务器,并决定通过活动目录执行身份validation。

所以我的第一个问题是:是否有可能与nodejs? 如果是这样,有人可以指引我的相关文章/文档/插件?

我的第二个问题是关于authentication本身。 我的服务器是宁静的,所以我基本上必须提供某种forms的标识每次我从服务器请求的东西。

我虽然关于下一个stream程:

在客户端的login页面,我发送用户名和密码到服务器。

在服务器上,我使用客户端发送的凭证对Active Directory进行身份validation。

一旦我收到来自Active Directory的响应,我检查它是否是有效的响应,如果login成功,我还检查用户是否在Active Directory中具有适当的权限来使用我的服务。

一旦所有的validation,我为用户创build一个令牌。 来自客户端的每个请求都必须包含有效的令牌。

这似乎是解决这个问题的最为标准的方法,它比每个请求发送用户名/密码和每次激活方向validation要简单得多。

但有些事情打扰我。

例如:如果系统pipe理员决定从活动目录中删除用户或删除他的权限以使用我的服务,该怎么办? 该用户仍然有一个令牌,允许他访问我的服务。

我可以为令牌设置一个到期日,但除非这个到期日是一秒钟,否则服务器将不会真正与活动目录同步。

你认为这个标记是解决这个问题的方法吗? 或者我应该通过发送用户名和密码每个请求来做到这一点?

另一种方法是给客户端一个令牌,但在服务器上,将该令牌与活动目录的用户名和密码相关联。 每一个请求,服务器将与活动目录进行身份validation? 这是一个好方法吗?

谢谢,Arik

我写这个有点晚,但是:我也创build一个node.js的烬应用程序,它使用node-activedirectory。 当然可以用node.js:node-activedirectory或ldapjs。

不幸的是,我对第二个问题一无所知。 是的,可以检查。
您可以使用node-activedirectory中的身份validationfunction,然后使用isMemberOf函数。 node-activedirectory运行良好,所以你可以每次都进行身份validation,这是一个问题。

是的,如果用户login,他将被logging,直到会话或cookie过期(无论你想select什么),或者你可以创build类似于:每次刷新页面后,node-activedirectory只在用户存在时检查。 userExists

我希望我已经清除了一些你的想法。

问候,Rafał