如何验证kerberos令牌(在node.js中)?

如何验证kerberos令牌(在node.js中)?,node.js,authentication,kerberos,spnego,Node.js,Authentication,Kerberos,Spnego,我不太确定我的描述是否正确 基本上,我正在尝试将Windows身份验证添加到node.js站点 我用WWW-Authenticate:congregate标题发回一个401 浏览器立即使用值协商 此时,我只想确保令牌是有效的。我试图找到其他开源框架的例子,但我不知道我在寻找什么 需要澄清的是,用户已经登录到域,并且没有发送用户名/密码信息 (我可能不完全理解这一切是如何运作的) 我刚找到 服务器解码NegTokenInit,提取支持的类型( MechTypeList前面的一个应该是Kerbero

我不太确定我的描述是否正确

基本上,我正在尝试将
Windows身份验证
添加到node.js站点

我用
WWW-Authenticate:congregate
标题发回一个
401

浏览器立即使用值
协商

此时,我只想确保令牌是有效的。我试图找到其他开源框架的例子,但我不知道我在寻找什么

需要澄清的是,用户已经登录到域,并且没有发送用户名/密码信息

(我可能不完全理解这一切是如何运作的)

我刚找到

服务器解码NegTokenInit,提取支持的类型( MechTypeList前面的一个应该是Kerberos Legacy 或Kerberos V5),确保它是预期的,然后 提取令牌并使用进行身份验证 gss\u接受\u安全\u上下文

如果我理解正确,我正在寻找
gss\u accept\u security\u context

我还尝试在java中使用
GSSManager
,但运气不佳。我发布了那个问题


我的方向正确吗?

我最近提交了对上述kerberos模块()的请求,以实现服务器端身份验证。以前,该模块只实现了客户端API

我还创建了一个passport身份验证策略passport negotiate(),它利用该策略并实现服务器端HTTP身份验证,包括401和WWW身份验证

您可以在此处查看其详细信息:

不幸的是,除非拉取请求被合并到kerberos模块中,并且有了新的版本,或者您可以从my github获得kerberos的修补版本,否则这将不起作用:


您可以查看节点公开sspi模块的源代码。因为它正执行您想要执行的操作:它使用名为
AcceptSecurityContext
的SSPI函数验证Kerberos/NTLM令牌


注意:我是本模块的作者。

“要求:Microsoft Windows OS,[…]”