Implementation of mod_auth_pubtkt as Django middleware
Project description
# django-auth-pubtkt
Author: Alexander Vyushkov
Implementation of mod_auth_pubtkt: a pragmatic Web Single Sign-On (SSO) solution as Django middleware.
This version was tested on Python == 2.7, Django == 1.11
It is incompatible with previous versions (use django-auth-pubtkt==1.1.2 for Django 1.5)
Please refer to https://neon1.net/mod_auth_pubtkt/index.html for additional details.
# Installation from GitHub
```bash
pip install git+git://github.com/Baguage/django-auth-pubtkt@master#egg=django-auth-pubtkt
```
# Installation:
django-auth-pubtkt uses M2Crypto library. Installation instructions for
different platforms are below.
When M2Crypto is installed, django-auth-pubtkt can be installed using pip
pip install django-auth-pubtkt
or using setuptools
./setup.py install
# Windows
Use binary package available on http://chandlerproject.org/Projects/MeTooCrypto#Downloads
# RedHat 7 + Python 3.5
I got "Failed building wheel for m2crypto" when used "pip install m2crypto" command.
The library was installed successfully, and all tests passed, somehow.
# CentOS 6/RedHat 6/Fedora
Fedora Core (and RedHat, CentOS etc.) have made changes to OpenSSL
configuration compared to many other Linux distributions. If you can not
build M2Crypto normally, try the fedora_setup.sh script included with
M2Crypto sources.
pip install --download=/tmp M2Crypto==0.21.1
cd /tmp
tar -zxf /tmp/M2Crypto-0.21.1.tar.gz
cd M2Crypto-0.21.1
./fedora_setup.sh install
python setup.py test
Note that setup.py test is required in some cases to fix "ImportError: No module named __m2crypto" error.
lease refer to http://stackoverflow.com/questions/4773659/cant-install-a-python-package for additional details
CentOS 7/RedHat 7 should be fine
# Configuration
Add 'django_auth_pubtkt.middleware.DjangoAuthPubtkt' to MIDDLEWARE (Django 1.11+)
* Change LOGIN_URL to "/sso/"
* Set TKT_AUTH_LOGIN_URL to the address of SSO login page
* Add piece of code below to urls.py
```python
from django.conf.urls import url
from django_auth_pubtkt.views import redirect_to_sso
urlpatterns = [
# ...
url('^sso/', redirect_to_sso),
# ...
]
```
OR
Change LOGIN_URL to the address of SSO login page.
Configure your SSO to use 'next' as redirect field name.
OR
use @method_decorator(login_required(redirect_field_name="back"))
# Configuration variables (settings.py)
```
TKT_AUTH_PUBLIC_KEY
Default: None
Filename of DSA public key in .pem format. It is used to verify ticket signature.
TKT_AUTH_COOKIE_NAME
Default: "auth_pubtkt"
Name of the authentication cookie to use.
TKT_AUTH_USE_GROUPS
Default: False
Treat tokens as group names. Create groups if they don't exist yet.
TKT_AUTH_LOGIN_URL
Default: None
URL that users without a valid ticket will be redirected to
TKT_AUTH_BACK_ARG_NAME
Default: "back"
Name of the GET argument with the originally requested URL (when redirecting to the login page)
TKT_AUTH_ANONYMOUS_USER
Default: True
Add AnonymousUser object if no auth_pubtkt cookie is found. If set, django_auth_pubtkt can be used as a replacement to AuthenticationMiddleware.
If disabled, AuthenticationMiddleware and django_auth_pubtkt can be used together.
```
Author: Alexander Vyushkov
Implementation of mod_auth_pubtkt: a pragmatic Web Single Sign-On (SSO) solution as Django middleware.
This version was tested on Python == 2.7, Django == 1.11
It is incompatible with previous versions (use django-auth-pubtkt==1.1.2 for Django 1.5)
Please refer to https://neon1.net/mod_auth_pubtkt/index.html for additional details.
# Installation from GitHub
```bash
pip install git+git://github.com/Baguage/django-auth-pubtkt@master#egg=django-auth-pubtkt
```
# Installation:
django-auth-pubtkt uses M2Crypto library. Installation instructions for
different platforms are below.
When M2Crypto is installed, django-auth-pubtkt can be installed using pip
pip install django-auth-pubtkt
or using setuptools
./setup.py install
# Windows
Use binary package available on http://chandlerproject.org/Projects/MeTooCrypto#Downloads
# RedHat 7 + Python 3.5
I got "Failed building wheel for m2crypto" when used "pip install m2crypto" command.
The library was installed successfully, and all tests passed, somehow.
# CentOS 6/RedHat 6/Fedora
Fedora Core (and RedHat, CentOS etc.) have made changes to OpenSSL
configuration compared to many other Linux distributions. If you can not
build M2Crypto normally, try the fedora_setup.sh script included with
M2Crypto sources.
pip install --download=/tmp M2Crypto==0.21.1
cd /tmp
tar -zxf /tmp/M2Crypto-0.21.1.tar.gz
cd M2Crypto-0.21.1
./fedora_setup.sh install
python setup.py test
Note that setup.py test is required in some cases to fix "ImportError: No module named __m2crypto" error.
lease refer to http://stackoverflow.com/questions/4773659/cant-install-a-python-package for additional details
CentOS 7/RedHat 7 should be fine
# Configuration
Add 'django_auth_pubtkt.middleware.DjangoAuthPubtkt' to MIDDLEWARE (Django 1.11+)
* Change LOGIN_URL to "/sso/"
* Set TKT_AUTH_LOGIN_URL to the address of SSO login page
* Add piece of code below to urls.py
```python
from django.conf.urls import url
from django_auth_pubtkt.views import redirect_to_sso
urlpatterns = [
# ...
url('^sso/', redirect_to_sso),
# ...
]
```
OR
Change LOGIN_URL to the address of SSO login page.
Configure your SSO to use 'next' as redirect field name.
OR
use @method_decorator(login_required(redirect_field_name="back"))
# Configuration variables (settings.py)
```
TKT_AUTH_PUBLIC_KEY
Default: None
Filename of DSA public key in .pem format. It is used to verify ticket signature.
TKT_AUTH_COOKIE_NAME
Default: "auth_pubtkt"
Name of the authentication cookie to use.
TKT_AUTH_USE_GROUPS
Default: False
Treat tokens as group names. Create groups if they don't exist yet.
TKT_AUTH_LOGIN_URL
Default: None
URL that users without a valid ticket will be redirected to
TKT_AUTH_BACK_ARG_NAME
Default: "back"
Name of the GET argument with the originally requested URL (when redirecting to the login page)
TKT_AUTH_ANONYMOUS_USER
Default: True
Add AnonymousUser object if no auth_pubtkt cookie is found. If set, django_auth_pubtkt can be used as a replacement to AuthenticationMiddleware.
If disabled, AuthenticationMiddleware and django_auth_pubtkt can be used together.
```
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 Distributions
File details
Details for the file django-auth-pubtkt-2.0.1.tar.gz
.
File metadata
- Download URL: django-auth-pubtkt-2.0.1.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dcab9af2f097bd8c37b6ad0c2ff044378fc860a33835c7e40f1c065eed6a614 |
|
MD5 | de4f9cd1710358c8a533d551318f7c4b |
|
BLAKE2b-256 | 1887b1ef97a4c8d1d79003cccab2e796ffd51d65fbe02700b72b5f5b5679f000 |
File details
Details for the file django_auth_pubtkt-2.0.1-py2.7.egg
.
File metadata
- Download URL: django_auth_pubtkt-2.0.1-py2.7.egg
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65dcfbc109b1ec95735d31f92598d7c82abe8afbec7de6228167af3fc8cd874b |
|
MD5 | a8462a85204f8847c62fb1f6c54d377c |
|
BLAKE2b-256 | edecc81fa3dfe074bb8df778c09dc0eedfbeddc382276a0eec3bd2a227c1a8a1 |
File details
Details for the file django-auth-pubtkt-2.0.1.win-amd64.exe
.
File metadata
- Download URL: django-auth-pubtkt-2.0.1.win-amd64.exe
- Upload date:
- Size: 239.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61690269b306e26bda27ae8f101963b18eb84af073fc3e63f6e4fea0a54b71f6 |
|
MD5 | 06630839c5ebb1b1e1836721c0b2aef6 |
|
BLAKE2b-256 | 2a16e8ed8cfb4214934b2c03dbb4d57ba2f1d6e7ed19138253395a96436bd6bd |