2016-04-08 99 views
0

我試圖從Windows上的Python應用程序訪問使用Kerberos身份驗證(公司內部)的REST服務。然而,似乎該服務被配置爲期望SPNEGO只有當我嘗試使用請求,Kerberos進行連接,如:在Windows上從Python訪問SPNEGO身份驗證的Web服務

requests.get('servicename', auth=HTTPKerberosAuth()) 

它產生一個500錯誤從服務器:

javax.servlet.ServletException: GSSException: No credential found for: 1.2.840.113554.1.2.2 

我的猜測是服務器被配置爲僅期望SPNEGO,而Python客戶端僅支持Kerberos。

我已經嘗試安裝PyKerberos,但由於它預期krb5在系統上,我在Windows下這樣做。有沒有可用的庫可以幫助我在Windows中執行Python中的SPNEGO調用?

回答

0

如果其他人會有類似的問題 - 通過使用pycurl與pycurl.HTTPAUTH_GSSNEGOTIATE屬性集來解決。

+0

請勿使用'HTTPAUTH_GSSNEGOTIATE'。去年它已被[棄用](https://github.com/curl/curl/blob/37f0e8a32cf9ad0a87f8c60cfa12b65e61be15a9/docs/libcurl/symbols-in-versions#L20)轉而支持'HTTPAUTH_NEGOTIATE'。 –