pangeo-data / pangeo-cloud-federation

Deployment automation for Pangeo JupyterHubs on AWS, Google, and Azure
https://pangeo.io/cloud.html
59 stars 32 forks source link

How to extract extra user metadata from Globus jupyterhub authenticator? #602

Open rabernat opened 4 years ago

rabernat commented 4 years ago

On ocean.pangeo.io, we currently use the Globus authenticator to log users in with ORCID. I would now like to map ORCIDs to email addresses; however, many of our users have no public email address associated with their ORCID.

The hub should have access to private user metadata, via the global oauth service. In principle, when users log in, there should be lots of other metadata we can see associated with their account.

Does anyone have any idea how to extract this private data--specifically, the email address associated with the account?

This is a question maybe for @yuvipanda or @consideRatio.

consideRatio commented 4 years ago

we currently use the Globus authenticator to log users in with ORCID

I don't fully understand where information is provided or available. But, if the JupyterHub Globus authenticator receives it at some point, you can create a new class that overrides functions to do something additional, like map some info to some other info.

https://github.com/jupyterhub/oauthenticator/blob/master/oauthenticator/globus.py

I have overridden authenticators to store some extra information and use it later, and let it be used to decide if I want to provide options to spawn GPU servers etc for example. This is possible without needing to rebuild the JupyterHub docker image thanks to the Helm chart's hub.extraConfig where you can write python code defining a new authenticator which is the normal globusauthenticator but with some minor modification at some point.