Skip to content

JupyterHub authenticator muxer that allows to use more than one authentication backend to access an instance.

Notifications You must be signed in to change notification settings

consideRatio/multiauthenticator

This branch is 1 commit ahead of, 5 commits behind idiap/multiauthenticator:main.

Folders and files

NameName
Last commit message
Last commit date
Jul 19, 2024
Oct 2, 2023
Oct 18, 2024
Oct 18, 2024
Oct 2, 2023
Oct 2, 2023
Oct 2, 2023
Oct 2, 2023
Oct 18, 2024
Oct 5, 2023
Oct 2, 2023
Oct 18, 2024
Oct 18, 2024
Oct 2, 2023

Repository files navigation

JupyterHub OAuthenticator + LDAPAuthenticator ++... = MultiAuthenticator ❤️

The MultiAuthenticator is multiplexer authenticator class that allows to use more than one authentication option with JupyterHub.

Installation

$ pip install git+https://github.com/idiap/multiauthenticator
$ pip install jupyter-multiauthenticator

Configuration

The MultiAuthenticator class only has one configuration point: authenticators.

This property shall contain a list of tuple with the following content:

  • Authenticator class (i.e. GitLabAuthenticator, LDAPAuthenticator)
  • The URL scope (i.e. /gitlab, /ldap)
  • A dictionary with the authenticator's configuration

As an example:

from jupyterhub.auth import PAMAuthenticator

class MyPamAutenticator(PAMAuthenticator):
    login_service = "PAM"

c.MultiAuthenticator.authenticators = [
    ('github', '/github', {
        'client_id': 'XXXX',
        'client_secret': 'YYYY',
        'oauth_callback_url': 'https://jupyterhub.example.com/hub/github/oauth_callback'
    }),
    ('google', '/google', {
        'client_id': 'xxxx',
        'client_secret': 'yyyy',
        'oauth_callback_url': 'https://jupyterhub.example.com/hub/google/oauth_callback'
    }),
    ('gitlab', '/gitlab', {
        "client_id": "ZZZZ",
        "client_secret": "AAAAA",
        "oauth_callback_url": "https://jupyterhub.example.com/hub/gitlab/oauth_callback",
        "gitlab_url": "https://gitlab.example.com"
    }),
    (MyPamAutenticator, "/pam", {}),
]

c.JupyterHub.authenticator_class = 'multiauthenticator'

About

JupyterHub authenticator muxer that allows to use more than one authentication backend to access an instance.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%