首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证LTI等级的返回?

如何验证LTI等级的返回?
EN

Stack Overflow用户
提问于 2014-03-05 15:44:30
回答 1查看 731关注 0票数 1

我有一个外部工具,我连接到我的D2L网站通过LTI。当一个学生完成他的工作时,我想要工具把成绩送回LMS。在发送带有XML有效负载的级别时,我从D2L收到一条“未经身份验证”的消息。如何验证我的职系公告?

EN

回答 1

Stack Overflow用户

发布于 2014-03-05 15:51:30

所需的身份验证取决于如何按照LTI 1.1实施指南中所述的方式进行验证。特别是(来自LTI 1.1推动指南),请注意4: LTI安全模型节和6.1: LTI基本成果服务节。

我相信(根据4.3:应用程序/xml消息的安全性部分),对需求的快速总结:

  • 形成POX (平原'ol )体
  • 计算正文散列值
  • oauth_body_hash parm设置为此值
  • 按照Oauth签名规则对请求进行签名,并注意oauth_body_hash必须包含在基字符串中才能与其他请求parms一起签名
  • 在签名的请求中传输oauth_body_hash parm和OAuth parm

D2L强烈建议实现者为其特定平台使用可靠的OAuth标准库来进行签名生成和验证,而不是尝试单独实现OAuth签名/验证算法。

注意,在这种情况下,Oauth parms是在请求头中传输的,而不是在正文数据中传输的。IMS本身包含了一个主体应该是什么样子的示例(第4.3节):

代码语言:javascript
复制
POST http://www.imsglobal.org/developers/BLTI/service_handle.php HTTP/1.0
Host: 127.0.0.1:80
Content-Length: 757
Authorization: OAuth realm="",oauth_version="1.0",
  oauth_nonce="29f90c047a44b2ece73d00a09364d49b",
  oauth_timestamp="1313350943",oauth_consumer_key="lmsng.school.edu",
  oauth_body_hash="v%2BxFnmDSHV%2Fj29qhxLwkFILrtPo%3D",
  oauth_signature_method="HMAC-SHA1",
  oauth_signature="8auRpRdPY2KRXUrOyz3HKCs92y8%3D"
Content-type: application/xml

<?xml version = "1.0" encoding = "UTF-8"?>
<imsx_POXEnvelopeRequest xmlns = "http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">  
  <imsx_POXHeader>    
    <imsx_POXRequestHeaderInfo>     
      <imsx_version>V1.0</imsx_version>
      <imsx_messageIdentifier>999999123</imsx_messageIdentifier>    
    </imsx_POXRequestHeaderInfo>  
  </imsx_POXHeader>  
  <imsx_POXBody>    
    <readResultRequest>     
      <resultRecord>
        <sourcedGUID>
          <sourcedId>3124567</sourcedId>
        </sourcedGUID>
      </resultRecord>   
    </readResultRequest>  
  </imsx_POXBody> 
</imsx_POXEnvelopeRequest>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22202362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档