如何解决已通过其他服务进行身份验证时如何优雅地绕过 Jupyter 笔记本密码要求
我实现了一个简单的网站,用户可以在其中通过某些现有服务(例如 Google)登录/注册。登录后,用户可以管理他的 Jupyter 笔记本 - 打开/删除。基本上,用户有一个帐户,他可以在其中访问他的笔记本。网站和 Jupyter notebook 由 Docker 容器化,由 Kubernetes 组织。
现在的问题是通过 Google 绑定用户身份验证以访问 Jupyter notebook,而无需用户提供 Jupyter notebook 令牌/密码。这是一个问题,因为运行 Jupyter notebook 的容器的 URL 是已知的并且任何人都可以访问(因此禁用密码不是一个选项)。
我试图寻找一种方法,使运行在特定 URL 链接上的容器只能通过从其他网站重定向访问(在我的情况下是用户帐户页面),但我还没有找到方法。此外,我正在考虑在为每个用户部署笔记本并选择为笔记本设置密码后,在主屏幕上编写 Jupyter 笔记本令牌,但在我看来,向用户询问 Google 密码并在密码/令牌后直接询问笔记本很烦人。
所以我想知道是否有一种有效的方法可以将通过 Google 的身份验证与访问 Juypter notebook 绑定在一起,并且只需要通过 Google 进行身份验证。
解决方法
我找到了解决问题的有效方法。
我用 python 库的秘密生成了我自己的令牌。我将此令牌作为环境变量传递给带有 Jupyter 笔记本 (JUPYTER_TOKEN) 的容器。所以 Jupyter notebook 使用这个令牌作为它的默认值。现在我可以使用手动生成的令牌将用户从网站重定向到 Jupyter 笔记本。
简单地说:
- 生成令牌
- 使用令牌作为环境变量部署 Jupyter 笔记本容器
- 将用户重定向到 https://{JUPYTER}.com/?token={TOKEN}
其中 JUPYTER 是运行 jupyter notebook 容器的地方,TOKEN 是手动生成的令牌。通过这种方式,无需手动输入密码即可重定向用户。此外,互联网以外的任何人如果不知道此令牌,就无法访问 Jupyter 笔记本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。