|
|
|
 |
摘要 |
Discourse LTI 允许 Discourse 通过 LTI 1.3 标准 与多种学习管理系统集成。 |
 |
安装指南 |
此插件已包含在 Discourse 核心中。无需单独安装该插件。 |
该插件实现了 LTI 1.3 认证标准,该标准被多种学习管理系统支持。在 LTI 标准中,Discourse 充当“工具”角色。配置完成后,用户只需点击学习管理系统上的按钮或链接,即可立即登录 Discourse。
具体的设置步骤会因您的学习管理系统而异。但通常包括以下步骤:
- 在您的学习管理系统中创建一个新的“工具”条目
- LTI 版本:1.3
- 启动 URL:您网站上的任意 URL。用户登录后将被重定向至此
- 认证请求 URL:
https://<your-discourse-site>/auth/lti/initiate
- 重定向 URL:
https://<your-discourse-site>/auth/lti/callback
- 工具公钥 - 留空。Discourse 不会向 LMS 发送任何数据
- 在您的 LMS 中,找到“授权端点”、“工具客户端 ID”、“平台颁发者 ID
23 个赞
您是否有关于将 LTI 集成与 Canvas LMS 集成的具体说明?
1 个赞
我是我们的管理员之一,也是一名软件工程师。我认为我遇到的问题与 cookie 以及 Discourse 和 Canvas 之间的“状态”不匹配有关。
这是我在 Discourse 日志中看到的错误:
(lti) 身份验证失败!state_mismatch: StandardError, State 参数与会话不匹配
我认为该错误是从此处抛出的:discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub
有什么想法或可以帮助我调试的地方吗?在 Canvas 文档的此页面上:Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation
有一个“无 cookie 启动”部分,我认为这与此处相关。但我也不能 100% 确定。任何帮助或见解都将不胜感激。
我在 Canvas 中成功地让 LTI 正常工作了,但有一个注意事项。以下是我的步骤:
-
在 Canvas 中创建一个开发者密钥。您在 JWK 方法和公共 JWK 中填写什么并不重要
-
在 Discourse LTI 设置中,填写您的设置
-
对于公钥,您可以导航到 https://\u003cyour_canvas_url\u003e/api/lti/security/jwks 并复制第二个密钥。然后您可以转到 https://8gwifi.org/jwkconvertfunctions.jsp 并将其粘贴到其中进行转换。然后复制 -----BEGIN/END PUBLIC KEY----- 之间的文本,并将其粘贴到 Discourse LTI 设置中的LTI 平台公钥中。然后保存。
注意事项如下。Canvas 生成的 JWK 会被轮换,似乎是每月一次。一旦第二个密钥发生更改,LTI 将会中断,您需要按照步骤 3 替换为新的密钥。
Discourse LTI 插件必须支持公共 JWK URL 才能保持最新。
2 个赞
我可以将多个 LMS 集成到一个 Discourse 吗?
此插件现已作为 Bundling more popular plugins with Discourse core 的一部分,与 Discourse 核心捆绑在一起。如果您是自托管用户并使用了此插件,则需要在下次升级前将其从 app.yml 中删除。
2 个赞