В настоящее время я пытаюсь получить доступ к 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'))
Я предполагаю, что у меня просто перепутался синтаксис имени пользователя, но я не совсем уверен, в чем проблема.