2010-04-15 64 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流量的數據包捕獲,我很高興看到它。