【问题标题】:How to read principals and encrypted keys from Kerboros keytab file on Node JS?如何从 Node JS 上的 Kerboros 密钥表文件中读取主体和加密密钥?
【发布时间】:2015-04-27 21:49:38
【问题描述】:

我需要拦截到我的节点服务器的特定请求并在此处引入 Kerberos 身份验证。

假设如果 /names/ 的请求来了,我需要首先 Kerberos 对其进行身份验证,只有当它成功验证时,我才会继续执行请求。

我有一个 .keytab 文件,据我所知,该文件包含身份验证所需的主体和加密密钥。

问题:如何在 Node JS 上读取 .keytab 加密文件? 我查看了 node-krb5 和 node-passport 等 Node 包,但找不到读取我的 keytab 文件的方法

如果您做过类似的事情,请提供帮助。 谢谢。

【问题讨论】:

  • 为什么要包含 [spring-security-kerberos] 标签

标签: node.js encryption kerberos spring-security-kerberos keytab


【解决方案1】:

您应该查看节点 passport-negotiate 模块,它实现了服务器端 kerberos 票证身份验证检查。模块中有一个示例“登录”应用程序,它演示了如何使用该模块,如果您查看strategy.js,您应该了解如何使用底层 kerberos 支持,如果您想绕过护照并直接进行身份验证。

实际的服务器端 kerberos 功能是 npm kerberos 模块的一部分。

【讨论】:

  • 仅供参考,这些更改现在已合并到上游 kerberos 模块中,并且已经发布了正式版本。
  • 迫不及待地想回顾一下。我知道 NTLM/Kerberos Auth 是 NPM 中缺少的一件大事。这可能是一个应该付费的模块。顺便说一句,请随时更新您的答案,因为您说的大部分文字不再适用
【解决方案2】:

我查看了 node-krb5 的源代码,这没什么用。它所做的一切 或多或少是 kinit 所做的。

我的猜测是您需要一个 SPNEGO 的节点实现,它是一个使用 kerberos 的 Web 身份验证协议。您的清单中没有任何内容 做到这一点,这不是一件容易的事。

我建议您考虑在前面放置一个支持 SPNEGO 的服务器 您的节点应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2020-11-28
    • 1970-01-01
    • 2012-10-30
    • 2017-09-16
    • 2016-09-28
    • 2022-11-01
    相关资源
    最近更新 更多