使用 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 身份验证器。
重要
如果您使用的是来自云提供商的虚拟机,并且停止了 VM,那么当您重新启动 VM 时,提供商可能会为其分配一个新的公共 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 oauthenticator.github.GitHubOAuthenticator
重新启动您的 JupyterHub,以便新用户看到这些更改
sudo tljh-config reload
确认新的身份验证器是否有效#
在浏览器中打开一个隐身窗口(在确认新的身份验证方法有效之前不要注销!)
转到您的 JupyterHub URL。
您应该看到如下所示的 GitHub 登录按钮
使用您的 GitHub 凭据登录后,您应该被重定向到此 JupyterHub 中使用的 Jupyter 界面。
如果这不起作用,您可以按照 让用户在首次登录时选择密码 中的步骤,恢复到默认的 JupyterHub 身份验证器。