1

如果您已经使用 APPID 和 APPKEY 以及特定用户进行了身份验证(意味着当提示用户用户名和密码已输入并通过身份验证时)并且系统已发送回 USERID 和 USERKEY。然后,您能否调用 API 以将该用户验证到 D2L,以便用户到达 D2L MY HOME 页面?

除此之外...如果特定用户的 USERID 和 USERKEY 存储在数据库中,您是否可以单独使用该数据通过 API 调用将用户身份验证到 D2L 中,以便用户无需附加即可到达我的主页登录提示?

我知道如果 USERID 和 USERKEY 已过期,这将不起作用。

4

1 回答 1

3

这个问题有几个不同的问题。

用户的活动网络会话。目前,D2L 的 Valence 平台的用户身份验证不采用这种方式。当 LMS 可以确认它与用户有活动会话时,它只会在身份验证过程中提供用户 ID/密钥对:

  1. API 调用客户端直接向 LMS 发出请求以检索用户的用户 ID/密钥对。

  2. 一个。如果 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 的客户端需要:

  • 通过向 LMS 请求 UserID/Key 对来启动身份验证过程(在这种情况下,LMS 将寻求对用户进行身份验证;请参阅上一个答案)

  • 使用已从 LMS 收集的缓存状态中的有效用户 ID/密钥对重建用户上下文(反过来,这将需要真实用户向 LMS 进行身份验证)

用户 ID/密钥对到期。请注意,LMS 提供给调用客户端的这些身份验证令牌旨在长期存在。它们应该比浏览器为用户提供的当前 Web 会话持续时间更长。因此,客户端应用程序应将这些视为安全数据,尤其是结合客户端应用程序自己的 ID/Key 对(因为用户 ID/Key 对绑定了应用程序自己的 ID/Key 对)。虽然我们希望客户端应用程序缓存这些身份验证令牌,但我们也希望它们被缓存为敏感信息。

当以下事件之一发生时,为应用程序生成的用户 ID/密钥对将过期:

  • LMS 生成时与 ID/Key 对关联的到期时间的到来(LMS 管理员可以确保这些令牌的默认到期时间值是“不确定的”)

  • 用户密码更改(由用户或 LMS 管理员重置)

  • LMS 管理员手动撤销用户的客户端应用程序访问权限

于 2013-02-19T14:35:31.903 回答