https://github.com/idiap/multiauthenticator
JupyterHub authenticator muxer that allows to use more than one authentication backend to access an instance.
https://github.com/idiap/multiauthenticator
Last synced: 10 months ago
JSON representation
JupyterHub authenticator muxer that allows to use more than one authentication backend to access an instance.
- Host: GitHub
- URL: https://github.com/idiap/multiauthenticator
- Owner: idiap
- Created: 2023-10-02T09:09:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-01T09:07:23.000Z (12 months ago)
- Last Synced: 2025-07-01T10:24:40.520Z (12 months ago)
- Language: Python
- Size: 122 KB
- Stars: 6
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSES/BSD-3-Clause.txt
Awesome Lists containing this project
README
# 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:
```python
from jupyterhub.auth import PAMAuthenticator
class MyPamAutenticator(PAMAuthenticator):
login_service = "PAM"
c.MultiAuthenticator.authenticators = [
{
"authenticator_class": 'github',
"url_prefix": '/github',
"config": {
'client_id': 'XXXX',
'client_secret': 'YYYY',
'oauth_callback_url': 'https://jupyterhub.example.com/hub/github/oauth_callback'
}
},
{
"authenticator_class": 'google',
"url_prefix": '/google',
"config": {
'client_id': 'xxxx',
'client_secret': 'yyyy',
'oauth_callback_url': 'https://jupyterhub.example.com/hub/google/oauth_callback'
}
},
{
"authenticator_class": 'gitlab',
"url_prefix": '/gitlab',
"config": {
'client_id': 'ZZZZ',
'client_secret': 'AAAA',
'oauth_callback_url': 'https://jupyterhub.example.com/hub/gitlab/oauth_callback'
"gitlab_url": "https://gitlab.example.com"
}
},
{
"authenticator_class": MyPamAuthenticator,
"url_prefix": "/pam",
},
]
c.JupyterHub.authenticator_class = 'multiauthenticator'
```