Интеграция Python Urllib2 с проверкой подлинности Windows с использованием NTLM SSPI

Это дополнительный вопрос из приведенного ниже ответа:

Авторизоваться с текущими учетными данными пользователя для скрипта Python доступ к списку SharePoint с помощью NTLM

Я пытаюсь взаимодействовать со списком SharePoint без передачи или жесткого кодирования пароля в моем сценарии.

Решение, представленное в предыдущем ответе, успешно работает с библиотекой запросов, однако я не могу интегрировать его в функцию urllib2, которую использую для взаимодействия с SharePoint.

Приведенная ниже функция в настоящее время работает с жестко заданным паролем, но я бы предпочел использовать аутентификацию SSPI, чтобы не встраивать pw в скрипт.

def read_sharepoint_list(current_project):
    username = "Domain\\user.name"
    password = "my_password"

    # the sharepoint info
    site_url = "http://SharePoint/"
    list_name = "My List"

    # an opener for the NTLM authentication
    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
    passman.add_password(None, site_url, username, password)
    auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)

    # create and install the opener
    opener = urllib2.build_opener(auth_NTLM)
    urllib2.install_opener(opener)

Я сосредоточил свои попытки интегрироваться на компоненте passman.addpassword() приведенной ниже функции, но безуспешно.

Я заменил пароль HttpNtlmSspiAuth() call. Также заменили на полную строку запроса: requests.get(site_url, auth=HttpNtlmSspiAuth()). Не повезло ни с тем, ни с другим.

Я также пытался задействовать линию auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman), но мне не по себе. Просмотр документации NTLM до сих пор не дал решения.

Ваши мысли и предложения очень ценятся.


person jdg    schedule 05.05.2016    source источник