HTTP协商windows与使用python kerberos的Unix服务器实现

HTTP协商windows与使用python kerberos的Unix服务器实现,python,kerberos,Python,Kerberos,我试图在python web服务器中实现一个简单的单点登录。我使用了python kerberos包,它工作得很好。我已经在我的Linux机器上测试了它(根据active directory进行身份验证),它没有问题。 但是,当我尝试从Windows机器上使用Firefox进行身份验证时(没有特殊设置,只是让用户登录域+将我的服务器添加到协商身份验证的可信URI中),它不起作用。我查看了发送的内容,它甚至与Linux机器发送的内容不一样。这一过程非常类似于我在Linux上的交互方式,但Windo

我试图在python web服务器中实现一个简单的单点登录。我使用了python kerberos包,它工作得很好。我已经在我的Linux机器上测试了它(根据active directory进行身份验证),它没有问题。 但是,当我尝试从Windows机器上使用Firefox进行身份验证时(没有特殊设置,只是让用户登录域+将我的服务器添加到协商身份验证的可信URI中),它不起作用。我查看了发送的内容,它甚至与Linux机器发送的内容不一样。这一过程非常类似于我在Linux上的交互方式,但Windows机器通常会发送一个非常短的字符串,它甚至与microsoft文档中的状态不一样,当base64解码时,它就像是12个零字节,后跟3或4个非零字节(然后GSS函数返回它不支持这种方案)

要么是客户端Firefox设置有问题,要么是协商协议应该遵循某个协议,但我在任何地方都找不到任何参考。有什么问题吗?你知道我应该尝试找到什么协议吗,因为它看起来不像SPNEGO,至少在MS文档中是这样的

更新:现在它似乎至少产生了合理的数据(在不同于windows7的东西上干净地安装firefox…),但是我得到了: (“未指定GSS故障。次要代码可能提供更多信息”,851968),('',100004))
协商数据现在似乎正常,因此这是另一个错误。知道我在哪里可以解码100004的意思吗?

在Windows上,您还需要确保network.auth.use-sspi=true,以便Firefox将使用本机Windows Kerberos(sspi),而不是查找GSSAPI DLL

如果不是这样,并且您希望提供Kerberos和HTTP流量的数据包捕获,我很乐意看一下