关于xAPI,似乎有些事情无法实现。我将尝试保持这个非常简单。(甚至可能是愚蠢的)
我理解为真实......
任何Tin Can实施的内容都可以使用启动器启动。 启动器提供端点和身份验证信息 端点不一定是LRS。它可以是一个脚本,然后传递给最终端点,即LRS。 LRS(在本例中为私有SCORM Cloud(沙箱))无法在没有基本身份验证的情况下接收语句。
我需要知道的......
LRS是否会生成OAuth令牌? 如何将Captivate,Storyline,lectora文件中的声明传递给TinCan_PHP以处理与LRS的安全连接? 当基本身份验证信息很容易向最终用户广播时,为什么我会使用TinCan.JS呢?这可能会对LRS造成伤害?
我完全偏离轨道吗?
非常感谢...
答案 0 :(得分:2)
根据您的理解,对未来的用户进行一些澄清......
启动器可能提供端点和身份验证,这是一种情况,可能基于0.9规范中出现的launch guidelines。还有其他方法来处理握手,例如cmi5如何这样做(除了证书只能被请求一次并被故意拒绝某些特权之外,这不一定更安全。宣布失效)。
我会考虑你的"脚本" a'不符合要求的' LRS表示它接收语句(以xAPI请求的形式),但不提供完整的LRS一致性。 SCORM Cloud的LRS无法在没有某些身份验证的情况下接收语句,但您是正确的基本首选,因为OAuth对于生产没有多大意义。
对于问题......
是的,LRS生成OAuth令牌,但对于最常见的方法,内容必须与LRS 建立关系基于OAuth的帐户必须在LRS上(或LRS与LMS紧密耦合的系统)不与野外的某些OAuth提供商(意味着您无法在Twitter,Facebook或Google等上使用帐户)这是人们常常感到困惑的部分。)
他们不会,这些产品都支持通过启动指南(基本身份验证)与LRS直接通信,他们正在与之通信的任何系统必须至少具有足够的LRS功能来支持它们除语句API外还包括State API。
TinCanJS本身并不是一个仅限浏览器的解决方案,有人在服务器端运行它,因此语言实际上是一个单独的问题。也可以在公共启动范例之外使用TinCanJS,并且在这种情况下,用户可能具有所讨论的LRS(或与LRS耦合的系统)的个人凭证并且他们自己输入。 bookmarklet是一个很好的示例应用程序。
包含所有凭据集的底线是为了确保您的应用程序通过http s 与LRS进行对话,在这种情况下,所使用的凭据不在打开状态,然后检查LRS提供程序,以查看是否可以使用短暂且权限有限的凭据。几乎没有什么伤害"这可以通过正确实现的LRS来完成,而不会使报表无效或覆盖(删除)存储的文档,这两者在使用适当的权限方案和有限的凭证时都会受到限制。
答案 1 :(得分:1)
要回答你的问题,是的,你完全偏离轨道! : - )
如果您要将基于javascript的电子学习课程的语句发送到某处,那么连接本身就不安全。在不安全的连接之后在链中添加另一个(安全或其他)链接不会增加您的安全性。您也可以将xAPI语句直接发送到LRS。
您也可以使用基本HTTP身份验证。首先,这就是所有创作工具所支持的,所以你必须这样做。其次,使用OAuth而不是Basic Auth进行客户端连接就像使用密钥锁而不是组合锁,然后将密钥保留在mat下。密钥锁(OAuth)在理论上可能比组合锁(Basic Auth)更安全,但如果您将密钥留在门垫下(嵌入在客户端代码中),则实际上不安全。
有关xAPI身份验证安全性的可以的三个选项,请参阅此SO question answer。
仅仅为了完整性:是的,在OAuth的情况下,LRS生成令牌。有关最新详细信息,请参阅xAPI spec。