Каким конкретно должен быть домен для аутентификации NTLM при использовании библиотеки python-requests?

В настоящее время я пытаюсь получить доступ к API точки доступа через python и библиотеку запросов. После проверки запроса через firebug я определил, что он использует аутентификацию NTLM, поэтому я установил плагин request_ntlm, но все еще получаю ошибку 401.

Я наткнулся на этот пост, Как получить доступ к сайту sharepoint через REST API в Python?, где решение для использования аутентификации NTLM заключается в следующем:

requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD'))

Я просто смущен тем, на какой домен должна ссылаться. Я предполагал, что это будет просто мой site_url, но это все равно не работает. Я попытался отформатировать его с помощью двух косых черт, как показано в ветке, а также с одной обратной косой чертой, как указано здесь: https://curl.haxx.se/mail/lib-2005-11/0086.html.

При использовании NTLM вы можете установить домен, добавив его перед именем пользователя и разделив домен и имя прямой (/) или обратной косой чертой (\). Например: «домен/пользователь:пароль» или «домен\пользователь:пароль». Некоторые HTTP-серверы (в Windows) поддерживают этот стиль даже для обычной проверки подлинности.

import requests
from requests_ntlm import HttpNtlmAuth

username = "user"
password = "pass"
site_url = "https://sharepoint.site.com/foo/"
r = requests.get(site_url, auth=HttpNtlmAuth(site_url + username, password)
print(r.status_code)

Мне просто интересно, что он дает явный пример URL-адреса в request.get, но просто дает произвольный «ДОМЕН» в параметре auth. То же самое касается документации для библиотеки request-ntlm, которую можно увидеть здесь: https://github.com/requests/requests-ntlm:

requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))

Я предполагаю, что у меня просто перепутался синтаксис имени пользователя, но я не совсем уверен, в чем проблема.


person Dana Asbury    schedule 08.08.2016    source источник


Ответы (1)


Как вы видите здесь: http://blog.carg.io/listing-and-updating-a-sharepoint-list-in-python/ параметр «домен» не является обязательным. Фактически, я получил ошибку 401, пока не удалил ее из своего кода. Просто попробуйте: requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('USERNAME','PASSWORD')).

person Teazane    schedule 07.03.2018