Skip to main content

Implements RFC 7804 Salted Challenge Response (SCRAM) HTTP Authentication Mechanism for the Requests library.

Project description

requests-scram

Implements RFC 7804 Salted Challenge Response (SCRAM) HTTP Authentication Mechanism for the Requests library.

See flask-scram for a server-side implementation.

Took much inspiration from requests-ntlm2 and requests-gssapi.

Getting Started

Initialize HTTPSCRAMAuth and pass as the auth parameter to your request or session:

import requests

from requests_scram import HTTPSCRAMAuth

# specify ``mechanisms`` for supported mechanisms (defaults to all non-PLUS)
auth = HTTPSCRAMAuth("user", "pass")

resp = requests.get("http://localhost:5000", auth=auth)
resp.raise_for_status()

print(resp.text)

Todo

  • Handle multiple WWW-Authenticate headers (server would typically advertise multiple SCRAM authentication mechanisms)
  • Do something with Authentication-Info?
  • Implement One Round-Trip Reauthentication

License

Licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests-scram-1.0.1.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

requests_scram-1.0.1-py3-none-any.whl (4.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page