researchcloud-items

Installation scripts for SURF ResearchCloud catalog components

View the Project on GitHub UtrechtUniversity/researchcloud-items

Role jupyterhub

back to index

Summary

Install JupyterHub on the workspace, by default with SRAM auth enabled.

Requires

Description

This role installs the JupyterHub webapplication.

The role will set the jupyterhub_venv_path fact to the path of the virtual environment containing JupyterHub, for other roles or playbooks to use.

Authentication and authorization

This role utilizes the nginx_reverse_proxy to activate support for Single Sing-on using SRAM (via the jhub_remote_user_authenticator plugin). If SRAM auth is enabled, extra Python code is added to the JupyterHub config file to enable use of jhub_remote_user_authenticator.

SRAM authentication is default, but can also be disabled. Other options include no authentication, or http basic auth.

JupyterHub’s sudospawner is used to run notebooks as specific users: when you login with user foo (usin e.g. SRAM), the hub (which runs as a dedicated service user itself) will use special sudo permissions to spawn a notebook server running as user foo on the workspace. Only users in the group specified by jupyterhub_allowed_users_group variable are allowed to spawn in this way.

Note: at the moment JupyterHub listens on a TCP port (8000). This means users with shell access can easily bypass authentication. Do not provide shell access to untrusted users. In the future we may remedy this by using Docker containers or unix sockets.

Variables

See also

History

2025 Written by Dawa Ometto (Utrecht University)

back to index