2016-04-08 6 views
0

Я пытаюсь получить доступ к службе REST, которая использует аутентификацию Kerberos (внутренняя компания) из приложения Python в Windows. Тем не менее, кажется, что служба настроена ожидать SPNEGO только когда я пытаюсь использовать запросы-Kerberos для подключения как в:Доступ к аутентифицированной веб-службе SPNEGO от Python в Windows

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. Существуют ли какие-либо библиотеки, которые могут помочь мне сделать вызов SPNEGO из Python в Windows?

ответ

0

В случае, если у кого-то будет аналогичная проблема - разрешена с помощью pycurl с набором атрибутов pycurl.HTTPAUTH_GSSNEGOTIATE.

+0

Не используйте 'HTTPAUTH_GSSNEGOTIATE'. В прошлом году он был [устарел] (https://github.com/curl/curl/blob/37f0e8a32cf9ad0a87f8c60cfa12b65e61be15a9/docs/libcurl/symbols-in-versions#L20) в пользу 'HTTPAUTH_NEGOTIATE'. –