Skip to main content

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

Download files

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

Source Distribution

pysamlsp-0.1.4.tar.gz (7.2 kB view details)

Uploaded Source

File details

Details for the file pysamlsp-0.1.4.tar.gz.

File metadata

  • Download URL: pysamlsp-0.1.4.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysamlsp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ee6515ed184bc8c2a138eb5fd674b89082924ddc63bc6ef22f8f134aebf3046d
MD5 f0f15f0cc3ed47fedb6413cf5db86c24
BLAKE2b-256 8f9e70c20a22aec3caa3d88d26d64559f37ccbfcf55a4cf9544a25118f86c915

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page