pysamlsp
pysamlsp is a Python library for implementing a Service Provider within a SAML2.0 SSO environment.
This package is under active development but is currently incomplete. Please don’t try to use it.
Requirements
Python packages
python-setuptools
python 2.7
lxml
and for tests:
nose
expecter
dingus
Non-Python packages
xmlsec1
openssl (though xmlsec1 may be built with GnuTLS, Libgcrypt, or NSS)
libxml2
libxslt
Installation
At this point in development, I have not uploaded to Pypi. Once I have, installation will be as easy as:
pip install pysqlsp
In the meantime you can clone this repository and run:
python setup.py install
Usage
Initialize the class with a configuration dictionary:
sp_config = dict( ... )
The configuration dictionary may have the following entries:
‘assertion_consumer_service_url’: The URL of the SSO provider.
‘issuer’: A unique identifier for the service provider; probably should match the entityID attribute of the SP metadata.
‘private_key’: A path for the private key PEM file, required for signing AuthnRequests.
‘sign_authnrequests’: True / False flag to indicate whether AuthnRequests should be signed.
‘certificate’: A path for the certificate file against which a SAMLResponse signature can be verified.
Create a redirect URL with the SAMLRequest query parameter:
sp = Pysamlsp(sp_config) redirect_url = sp.redirect_for_idp()
The identity provider will post to the address specified in the service providers metadata.xml. The posted field “SAMLResponse” will contain a (base64encoded, gzip’d) XML response:
saml_response = query['SAMLResponse'] if sp.idp_response_is_valid(saml_response): ...
Signed AuthnRequests
If you are signing your AuthnRequests, you’ll need an RSA private key. Here is a procedure for creating the keys using openssl.
Create a private key, good for 10 years:
openssl req -x509 -days 3650 -newkey rsa:1024 -keyout saml_key_pw.pem -out saml.crt
Remove the passphrase from your new key. This library does not currently support keys with passphrases:
openssl rsa -in saml_key_pw.pem -out saml_key.pem
Create a public key from the private key. You’ll need this for metadata:
openssl rsa -in saml_key.pem -pubout > saml.pub
Metadata
Release files for pysamlsp 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pysamlsp-0.1.4.tar.gz | 7.2 kB | Without provenance | Details |
Release files / pysamlsp-0.1.4.tar.gz
| Download URL | pysamlsp-0.1.4.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee6515ed184bc8c2a138eb5fd674b89082924ddc63bc6ef22f8f134aebf3046d
|
|
BLAKE2b-256 checksum How to use checksums |
8f9e70c20a22aec3caa3d88d26d64559f37ccbfcf55a4cf9544a25118f86c915
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pysamlsp 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.