首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Node.js中将NTLM凭据转换为Kerberos令牌

如何在Node.js中将NTLM凭据转换为Kerberos令牌
EN

Stack Overflow用户
提问于 2019-07-08 21:47:19
回答 2查看 1K关注 0票数 17

我想使用Node.js构建一个服务器,它充当某种代理。连接到我的服务器的客户机使用NTLMv2进行身份验证(没有机会改变这一点),但是我的服务器要连接到的上游服务器需要一个Kerberos令牌。

因此,我的问题非常简单:如何使用Node.js将NTLMv2提供的信息转换为Kerberos令牌?在npm上,到目前为止,我已经找到了用于NTLMv2身份验证的模块,但不知何故,我可能需要与Windows对话,以便将用户的NTLMv2数据转换为该用户的令牌。

对此有什么提示,如何处理这个问题?

EN

回答 2

Stack Overflow用户

发布于 2019-07-09 03:47:33

绝对不是!NTLM和Kerberos的操作完全不同。首先,我强烈建议尽快摆脱NTLM。

如果你能访问C接口,你可以以一种简单的方式解决你的问题。我还假设您在类Unix操作系统(如CentOS或FreeBSD等)上运行MIT Kerberos。

NTLM将为您提供下层登录名。首先需要通过LDAP域将Kerberos域转换为DNS域(使用libopenldap),然后才能为客户端构建NetBIOS主体或企业主体。然后在您的KDC中创建一个服务帐户,并在该帐户上为目标服务启用协议转换和约束委托。现在,代表该用户主体请求一个TGT,并为该用户请求一个服务票证,这样您就可以访问Kerberos后端了。这里有一个不错的读物:https://k5wiki.kerberos.org/wiki/Projects/Services4User

如果您将HTTPd作为您的反向代理运行,它可能会为您的mod_auth_gssapi处理所有的魔力。

在Windows上,这对于安全API和SSPI来说有点麻烦。而主要的转换在Windows中是免费的。您将需要具有KERB_S4U_LOGONLsaLogonUser,使用该句柄进行模拟,然后需要SSPI来获取证书句柄……

票数 2
EN

Stack Overflow用户

发布于 2019-07-18 14:36:49

如果您的KDC允许受约束的委派,则可以将intermedaite服务器设置为允许模拟。这样,它可以在一种机制(在您的示例中为NTLM)中与客户端建立安全上下文,并在另一种机制(Kerberos)中代表客户端与后端服务器通信。谷歌搜索“受限委托”和“协议转换”以获取更多信息。希望这能有所帮助。

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

https://stackoverflow.com/questions/56936336

复制
相关文章

相似问题

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