2014-03-05 1 views
0

LTI를 통해 내 D2L 사이트에 연결된 외부 도구가 있습니다. 학생이 일을 마치면 도구를 사용하여 학년을 LMS로 되돌려 보내주십시오. XML 페이로드로 성적을 보낼 때 D2L로부터 "Not authenticated"메시지가 나타납니다. 학년 게시는 어떻게 인증합니까?LTI 성적을 어떻게 인증합니까?

답변

0

인증은 LTI 1.1 implementation guide에 설명 된대로 수행해야합니다. 특히 (LTI 1.1 impl 가이드에서) 섹션 4: LTI Security Model과 섹션 6.1: LTI Basic Outcome Service에주의하십시오. 요구 사항의

빠른 요약, 저는 믿습니다 (섹션 4.3: Security for application/xml Messages에 따라) :

  • 은 신체의 해시 값을 계산

    • 형태까지 POX를 (일반 '팔자 XML) 몸

    • 매개 변수를이 값으로 설정하십시오.

    • O 인증 서명 규칙 및 oauth_body_hash해야이 다른 요청과 함께 서명 기본 문자열에 포함 할 수 있습니다 것은

    • 는 서명 요청의 OAuth는 PARMS와 함께 oauth_body_has 시간 PARM를 전송 PARMS

    D2L 매우은 구현자가 OAuth 서명/검증 알고리즘을 독자적으로 구현하려는 것이 아니라 서명 생성 및 검증을 위해 신뢰할 수있는 OAuth 표준 라이브러리를 사용하는 것이 좋습니다.

    이 경우 Oauth 파문은 헤더 요청시 전송되며 본문 데이터는 전송되지 않습니다. IMS 사양 자체에는 신체가 어떻게 보이는지에 대한 예가 포함되어 있습니다 (sec 4.3) :

    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>