No project description provided
Project description
Jupyterhub SAML Auth
Authenticate your Jupyterhub users using SAML. This authenticator uses OneLogin's python3-saml package as a backend API for handling SAML authentication.
Installation
pip install jupyterhub-saml-auth
Configuration
See the jupyterhub_config.py example configuration below for how to integrate this package with jupyterhub
def extract_username(acs_handler, attributes):
email = attributes['email'][0]
username = email.split('@')[0]
return username
# The configuration path is for OneLogin's python3-saml package. This directory is where
# settings.json & advanced_settings.json go. See https://github.com/onelogin/python3-saml
# for more info about this
c.SAMLAuthenticator.saml_settings_path = '/app/etc'
# The cookies that your IdP uses for maintaining a login session. These will be cleared
# once the user hits 'logout'
c.SAMLAuthenticator.session_cookie_names = {'PHPSESSIDIDP', 'SimpleSAMLAuthTokenIdp'}
# Function that extracts the username from the SAML attributes.
c.SAMLAuthenticator.extract_username = extract_username
# register the SAML authenticator with jupyterhub
c.JupyterHub.authenticator_class = 'jupyterhub_saml_auth.SAMLAuthenticator'
Environment variables
SAML_HTTPS_OVERRIDE: setting this will override the automatic detection ofhttporhttpsto/hub/acsroute and will set it to onlyhttps.
Development
Prerequisite software
- docker
- docker compose
- python3
- Firefox or Chrome
Create a development environment
# at project root
python3 -m venv .
source bin/activate
pip install -r requirements.txt
# OPTIONAL, install package if developing source code
pip install -e .
pytest test/unit # run the unit tests
Test the authentication process
The acceptance test starts the application as a Docker container. Start the containers with docker compose up -d prior to running the acceptance test with the command pytest test/test_acceptance.py. See conftest.py for a list of command line switches/flags to run the acceptance tests.
Kill your docker environment
To kill the docker containers, run the command docker compose down at the project root.
References
https://github.com/onelogin/python3-saml
https://goteleport.com/blog/how-saml-authentication-works/
https://medium.com/@BoweiHan/elijd-single-sign-on-saml-and-single-logout-624efd5a224
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyterhub_saml_auth-0.3.2.tar.gz.
File metadata
- Download URL: jupyterhub_saml_auth-0.3.2.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a84749b8a65428933d71b9869898db862dfe89f1e483e8161a1f41437e8dbbe
|
|
| MD5 |
15103043d8840bc6e13146d6ba1f4d50
|
|
| BLAKE2b-256 |
ae984a76a8c14aae205cf8e42b857a91919145fad889af1e14a6b5ba037848fa
|
File details
Details for the file jupyterhub_saml_auth-0.3.2-py3-none-any.whl.
File metadata
- Download URL: jupyterhub_saml_auth-0.3.2-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9eac607ab0fa2dde07a2f1d7052bf9d70cf50db221a3107f204c2aeb619bd79
|
|
| MD5 |
07a4fae689fe03498881f297eceba332
|
|
| BLAKE2b-256 |
8e4484fa70e88af3f3f588812bf90125d427cf7e43b1f71da9220887f65dbd57
|