使用 GitHub 用户名进行身份验证#

警告

此文档尚未更新,并且自上次更新以来,OAuthenticator 的主要版本已发布。因此,请仅将此作为对官方OAuthenticator 文档的补充。

今后,我们的目标是确保我们在 OAuthenticator 项目中拥有良好的文档,并参考该文档,而不是在该项目中维护类似的文档。

GitHub 身份验证器允许用户使用其 GitHub 用户 ID/密码登录您的 JupyterHub。为此,您需要先在 GitHub 上注册一个应用程序,然后向您的tljh配置提供有关此应用程序的信息。

注意

您需要一个 GitHub 帐户才能完成这些步骤。

步骤 1:创建 GitHub 应用程序#

  1. 访问GitHub OAuth 应用程序创建页面

    • 应用程序名称:选择一个描述性的应用程序名称(例如tljh

    • 主页 URL:使用您的 JupyterHub 的 IP 地址或 URL。例如http(s)://<my-tljh-url>`

    • 应用程序描述:使用您喜欢的任何描述。

    • 授权回调 URL:插入以下形式的文本

      http(s)://<my-tljh-ip-address>/hub/oauth_callback
      
    • 完成页面填写后,它应该类似于以下内容

      Create a GitHub OAuth application
  2. 单击“注册应用程序”。您将被带到一个包含已注册应用程序详细信息的页面。

  3. 从应用程序详细信息页面复制客户端 ID客户端密钥。您将在稍后使用它们来配置您的 JupyterHub 身份验证器。

    Your client ID and secret

重要

如果您使用的是来自云提供商的虚拟机,并且停止了 VM,那么当您重新启动 VM 时,提供商可能会为其分配一个新的公共 IP 地址。在这种情况下,您必须使用新的 IP 地址更新您的 GitHub 应用程序信息

配置您的 JupyterHub 以使用 GitHub Oauthenticator#

我们将使用 tljh-config 工具来配置您的 JupyterHub 身份验证。有关 tljh-config 的更多信息,请参阅 使用 tljh-config 配置 TLJH

  1. 以管理员帐户登录您的 JupyterHub。

  2. 打开一个终端窗口。

    New terminal button.
  3. 使用以下命令配置 GitHub OAuthenticator 以使用您的客户端 ID、客户端密钥和回调 URL

    sudo tljh-config set auth.GitHubOAuthenticator.client_id '<my-tljh-client-id>'
    
    sudo tljh-config set auth.GitHubOAuthenticator.client_secret '<my-tljh-client-secret>'
    
    sudo tljh-config set auth.GitHubOAuthenticator.oauth_callback_url 'http(s)://<my-tljh-ip-address>/hub/oauth_callback'
    
  4. 告诉您的 JupyterHub 使用 GitHub OAuthenticator 进行身份验证

    sudo tljh-config set auth.type oauthenticator.github.GitHubOAuthenticator
    
  5. 重新启动您的 JupyterHub,以便新用户看到这些更改

    sudo tljh-config reload
    

确认新的身份验证器是否有效#

  1. 在浏览器中打开一个隐身窗口(在确认新的身份验证方法有效之前不要注销!)

  2. 转到您的 JupyterHub URL。

  3. 您应该看到如下所示的 GitHub 登录按钮

    The GitHub authenticator login button.
  4. 使用您的 GitHub 凭据登录后,您应该被重定向到此 JupyterHub 中使用的 Jupyter 界面。

  5. 如果这不起作用,您可以按照 让用户在首次登录时选择密码 中的步骤,恢复到默认的 JupyterHub 身份验证器。