feat(nbviewer): add OAuth2 support for jupyterhub > 3.4 #1065
+278
−36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
nbviewer Integration with JupyterHub via OAuth2
This guide explains how to configure nbviewer as a JupyterHub service using OAuth2 token-based authentication.
Requirements
JupyterHub Configuration
In JupyterHub’s
jupyterhub_config.py
, add the following configuration to integrate nbviewer as a service:Explanation of Key Settings:
nbviewer Configuration
In the deployment of nbviewer, configure the following environment variables:
Explanation of Environment Variables:
OAuth2 Flow
When a user accesses nbviewer, they will be authenticated via the OAuth2 token from JupyterHub. The oauth_callback URL specified in the configuration will be used to handle the token exchange.
Ensure nbviewer correctly handles OAuth2 requests by ensuring the callback URL is properly set and that nbviewer is able to request the necessary scopes from JupyterHub.
Troubleshooting
If you encounter issues with token authentication or authorization, ensure that:
The correct API token is set both in JupyterHub and nbviewer.
The service roles and scopes are correctly configured to allow nbviewer access to JupyterHub's user data.