我正致力于建造一个基于锡罐的LMS。我们根据本指南从LMS启动活动,并使用适当的查询参数将活动传回LRS xapi端点。
https://github.com/RusticiSoftware/launch/blob/master/lms_lrs.md
我们正在努力解决的问题是传入语句的身份验证。目前我们正在作弊,只是使用会话cookie,因为活动与LMS在同一个域中,但是我们希望转移到外部活动。
据我所知,锡罐为此目的更喜欢OAuth 2.0,但我不确定最佳令牌交换流应该是什么。我最好的猜测是
然而,考虑到我们来自LMS / LRS,前几步似乎是多余的。是否可能/建议:
其中任何一项都会减少所需的步骤,但可能会带来安全风险。
思想?
答案 0 :(得分:4)
启动文档未指定使用OAuth时要传递的任何身份验证参数,并且仅在启动的活动提供程序向LMS注册的情况下仅讨论OAuth(此时LMS将假定活动将通过OAuth进行身份验证,而不是发送基本身份验证信息。)
https://github.com/RusticiSoftware/launch/blob/master/lms_lrs.md#oauth
因此,可以在启动时使用OAuth,但启动不提供任何帮助。它只是为您提供了要使用的端点,然后您必须查看XAPI规范本身,以查看OAUth端点相对于主LRS端点的位置。
https://github.com/adlnet/xAPI-Spec/blob/1.0.1/xAPI.md#oauth-endpoints
您还需要选择并遵循工作流程:
https://github.com/adlnet/xAPI-Spec/blob/1.0.1/xAPI.md#64-security
最后,如果从安全角度来看,跳过第7步是可以接受的,为什么不只是使用LMS在启动链接上传递给你的基本身份验证令牌?