从 LMS 启动 xAPI 包时如何避免暴露 LRS 凭据
How to avoid exposing LRS credentials when launching xAPI package from LMS
我正在构建一个 xAPI 兼容的 LMS,使用 https://learninglocker.net/ 作为我们的 LRS。管理员可以上传包含 xAPI 包的 zip 文件。 LMS 将解压缩它,找到启动文件,并允许用户启动那个 URL,将我们的 LRS 的凭据作为查询参数传递。然后,该软件包可以直接向我们的 LRS 报告它想要的任何内容,而我们的 LMS 无法对其进行任何控制。
此外,由于 LRS 凭据在 url 中一目了然,精通技术的用户可以使用它们将他们想要的任何记录写入 LRS。
避免这种情况的标准方法是什么?目前我能想到的唯一解决方案是不让包访问我们的 LRS,而是通过我们的 LMS 将所有请求代理到我们的 LRS,并让包访问该代理端点。
有没有更好的方法?
代理方法应该有效,并且对 LRS 的负担最小。
在我们的实施中,我们使用自动生成的短期(可配置)令牌,该令牌对 LRS 的权限有限。这自然需要 LRS 实现允许此类事情的权限模型,我不知道 Learning Locker 是否会(或将会)。在此设置中,用户仍然可以直接访问 LRS,但由于访问限制,风险很低。
我的另一个建议是研究 cmi5,而不是实施 Tin Can 启动指南(您可能已经找到了)。它对 LRS 权限模型没有帮助,但更多的是在标准路径上,并且专门用于 LMS 模型中基于 xAPI 的内容。
我正在构建一个 xAPI 兼容的 LMS,使用 https://learninglocker.net/ 作为我们的 LRS。管理员可以上传包含 xAPI 包的 zip 文件。 LMS 将解压缩它,找到启动文件,并允许用户启动那个 URL,将我们的 LRS 的凭据作为查询参数传递。然后,该软件包可以直接向我们的 LRS 报告它想要的任何内容,而我们的 LMS 无法对其进行任何控制。
此外,由于 LRS 凭据在 url 中一目了然,精通技术的用户可以使用它们将他们想要的任何记录写入 LRS。
避免这种情况的标准方法是什么?目前我能想到的唯一解决方案是不让包访问我们的 LRS,而是通过我们的 LMS 将所有请求代理到我们的 LRS,并让包访问该代理端点。
有没有更好的方法?
代理方法应该有效,并且对 LRS 的负担最小。
在我们的实施中,我们使用自动生成的短期(可配置)令牌,该令牌对 LRS 的权限有限。这自然需要 LRS 实现允许此类事情的权限模型,我不知道 Learning Locker 是否会(或将会)。在此设置中,用户仍然可以直接访问 LRS,但由于访问限制,风险很低。
我的另一个建议是研究 cmi5,而不是实施 Tin Can 启动指南(您可能已经找到了)。它对 LRS 权限模型没有帮助,但更多的是在标准路径上,并且专门用于 LMS 模型中基于 xAPI 的内容。