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 thesaml2idp
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 standardimportlib
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b22023d2b3cccf2d825f2ea1d226f9ec960588c4595d110c0878f8a2e6baa5e5 |
|
MD5 | 5deb29ed8fb5a1b21e8865a8118ef64e |
|
BLAKE2b-256 | dc2a851c761ee0bd5d933ec0e9ca6aa7ab2ae63de685bc54e589c33fa28853e2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f1555bf2cf6769b5ed48b61b9c54c56cc3fd1b6b43fa369672b60ceb643a670 |
|
MD5 | 09c2b542dcb456b27962be0f6ec96147 |
|
BLAKE2b-256 | 33b067db243ce4be8dd501476df41ab259af96121aa1cdd00ad26b8c5b1dc046 |