【发布时间】:2019-11-12 20:53:31
【问题描述】:
首先,感谢您查看/帮助。
我正在尝试使用 Node.js 中 npm 的 kerberos 包中的 initializeClient 函数。我的目标是能够向我们的内部 API 发出请求。
const kerberos = require('kerberos')
var company = 'company'
var service = `HTTP/internal.${company}.com@SERVER.${company.toUpperCase()}.COM`
var options = { principal: `firstname@SERVER.${company.toUpperCase()}.COM` }
kerberos.initializeClient(service, options, (err, details) => {
console.log(details)
})
返回的响应是:
KerberosClient {
contextComplete: false,
responseConf: 0,
response: null,
username: null
}
据我所知,这个函数是如何工作的,你将服务、选项(包括主体)和回调函数传递给它。
似乎该函数正在运行,但没有返回任何数据。我还尝试传递一个空对象作为选项,看起来它会从机器中提取当前票证,这是首选。
我在 macOS 10.14 上使用 Node v12.4.0 运行它。我已经从 homebrew 安装了 krb5。
问题是,为什么这没有返回任何预期的内容(尚不确定预期的内容),这是能够使用 Kerberos 票证发出协商请求的正确路径吗?
再次感谢!
【问题讨论】:
-
有一点要提一下,当我在终端中执行
kdestory时,响应返回为null,而当我执行kinit时,它返回上面的响应。这意味着 initializeClient 的函数确实在我的机器上看到了我的 keytab 文件。
标签: javascript node.js kerberos spnego negotiate