2010-04-15 65 views
2

我试图在我的python web服务器中实现一个简单的单点登录。我已经使用了很好的python-kerberos包。我已经从我的Linux机器上对它进行了测试(对活动目录进行身份验证),并且没有任何问题。 但是,当我尝试从Windows机器使用Firefox进行身份验证时(无需特殊设置,只需让用户登录到域+将我的服务器添加到negotiate-auth.trusted-uris中),它就无法工作。我查看了发送的内容,甚至不像Linux机器发送的内容。这个过程的这种Microsoft description非常类似于我与Linux的交互方式,但Windows机器通常会发送一个很短的字符串,它甚至不像微软文档指出的那样,并且当base64解码时,它就像12零字节后跟3个或4个非零字节(GSS函数,然后返回它不支持这种方案)HTTP协商窗口与Unix服务器实现使用python-kerberos

或者客户端Firefox设置有问题,或者有一些我应该遵循的协议谈判协议,但我无法在任何地方找到任何参考。任何想法有什么不对?你有没有什么想法通过试图找到什么协议,因为它看起来像SPNEGO,至少从MS文档。但是我得到: ((未指定的GSS失败,小的代码可能提供更多的信息,但是我得到: ((未指定的GSS失败。 ,(851968),('',100004)) 协商数据现在似乎没问题,所以这是一些其他错误。任何想法在哪里可以解码100004的含义?

回答

1

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

如果不是这样,并且您希望提供Kerberos和HTTP流量的数据包捕获,我很高兴看到它。