2016-11-03 2 views
0

Моя цель - аутентифицировать моего клиента, который использует библиотеку запросов (2.11.1) в Python 3.5.2 через NTLM с SSPI, чтобы пользователю не приходилось вручную вводить учетные данные своего домена (используется для входа на ПК).Как использовать запросы Python для проверки подлинности NTLM SSPI?

Я нашел следующие возможности, но ни одна работа для меня:

  • HttpNtlmSspiAuth вызывает исключение в запросах:

    запросов на импорт из requests_ntlm импорта HttpNtlmAuth, HttpNtlmSspiAuth

    запросы. get (site_url, auth = HttpNtlmSspiAuth())


  • requests-sspi-ntlm всегда получает 401:

    запросов на импорт из requests_sspi_ntlm импорта HttpNtlmAuth

    сессия = requests.Session() session.auth = HttpNtlmAuth() session.get ("http://ntlm_protected_site.com")


  • И requests-negotiate-sspi также вызывает исключение в запросах:

    запросов на импорт из requests_negotiate_sspi импорта HttpNegotiateAuth

    г = requests.get ('https://iis.contoso.com', авт = HttpNegotiateAuth())


Я так делаю неправильно?

+0

Вы не сказали нам, что вы * * делаете. «никто не работает для меня», это не вопрос. –

ответ

2

Я сам это понял.

Я приспособился к запросам и python 3 этого code и этого module, который взаимодействует с Windows SSPI. Вы можете получить его here.

+0

Не могли бы вы опубликовать этот код? – user1717828

+0

Вы можете найти здесь: https://drive.google.com/drive/folders/0B3IIoC4r3p1COHhrZ1pWdUNmclU?usp=sharing – R01k

+0

Поскольку он полагается на win32api, это только Windows. – R01k

1

Пакет requests-negotiate-sspi работает для меня.

У меня, вероятно, была такая же проблема с ПО, но я был слишком ленив, чтобы попробовать решение PO и интегрировать код PO в мой. И Google помог мне. В случае, если кто-либо встречает такое же исключение, возникшее из sspi.py ValueError: year 30828 is out of range, это известная проблема для python 3.6 из requests-negotiate-sspi. См. Здесь: Github-Issue

Я решил это, создав новую среду conda с python 3.4. Затем переустановите некоторые зависимости, а также requests-negotiate-sspi, бум, все работает.

Смежные вопросы