这个问题有几个不同的问题。
用户的活动网络会话。目前,D2L 的 Valence 平台的用户身份验证不采用这种方式。当 LMS 可以确认它与用户有活动会话时,它只会在身份验证过程中提供用户 ID/密钥对:
API 调用客户端直接向 LMS 发出请求以检索用户的用户 ID/密钥对。
一个。如果 LMS 与用户有活动会话,(如有必要,生成并)返回该应用程序/用户对的用户 ID/密钥对。
湾。如果 LMS 没有与用户的活动会话,请通过它配置的登录过程来验证用户:这可能是将调用 Web 请求重定向到 LMS 自己的用户登录页面,或者该重定向可以通过LMS 用于对用户进行身份验证的第三方服务(例如,已配置的 SSO IDP)。
这意味着:如果您使用 API 启动身份验证过程以检索用户 ID/密钥对,则调用 Web 浏览器将(作为该过程的一部分)已经与 LMS 进行了活动 Web 会话。要么用户将被要求使用 LMS 使用的任何身份验证进程登录,要么用户已经这样做并且调用浏览器将知道这一点(因为它具有指示活动会话的 cookie 状态)。
程序化登录。目前,D2L 的 Valence 平台不支持直接参与用户身份验证过程:没有调用通过提供用户 ID/密码或用户与 LMS 之间共享的任何其他秘密来使用 LMS 对用户进行身份验证。Valence 安全模型专门寻求避免让调用 API 的客户端知道用户和 LMS 之间共享的身份验证秘密。
使用 Valence 学习框架 API 的客户端需要:
用户 ID/密钥对到期。请注意,LMS 提供给调用客户端的这些身份验证令牌旨在长期存在。它们应该比浏览器为用户提供的当前 Web 会话持续时间更长。因此,客户端应用程序应将这些视为安全数据,尤其是结合客户端应用程序自己的 ID/Key 对(因为用户 ID/Key 对绑定了应用程序自己的 ID/Key 对)。虽然我们希望客户端应用程序缓存这些身份验证令牌,但我们也希望它们被缓存为敏感信息。
当以下事件之一发生时,为应用程序生成的用户 ID/密钥对将过期: