<!--
Copyright © Idiap Research Institute <contact@idiap.ch>
SPDX-License-Identifier: BSD-3-Clause
-->
# OAuthAuthenticator + LDAP Autenticator ++... = MultiAuthenticator :heart:
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
```
## 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 oauthenticator.github import GitHubOAuthenticator
from oauthenticator.google import GoogleOAuthenticator
from oauthenticator.gitlab import GitLabOAuthenticator
from jupyterhub.auth import PAMAuthenticator
c.MultiAuthenticator.authenticators = [
(GitHubOAuthenticator, '/github', {
'client_id': 'XXXX',
'client_secret': 'YYYY',
'oauth_callback_url': 'https://jupyterhub.example.com/hub/github/oauth_callback'
}),
(GoogleOAuthenticator, '/google', {
'client_id': 'xxxx',
'client_secret': 'yyyy',
'oauth_callback_url': 'https://jupyterhub.example.com/hub/google/oauth_callback'
}),
(GitLabOAuthenticator, '/gitlab', {
"client_id": "ZZZZ",
"client_secret": "AAAAA",
"oauth_callback_url": "https://jupyterhub.example.com/hub/gitlab/oauth_callback",
"gitlab_url": "https://gitlab.example.com"
}),
(PAMAuthenticator, "/pam", {"service_name": "PAM"}),
]
c.JupyterHub.authenticator_class = 'multiauthenticator.multiauthenticator.MultiAuthenticator'
```
Raw data
{
"_id": null,
"home_page": "",
"name": "jupyterhub-multiauthenticator",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "JupyterHub,Authenticator",
"author": "",
"author_email": "Samuel Gaist <samuel.gaist@idiap.ch>",
"download_url": "https://files.pythonhosted.org/packages/a9/f0/a5ba4455f2d11837541cb6d66da06b39e481f9ded870cd3764bd593058fa/jupyterhub-multiauthenticator-0.2.0.tar.gz",
"platform": null,
"description": "<!--\nCopyright \u00a9 Idiap Research Institute <contact@idiap.ch>\n\nSPDX-License-Identifier: BSD-3-Clause\n-->\n\n# OAuthAuthenticator + LDAP Autenticator ++... = MultiAuthenticator :heart:\n\nThe MultiAuthenticator is multiplexer authenticator class that allows to use\nmore than one authentication option with JupyterHub.\n\n## Installation\n\n```\n$ pip install git+https://github.com/idiap/multiauthenticator\n```\n\n## Configuration\n\nThe MultiAuthenticator class only has one configuration point: authenticators.\n\nThis property shall contain a list of tuple with the following content:\n\n- Authenticator class (i.e. GitLabAuthenticator, LDAPAuthenticator)\n- The URL scope (i.e. /gitlab, /ldap)\n- A dictionary with the authenticator's configuration\n\nAs an example:\n\n```python\nfrom oauthenticator.github import GitHubOAuthenticator\nfrom oauthenticator.google import GoogleOAuthenticator\nfrom oauthenticator.gitlab import GitLabOAuthenticator\nfrom jupyterhub.auth import PAMAuthenticator\n\nc.MultiAuthenticator.authenticators = [\n (GitHubOAuthenticator, '/github', {\n 'client_id': 'XXXX',\n 'client_secret': 'YYYY',\n 'oauth_callback_url': 'https://jupyterhub.example.com/hub/github/oauth_callback'\n }),\n (GoogleOAuthenticator, '/google', {\n 'client_id': 'xxxx',\n 'client_secret': 'yyyy',\n 'oauth_callback_url': 'https://jupyterhub.example.com/hub/google/oauth_callback'\n }),\n (GitLabOAuthenticator, '/gitlab', {\n \"client_id\": \"ZZZZ\",\n \"client_secret\": \"AAAAA\",\n \"oauth_callback_url\": \"https://jupyterhub.example.com/hub/gitlab/oauth_callback\",\n \"gitlab_url\": \"https://gitlab.example.com\"\n }),\n (PAMAuthenticator, \"/pam\", {\"service_name\": \"PAM\"}),\n]\n\nc.JupyterHub.authenticator_class = 'multiauthenticator.multiauthenticator.MultiAuthenticator'\n```\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Authenticator multiplexer for JupyterHub",
"version": "0.2.0",
"project_urls": null,
"split_keywords": [
"jupyterhub",
"authenticator"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3194a2cbcbc8bfe737880d5af56577ee1e4b95d62864b9cf06a448c540def30b",
"md5": "74fe48b785a85f3106866532b0887306",
"sha256": "da8bfacb4ba0da848d5bc6fd935ff779c81a10b22ecb42a5fc710ea0cf7f7536"
},
"downloads": -1,
"filename": "jupyterhub_multiauthenticator-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "74fe48b785a85f3106866532b0887306",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 4480,
"upload_time": "2023-11-20T14:42:57",
"upload_time_iso_8601": "2023-11-20T14:42:57.406747Z",
"url": "https://files.pythonhosted.org/packages/31/94/a2cbcbc8bfe737880d5af56577ee1e4b95d62864b9cf06a448c540def30b/jupyterhub_multiauthenticator-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a9f0a5ba4455f2d11837541cb6d66da06b39e481f9ded870cd3764bd593058fa",
"md5": "b96b7223fcf99ab017294ef688af37b8",
"sha256": "c1fe98d3a79a9e6456222252f82072605edc1f0d42d0bf98713749f8ef543603"
},
"downloads": -1,
"filename": "jupyterhub-multiauthenticator-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "b96b7223fcf99ab017294ef688af37b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5017,
"upload_time": "2023-11-20T14:42:58",
"upload_time_iso_8601": "2023-11-20T14:42:58.765380Z",
"url": "https://files.pythonhosted.org/packages/a9/f0/a5ba4455f2d11837541cb6d66da06b39e481f9ded870cd3764bd593058fa/jupyterhub-multiauthenticator-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-20 14:42:58",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "jupyterhub-multiauthenticator"
}