使用 GitHub 用户名进行身份验证#
警告
此文档近期未更新,并且自上次更新以来,OAuthenticator 已发布一个主要版本。因此,请仅将其作为官方 OAuthenticator 文档的补充。
未来,目标是确保我们在 OAuthenticator 项目中拥有良好的文档,并引用该文档,而不是在此项目中也维护类似的文档。
GitHub 身份验证器允许用户使用其 GitHub 用户 ID/密码登录您的 JupyterHub。为此,您首先需要向 GitHub 注册一个应用程序,然后向您的 tljh
配置提供有关此应用程序的信息。
注意
您需要一个 GitHub 帐户才能完成这些步骤。
步骤 1:创建 GitHub 应用程序#
-
应用程序名称:选择一个描述性的应用程序名称(例如
tljh
)主页 URL:使用您的 JupyterHub 的 IP 地址或 URL。例如
http(s)://<my-tljh-url>`
。应用程序描述:使用您喜欢的任何描述。
授权回调 URL:插入具有以下形式的文本
http(s)://<my-tljh-ip-address>/hub/oauth_callback
当您完成页面填写后,它应该看起来像这样
单击“注册应用程序”。您将被带到一个显示已注册应用程序详细信息的页面。
从应用程序详细信息页面复制客户端 ID和客户端密钥。您稍后将使用这些来配置您的 JupyterHub 身份验证器。
重要提示
如果您使用的是云提供商的虚拟机并停止了虚拟机,那么当您重新启动虚拟机时,提供商可能会为其分配一个新的公共 IP 地址。在这种情况下,您必须使用新的 IP 地址更新您的 GitHub 应用程序信息。
配置您的 JupyterHub 以使用 GitHub Oauthenticator#
我们将使用 tljh-config
工具来配置您的 JupyterHub 的身份验证。有关 tljh-config
的更多信息,请参阅 使用 tljh-config 配置 TLJH。
以管理员帐户登录您的 JupyterHub。
打开终端窗口。
使用以下命令配置 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'
告诉您的 JupyterHub 使用 GitHub OAuthenticator 进行身份验证
sudo tljh-config set auth.type github
如果尚未设置,请告诉 JupyterHub 允许哪些用户
sudo tljh-config add-item users.allowed good-user_1
重启您的 JupyterHub,以便新用户看到这些更改
sudo tljh-config reload
确认新的身份验证器有效#
在浏览器中打开一个无痕窗口(在确认新的身份验证方法有效之前不要注销!)
转到您的 JupyterHub URL。
您应该会看到一个 GitHub 登录按钮,如下所示
使用您的 GitHub 凭据登录后,您应该会被重定向到此 JupyterHub 中使用的 Jupyter 界面。
如果这不起作用,您可以按照 首次登录时让用户选择密码 中的步骤恢复到默认的 JupyterHub 身份验证器。