В настоящее время я пытаюсь получить доступ к API-интерфейсу sharepoint через python и библиотеку запросов. После проверки запроса через firebug я решил, что он использует аутентификацию NTLM, поэтому я установил плагин request_ntlm, но я все еще получаю ошибку 401.Что конкретно должен делать домен для проверки подлинности NTLM при использовании библиотеки python-запросов?
Я наткнулся на этот пост, How to access a sharepoint site via the REST API in Python?, где решение использовать NTLM авторизацию это:
requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD'))
Я просто смущает то, что домен должен ссылаться. Я предположил, что это будет просто мой сайт_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. То же самое относится и к документации по запросу-NTLM библиотеки видели здесь: https://github.com/requests/requests-ntlm:
requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))
Я предполагаю, что я просто синтаксис перепутались для имени пользователя, но я не совсем уверен, что проблема.