edx LTI嵌入jupyter

LTI Launch JupyterHub Authenticator
1.pip install jupyterhub-ltiauthenticator
2.运行openssl rand -hex 32并保存输出。这将是您的LTI客户端密钥
运行openssl rand -hex 32并保存输出。这将是您的LTI客户端秘密
3.选择edX的名称来调用JupyterHub服务器。然后,将您在步骤3中生成的两个随机字符串粘贴在一起,以按以下格式创建LTI Passport字符串:
your-hub-name:client-key:client-secret
your-hub-name 可以是任何东西,但你会在整个edX中使用它来引用你的集线器,所以让它成为有意义和独特的东西。
这是一个例子:
stat100-jupyterhub:fca69fa2deda7d45dfdfa85f288d59b4b5f3d22bfca2ba891187fe5c551705a5:8ce3caca82f467f0896b92d548dfbddaca86edfcaaba8c9d6777dfae4d2e1db9
4.配置JupyterHub以接受来自EdX的LTI启动请求。您可以通过向JupyterHub提供在步骤2中生成的客户端密钥和密钥来执行此操作(您不需要步骤3中的集线器名称)。
注意:虽然您可以将这些密钥直接粘贴到配置文件中,但它们是安全凭据,不应提交给任何版本控制存储库。因此,最佳做法是安全地存放它们。在这里,我们将它们存储在环境变量中。(我是将这些密钥直接粘贴到配置文件中)
c.JupyterHub.authenticator_class = 'ltiauthenticator.LTIAuthenticator' c.LTIAuthenticator.consumers = {os.environ['LTI_CLIENT_KEY']:os.environ['LTI_CLIENT_SECRET']}
可以将集线器配置为接受来自多个工具使用者的启动请求。您可以通过将所有客户端密钥和机密添加到c.LTIAuthenticator.consumers上面的traitlet 来实现
登录studio界面后在设置中的高级设置中找到高级模块列表(Advanced Module List)中添加lti_consumer(或者) 如下图所示:

在这里插入图片描述

5. LTI 账户 输入2步骤生成的密钥和秘密 如下图所示:

在这里插入图片描述

6.在您希望有一个指向集线器(hub)的链接的单元中, 添加一个LTI组件。
您应该在适当的组件设置中输入以下信息:
LTI ID:您your-hub-name在步骤3中输入的值。
LTI URL:应设置为your-hub-url/hub/lti/launch。因此,如果您的集线器可以访问http://datahub.berkeley.edu,LTI URL应该是 http://datahub.berkeley.edu/hub/lti/launch
LTI启动目标:可设置为新窗口。
自定义参数(这里没用到):唯一当前支持的自定义参数 next,可以包含用户在身份验证后应重定向到的相对URL。例如,如果您正在使用 nbgitpuller并希望用户在登录后看到 此文件,则可以将“ 自定义参数”字段设置为以下字符串:
['next = /hub/user-redirect/git-pull?repo=https://github.com/binder-examples/requirements&subPath=index.ipynb'];
注意:如果你base_url的jupyterhub配置中有一个集合,那么它应该以你的下一个参数作为前缀。
7.中间遇到的问题
I.用户登录jupyterhub进去后无法start server 
报错:"Refused to display 'https://site.com' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'"."
解决方法:
1.c.Spawner.args = ['--NotebookApp.tornado_settings = {"headers":{"Content-Security-Policy": "frame-ancestors http://39.96.39.149:8080 http://39.96.39.149:18011"}}'] 
2.c.JupyterHub.tornado_settings = {"headers":{"Content-Security-Policy":"frame-ancestors http://39.96.39.149:8080 http://39.96.39.149:18011"}}
II.非root用户spawn失败 报错:500 GET Error Spawning Failing running JupyterHub on Ubuntu non root
/ etc / sudoers文件,使用visudo将以下内容添加到底部:
Cmnd_Alias JUPYTER_CMD = /opt/miniconda3/envs/mdc1_7/bin/sudospawner
%jupyterhub ALL=(tester) /usr/bin/sudo
tester ALL=(%jupyterhub) NOPASSWD:JUPYTER_CMD

配置文件jupyterhub_config.py添加如下:
c.Spawner.cmd = '/home/tester/anaconda3/bin/sudospawner'





参考文章:1. https://discourse.jupyter.org/t/lti-authenticator-setup/1563
2. https://github.com/jupyterhub/ltiauthenticator
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值