0

我正在开发一个 LTI 小部件,然后需要对 API 进行身份验证以获取更多信息。

我正在努力弄清楚如何处理 API 用户身份验证,并重定向回保留 LTI 信息。

返回的请求字符串如下所示:

Array ( [x_a] => ********************** 
        [x_b] => ********************** 
        [x_c] => *********************************** )

问题是我的 PHP LTI 脚本设置仅在满足以下条件时才加载:

if(!isset($_REQUEST['lis_outcome_service_url'])
|| !isset($_REQUEST['lis_result_sourcedid'])
|| !isset($_REQUEST['oauth_consumer_key'])
)

x_a 是用户 ID,x_b 是用户密钥.. x_c 是什么?

任何建议表示赞赏!

4

1 回答 1

0

我的回答是指有关 Valence 开发平台的 IDKey Auth 方案的详细主题

您在此处指的身份验证序列的部分相当于该序列的第二阶段,就在用户成功验证自己之后(当您像这样在 LTI 启动的后面进行链接时,您知道用户驾驶user-agent 已经通过身份验证,因为否则他们将无法执行 LTI 启动)并且服务将长期存在的用户令牌发送回您的服务。

请参阅序列注释中的步骤5 到 7 ,在 IDKey 身份验证文档主题中称为使用第三方 Web 应用程序的部分中:

x_a={ tokenID } – 与长期令牌关联的唯一 ID:Web 应用程序可以提供此 ID,以便服务可以精确定位 Web 应用程序/用户上下文。

x_b={ tokenKey } – 与长期令牌关联的密钥:Web 应用程序可以将其用作生成会话签名的密钥。

x_c={ tokenSig } – 令牌身份签名:服务将用户 ID (tokenID) 和用户密钥 (tokenKey) 连接(并用与号分隔)以用作基本字符串,并使用应用程序密钥作为密钥。

请注意,您需要使用您的 Valence 应用程序 ID/密钥对来验证包含在x_c.

远程插件。请注意,Brightspace 远程插件服务是围绕 LTI/外部学习工具的便利服务包装器。关于远程插件的文档包含一个相当详细的演练/示例,展示了一个简单的 Python Web 服务工具提供程序实现,该实现接收 Brightspace LTI 启动,并且可以转身并使用 Valence API 调用来获取更多信息。您可能会发现仔细查看它很有用。

于 2015-03-23T13:47:23.820 回答