JupyterHub的授权登录

JupyterHub的授权登录

关于JupyterHub的安装和配置可以查看此处。现在我们来看一下JupyterHub的授权方式。
本人在本人中介绍两种授权方式:OAuth2和Github的授权方式,其他方式大致一样,需要的可以看官网介绍。

安装授权包

1
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple oauthenticator

Github授权

  1. 创建Github OAuth账户信息,点击Github Oauth,创建信息,如下图所示:

  2. 创建完后,我们进行jupyterhub_config文件的配置

    vi ./jupyterhub_config.py

    1
    2
    3
    4
    5
    6
    from oauthenticator.github import GitHubOAuthenticator
    c.JupyterHub.authenticator_class = GitHubOAuthenticator
    c.GitHubOAuthenticator.oauth_callback_url = 'http[s]://[your-host]/hub/oauth_callback
    c.GitHubOAuthenticator.client_id = 'xxxxxxxx' #
    c.GitHubOAuthenticator.client_secret = 'xxxxxxxx' #
    c.GitHubOAuthenticator.scope = ['user:email'] #此处设置你的用户名和邮箱

    此处要填写的信息,可以查看此处:

  3. 配置完,点击登录地址,可以看到此处登录信息:

OAuth2授权

  1. 创建OAuth2账户信息,获取相应的oauth_callback_urlclient_idclient_secret等信息。

  2. 配置jupyterhub_config文件

    vi ./jupyterhub_config.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from oauthenticator.generic import GenericOAuthenticator
    c.JupyterHub.authenticator_class = GenericOAuthenticator

    c.GenericOAuthenticator.oauth_callback_url = 'http://YOUR-JUPYTERHUB.com/hub/oauth_callback'
    c.GenericOAuthenticator.client_id = 'CLIENT-ID'
    c.GenericOAuthenticator.client_secret = 'CLIENT-SECRET-KEY'
    c.GenericOAuthenticator.login_service = 'OAuth2'
    c.GenericOAuthenticator.userdata_url = 'http://YOUR-MOODLE-DOMAIN.com/local/oauth/user_info'
    c.GenericOAuthenticator.token_url = 'http://YOUR-MOODLE-DOMAIN.com/local/oauth/token'
    c.GenericOAuthenticator.userdata_method = 'POST'
    c.GenericOAuthenticator.extra_params = {
    'scope': 'user_info',
    'client_id': 'MOODLE-CLIENT-ID',
    'client_secret': 'MOODLE-CLIENT-SECRET-KEY'}

    在环境变量里面设置OAUTH2_AUTHORIZE_URL:

    1
    export http://localhost:8800/auth/oauth/authorize
  3. 配置完,点击登录地址,可以看到此处登录信息:

登录后的的界面如下所示: