如果您使用APPID和APPKEY以及特定用户进行了身份验证(意味着在提示时输入并验证了用户的用户名和密码),系统已发送回USERID和USERKEY。您是否可以进行API调用以将该用户验证为D2L,以便用户到达D2L MY HOME页面?
除此之外...... 如果特定用户的USERID和USERKEY存储在数据库中,您是否可以单独使用该数据通过API调用将用户验证到D2L中,以便用户到达MY HOME页面而无需其他登录提示?
据我所知,如果USERID和USERKEY已过期,则无效。
答案 0 :(得分:3)
这个问题有几个不同的问题。
用户的有效网络会话。目前,D2L的Valence平台的用户身份验证不起作用。 LMS只能在确认与用户进行活动会话时才提供用户ID /密钥对作为身份验证过程的一部分:
API调用客户端直接向LMS发出请求,以检索用户的UserID /密钥对。
一个。如果LMS与用户有活动会话(如果需要,则生成)并返回该应用程序/用户对的UserID /密钥对。
湾如果LMS 不与用户建立了活动会话,请完成配置为对用户进行身份验证的登录过程:这可能是将调用Web请求重定向到LMS自己的用户登录页面或者,重定向可以通过LMS用于对用户进行身份验证的第三方服务(例如,配置的SSO IDP)。
这意味着:如果您使用API启动身份验证过程来检索用户ID /密钥对,则调用Web浏览器(作为该过程的一部分)已经与LMS建立了活动的Web会话。要么用户将要求使用LMS使用的任何auth进程登录,或用户已经这样做,并且调用浏览器将知道(因为它具有指示活动的cookie状态)会话)。
程序化登录。目前,D2L的Valence平台不支持直接参与用户身份验证过程:没有通过提供用户ID /密码或用户与用户之间共享的任何其他秘密来通过LMS对用户进行身份验证的调用LMS。 Valence安全模型专门用于避免让API调用客户端知道用户和LMS之间共享的身份验证密码。
使用Valence Learning Framework API的客户需要:
通过从LMS请求用户ID /密钥对来启动身份验证过程(在这种情况下,LMS将寻求授权用户;请参阅上一个答案)
使用已从LMS收集的缓存状态的有效UserID /密钥对重建用户上下文(反过来,这将需要真实用户通过LMS进行身份验证)
UserID /密钥对到期。请注意,LMS提供给调用客户端的这些auth令牌旨在长期。它们应该超过浏览器将为用户提供的当前Web会话。因此,客户端应用程序应将这些作为安全数据特别是与客户端应用程序自己的ID /密钥对一起处理(因为用户ID /密钥对绑定了应用程序自己的ID /密钥对)。虽然我们希望客户端应用程序缓存这些身份验证令牌,但我们也希望将它们缓存为敏感信息。
当其中一个事件发生时,为应用程序生成的用户ID /密钥对将会过期:
当LMS生成它时,与ID /密钥对相关的到期时间到达(LMS管理员可以确保这些令牌的默认到期时间值是“无限期”)
用户的密码更改(由用户或LMS管理员重置)
LMS管理员手动撤消用户的客户端应用访问权限