Python-ntlm Authentication

Source: Internet
Author: User
Python-ntlm

Python library that provides NTLM support, including an authentication handler for urllib2.

This library allows you to retrieve content from (usually protected ate) servers protected with windows authentication (NTLM) using the python urllib2.

Python 3 Support

There is work going on to port the library to python 3, you can find it in the python30 directory. (at this time it seems to work as good as the python 2 library)

UsageSimple example
import urllib2 from ntlm import HTTPNtlmAuthHandler  user = 'DOMAIN\User' password = "Password" url = "http://ntlmprotectedserver/securedfile.html"  passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, url, user, password) # create the NTLM authentication handler auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)  # create and install the opener opener = urllib2.build_opener(auth_NTLM) urllib2.install_opener(opener)  # retrieve the result response = urllib2.urlopen(url) print(response.read())
Extended Example
import urllib2 from urlparse import urlparse, urlunparse from ntlm import HTTPNtlmAuthHandler  user = 'DOMAIN\User' password = "Password" url = "http://ntlmprotectedserver/securedfile.html" # determine a base_uri for which the username and password can be used parsed_url = urlparse(self.href) base_uri = urlunparse((parsed_url[0],parsed_url[1],"","","",""))  passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, base_uri, user, password) # create the NTLM authentication handler auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)  # other authentication handlers auth_basic = urllib2.HTTPBasicAuthHandler(passman) auth_digest = urllib2.HTTPDigestAuthHandler(passman)  # disable proxies (if you want to stay within the corporate network) proxy_handler = urllib2.ProxyHandler({})  # create and install the opener opener = urllib2.build_opener(proxy_handler, auth_NTLM, auth_digest, auth_basic) urllib2.install_opener(opener)  # retrieve the result     response = urllib2.urlopen(url) print(response.read())
Limitations
  • A request usingHTTPNtlmAuthHandler
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.