requests-credssp
HTTPS CredSSP authentication with the requests library.
What it is and what it does
requests-credssp extends the requests library to authenticate against Windows servers using the CredSSP protocol, which combines TLS encryption with SPNEGO-negotiated credentials (NTLM or Kerberos). It enables double-hop authentication, allowing your credentials to be delegated to a remote server. The package supports CredSSP protocol versions 2 through 6 and provides message encryption via wrap/unwrap functions for secure token exchange.
Out of the box, it handles NTLM authentication on any platform. Kerberos support requires optional system dependencies and additional configuration on Unix-like systems. The library exposes configuration options for authentication mechanism selection, TLS version constraints, and minimum CredSSP protocol version enforcement—useful for working around compatibility issues with older Windows hosts or enforcing security patches.
Use it for:
- Authenticate requests to WinRM endpoints on Windows servers using domain credentials.
- Build Python tools that interact with Windows-only APIs or services requiring CredSSP.
- Implement credential delegation for multi-hop scenarios where a server must forward credentials to another system.
- Encrypt messages sent over CredSSP-authenticated TLS channels for additional protocol-level security.
- Enforce minimum CredSSP protocol versions to reject unpatched servers vulnerable to CVE-2018-0886.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds CredSSP authentication support to the requests library, enabling HTTPS requests to Windows servers using NTLM or Kerberos credentials with credential delegation.
No—the package is abandoned (last release February 2022, last commit May 2023) with no active maintenance or security updates. While it has low install friction and permissive licensing, the lack of ongoing support poses a risk for production use, especially for security-sensitive authentication. Consider only if you are maintaining legacy code with no alternative and can accept the security and compatibility risks.
Install
requests-credssp on PyPI
pip
pip install requests-credsspuv
uv add requests-credssppoetry
poetry add requests-credsspInstalling requests-credssp
Before you install
Low install friction with three straightforward dependencies. However, the package is abandoned—last release was 2022-02-21 and last commit 2023-05-31—so no active maintenance or security updates are forthcoming.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions.
Quickstart
pip install requests-credssp
import requests
from requests_credssp import HttpCredSSPAuth
credssp_auth = HttpCredSSPAuth('domain\\user', 'password')
r = requests.get('https://server:5986/wsman', auth=credssp_auth)
Requires Python 3.6+. Kerberos support on Unix requires system Kerberos headers and python-gssapi; install with requests-credssp[kerberos].
Verify before relying
- Whether the package remains compatible with current versions of cryptography, pyspnego, and requests given its abandoned status.
- Whether CredSSP protocol versions 5 and 6 (CVE-2018-0886 mitigations) remain secure against current threat models.
- Real-world compatibility with modern Windows Server versions and whether TLSv1.2 disabling is still necessary.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — cryptography, pyspnego, requests |
| Maintenance | abandoned — 1,635 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 314,921/month — #7,692 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: requests_credssp-2.0.0-py2.py3-none-any.whl
Keywords: authentication, auth, microsoft, credssp, winrm
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
pyspnegoHandles SPNEGO, NTLM, Kerberos, and CredSSP…
permissive · top 1,000 on PyPI
requests-negotiate-sspiAdds HTTP Negotiate authentication…
permissive · top 15,000 on PyPI
requests-gssapiAdds GSSAPI/Kerberos authentication support to…
permissive · top 15,000 on PyPI
requests-kerberosAdds Kerberos/GSSAPI authentication support to…
permissive · top 5,000 on PyPI
requests-ntlmAdds NTLM authentication support to the…
permissive · top 5,000 on PyPI
smbprotocolSMBv2 and SMBv3 client library for Python that…
permissive · top 5,000 on PyPI
pypsrpExecute commands, scripts, and file operations…
permissive · top 5,000 on PyPI
gssapiPython-GSSAPI wraps the GSSAPI C libraries to…
permissive · top 5,000 on PyPI
httpx-ntlmAdds NTLM authentication support to HTTPX,…
permissive · top 15,000 on PyPI
msldapmsldap is a Python library for querying and…
permissive · top 15,000 on PyPI