我一直在使用Azure VM上托管的AD在NodeJS应用程序中实现SSO。我在应用程序中使用npm-kerberos。以下是我配置所有内容的方法:
- 我已为服务创建SPN
- 已使用该SPN生成密钥表
- 我的ubuntu服务器/etc/中的复制密钥表
- 已安装kerberos客户端并相应地配置了krb5.conf
在我的应用程序中,我安装了kerberos npm:
- principalDetails方法返回HTTP/www.example.com@REALM. COM,这就是我想要的。enpast.com@REALM.COM which is what I want.
- checkpassword也工作得很好。
- initializeServer使用从principalDetails获取的SPN失败。
代码如下:
const service = 'HTTP/enpast.com@REALM.COM'
kerberos.initializeServer(service, (err, data)=>{
if (err) {
console.log('Failed intialization---->', err);
} else {
console.log('Successfully initialized server', data);
}
});
下面是我收到的错误消息:
[错误:未指定的GSS失败。次要代码可能提供详细信息:未找到与HTTP/enpast.com/realm.com@匹配的键表条目]
任何关于这一事业的线索都将受到高度赞赏。谢谢
2条答案
按热度按时间vhmi4jdf1#
我也遇到过类似的问题,为了解决这个问题,我不得不这样声明
service
:注意'@'字符的位置。
hk8txs482#
错误日志是不言自明的。请仔细检查服务器的keytab中是否有主体:
klist -k path_to_keytabfile