2016-08-08 1 views
2

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

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

ответ

0

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

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