> As far as I know, Jupyter(hub) does not have such a feature since it
> completely relies on the OS for access checks.
That's not correct. JupyterHub supports arbitrary authenticators:
https://jupyterhub.readthedocs.io/en/latest/authenticators.html
In particular, there is an LDAP authenticator:
https://github.com/jupyterhub/ldapauthenticator
If I understands Jori's loud thoughts, he wants to mix an LDAP
authenticator with the default PAM authenticator. It shouldn't be too
hard to write a class that tries them in some order, although I'm not
sure that's the best solution.
> A notebook is just an ordinary file owned by some Unix user.
That is pretty much configurable too :
https://jupyterhub.readthedocs.io/en/latest/spawners.html
I think the hardest thing to achieve with jupyterhub is notebook
sharing, at least in a fashion similar to the classic notebook. There
is a concept of *admin account* in JupyterHub (disjoint from Unix
admins). Admins can run the Jupyter notebook as any other user, so
they can see and run all the students' notebooks.
> How others teach Sage? Here I make a Sage account of the form
> "Coursecode-Year", and the teacher asks students to share worksheet
> with that account.
For the first year this time, I set up a jupyterhub with a PAM
authenticator. I create a unix user account for each student (and
teacher). This is fine with us, because we want them to also have ssh
access (and it's only ~10 students).
They can use Python, Sage, and Julia via the Jupyter notebook, and can
also run any of those and much more from a shell. Added bonuses:
- There is an in-browser shell in JupyterHub. Very practical for those
students who don't know how to run ssh on their home computers.
- JupyterHub file view lets the students upload and download any kind
of file from the server, not only noteboks. So this makes a very
simple "cloud host" for them to have all their work available from
anywhere (e.g., the C files they write in the system programming
class).
When I want to share a notebook with the students, I share a static
.ipynb file via gist, and visualize it via nbviewer. e.g.:
http://nbviewer.jupyter.org/gist/defeo/4adb727f7608dfd2c75eb7699d670fb7
When I want to see the student's work, I ask them to send me the
.ipynb by mail, or directly access their notebooks using my admin
account.
Works like a charm.
I'll be looking at custom authentication soon.
Luca