Npm [错误:未指定的GSS失败。次要代码可能提供更多信息:未找到匹配的键表项

Npm [错误:未指定的GSS失败。次要代码可能提供更多信息:未找到匹配的键表项,npm,single-sign-on,kerberos,Npm,Single Sign On,Kerberos,我一直在使用azure VM上托管的AD在NodeJS应用程序中实现SSO。我正在我的应用程序中使用。以下是我如何配置一切: 我已经为该服务创建了一个SPN 使用该SPN生成了一个键表 在我的ubuntu服务器/etc中复制了keytab/ 已安装kerberos客户端并相应地配置了krb5.conf 在我的应用程序中,我安装了kerberos npm: principalDetails方法返回HTTP/enpass。com@REALM.COM这就是我想要的 checkPassword也可

我一直在使用azure VM上托管的AD在NodeJS应用程序中实现SSO。我正在我的应用程序中使用。以下是我如何配置一切:

  • 我已经为该服务创建了一个SPN
  • 使用该SPN生成了一个键表
  • 在我的ubuntu服务器/etc中复制了keytab/
  • 已安装kerberos客户端并相应地配置了krb5.conf
在我的应用程序中,我安装了kerberos npm:

  • principalDetails方法返回HTTP/enpass。com@REALM.COM这就是我想要的
  • 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/enpass.com/realm.com@匹配的键表项]


任何导致该原因的线索都将受到高度赞赏。谢谢您,错误日志是不言自明的。请仔细检查服务器的键表中是否有主体:
klist-k path_to_键表文件

以下是输出
keytab name:FILE:/etc/krb5.keytab KVNO主体----------------------------------------------------------------------------5 HTTPS/enpass。com@SCREWSSO.EASTUS.CLOUDAPP.AZURE.COM
注意主体是HTTPS。但是错误指定了HTTP。在Kerberos中,HTTP和HTTPS指定了相同的服务。这不是问题。然后他应该仔细检查他的领域配置。我假设
real.com
是要屏蔽的占位符名称真实的。但鉴于哈里斯公开真实的事实,这似乎是不匹配的。