jupyterhub/oauthenticator

OAuth + JupyterHub Authenticator = OAuthenticator

Python

445

1,842 commits

updated Sep 7, 2026

See the code

README

OAuth + JupyterHub Authenticator = OAuthenticator :heart:

Documentation build status GitHub Workflow Status - Test Latest PyPI version Latest conda-forge version GitHub Discourse Gitter

OAuth is a token based login mechanism that doesn't rely on a username and password mapping. In order to use this login mechanism with JupyerHub the login handlers need to be overridden. OAuthenticator overrides these handlers for the common OAuth2 identity providers allowing them to be plugged in and used with JupyterHub.

The following authentication services are supported through their own authenticator: Auth0, Azure AD, Bitbucket, CILogon, FeiShu, GitHub, GitLab, Globus, Google, MediaWiki, OpenShift.

There is also a GenericAuthenticator that can be configured with any OAuth 2.0 identity provider or can be used to create a new authenticator class when additional customization is needed.

Installation

The installation guide can be found in the docs.

The docs also provide example setups for different OAuth2 identity providers.

Running tests

To run the tests locally, first setup a development environment as described in CONTRIBUTING.md, and then do:

pytest -v ./oauthenticator/tests/

Or you run a specific test file with:

pytest -v ./oauthenticator/tests/<test-file-name>
authenticator
github-oauth
globus
jupyter
jupyterhub
oauth-client

Contributors

(top 30 of 107)

minrk

497 commits

consideRatio

449 commits

GeorgianaElena

235 commits

jupyterhub/oauthenticator

OAuth + JupyterHub Authenticator = OAuthenticator

Python

445

1,842 commits

updated Sep 7, 2026

See the code

README

OAuth + JupyterHub Authenticator = OAuthenticator :heart:

Documentation build status GitHub Workflow Status - Test Latest PyPI version Latest conda-forge version GitHub Discourse Gitter

OAuth is a token based login mechanism that doesn't rely on a username and password mapping. In order to use this login mechanism with JupyerHub the login handlers need to be overridden. OAuthenticator overrides these handlers for the common OAuth2 identity providers allowing them to be plugged in and used with JupyterHub.

The following authentication services are supported through their own authenticator: Auth0, Azure AD, Bitbucket, CILogon, FeiShu, GitHub, GitLab, Globus, Google, MediaWiki, OpenShift.

There is also a GenericAuthenticator that can be configured with any OAuth 2.0 identity provider or can be used to create a new authenticator class when additional customization is needed.

Installation

The installation guide can be found in the docs.

The docs also provide example setups for different OAuth2 identity providers.

Running tests

To run the tests locally, first setup a development environment as described in CONTRIBUTING.md, and then do:

pytest -v ./oauthenticator/tests/

Or you run a specific test file with:

pytest -v ./oauthenticator/tests/<test-file-name>
authenticator
github-oauth
globus
jupyter
jupyterhub
oauth-client

Contributors

(top 30 of 107)

minrk

497 commits

consideRatio

449 commits

GeorgianaElena

235 commits

Languages

Python

100.0%