Using Voila as a means for sharing notebooks

I have a jupyterhub instance with authentication provided by keycloak.

My intent is to allow authenticated users to share their notebook with each other. So user1 can send some link1 to his notebook nb1.ipynb to user2. user2 can paste the link1 in his browser and see the notebook(need not edit or run it). An unauthenticated user should not be able to see the notebook if he has link1(not a strong requirement if link1 has some kind of hash like content in it’s link and thus, it’s difficult to guess it).

Our requirements are on prem, no outside access, with restricted access to the notebooks by department and preferably no git knowledge or git account creation. The idea is to make sharing seamless.

Will Voila be a good mechanism for such sharing? When I enable voila as a jupyter extension, I can see the link1 when user1 is logged in. But when I test for opening the link1 by user2, I get a window like this:

it comes to the above page and when clicking on Authorize, it says that user2 is forbidden.

How do I whitelist services or enable any users to see each other notebooks if they are logged in. Can Voila be used to share notebooks among users?

you need deploy an identity-aware proxy in front of your application, that would handle authentication ( integrating with your existing Google / Office365 or ActiveDirectory, etc authentication) and then authorize certain users to access your app.

additionally, if your application is running on your local servers, you would need let people access it securely; there are better alternatives to VPN now.

you may check out this tutorial

1 Like