Skip to main content

SAML 2.0 IdP for Django

Project description

dj-saml-idp

This is a fork mobify/dj-saml-idp that is distributed indipendantly as django-saml-idp.

The original project is at https://github.com/guitarmanvt/django-saml2-idp

dj-saml-idp implements the Identity Provider (IDP) side of the SAML 2.0 protocol and makes user authentication available to external applications.

This package only supports Django 1.9+. At this time, it's only been tested with Django > 1.9

Development And Testing

The package uses a Docker container to support both development and tests. The container creates virtual environments for different Python versions as below:

  • Python 2.7 in /venv27
  • Python 3.7 in /venv37

These environments may be used for development and interactive testing.

To build and run the container, to get a bash prompt:

docker build -t dj-saml-idp:latest .
docker-compose run --service-ports test

To support use of IDEs (such as PyCharm) for development, the container can also run SSHD; run the command docker/run_sshd.sh at a bash prompt in the container. In the commands above, the --service-ports option is only needed if you intend to run sshd in the container.

The test runner is pytest. For release tests, we use tox to run the tests against different versions of Python and Django. The tests can be run inside the Docker container using tox:

$ . /venv37/bin/activate
$ tox

Release

First of all, create a new version of the package. We use bumpversion_ to handle updating all version strings, committing the changes and creating a new git tag automatically. To bump the package version use the following command with whichever part of the semantic version you'd like to update::

$ bumpversion (major|minor|patch)

for instance for a minor update, use (which should be the most common case)::

$ bumpversion minor

You need the PyPI credentials for the mobify account to be able to release a new version and the build script is expecting it defined as an environment variable:

$ export PYPI_PASSWORD=supersecretpassword

Releasing a new version to PyPI is very simple. The first thing you need to do is make sure that all the test are passing and that the version in saml2idp/__init__.py is the one that you'd like to create on PyPI.

With that done, all you need to do is run the following commands::

$ rm -rf build/ dist/ dj_saml_idp.egg-info
$ make release

This will cleanup the build/ and dist/ directories, build a source package and a Python wheel. Both will then be uploaded to PyPI.

License

Distributed under the MIT License.

.. _novapost/django-saml2-idp: https://github.com/novapost/django-saml2-idp .. _MIT License: https://github.com/mobify/dj-saml-idp/blob/master/LICENSE .. _wheel: http://wheel.readthedocs.org/en/latest/ .. _bumpversion: https://github.com/peritus/bumpversion

Release History

1.0.0 (2019-11-06)

  • Refactor development and test environment
  • Support Python 3

0.22.0 (2016-05-26)

  • Allow a redirect_to parameter to be passed to the logout view to redirect the user to after succesful logout instead of showing the logout page.
  • Introduce logging through structlog and provide more informative logging out put to make SAML flows easier to debug. Log messages are all logged under the saml2idp logger now.
  • Adding a new-style processor that carries a name attribute which allows custom templates for each processor during the SSO process. Custom templates are optional and will default to the same templates as before. The change is backwards compatible and handles old-style processors as previously.

0.21.2 (2016-04-18)

  • Switched from django.utils.importlib to Python's standard importlib to work with Django 1.9.
  • Update the test setup to run tests against Django 1.9 in addition to all other versions of Django.

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

django-saml-idp-1.3.2.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

django_saml_idp-1.3.2-py2.py3-none-any.whl (25.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-saml-idp-1.3.2.tar.gz.

File metadata

  • Download URL: django-saml-idp-1.3.2.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.5.8

File hashes

Hashes for django-saml-idp-1.3.2.tar.gz
Algorithm Hash digest
SHA256 b22023d2b3cccf2d825f2ea1d226f9ec960588c4595d110c0878f8a2e6baa5e5
MD5 5deb29ed8fb5a1b21e8865a8118ef64e
BLAKE2b-256 dc2a851c761ee0bd5d933ec0e9ca6aa7ab2ae63de685bc54e589c33fa28853e2

See more details on using hashes here.

File details

Details for the file django_saml_idp-1.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: django_saml_idp-1.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.5.8

File hashes

Hashes for django_saml_idp-1.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0f1555bf2cf6769b5ed48b61b9c54c56cc3fd1b6b43fa369672b60ceb643a670
MD5 09c2b542dcb456b27962be0f6ec96147
BLAKE2b-256 33b067db243ce4be8dd501476df41ab259af96121aa1cdd00ad26b8c5b1dc046

See more details on using hashes here.

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