2012-03-30 60 views
1

我希望有人能夠啓發我認證適用於新的D2L REST API的方式。在閱讀和使用「GetStarted」示例代碼時,看起來呼叫基於「用戶身份級別」和「用戶接受度」。Desire2的Authenticaton方法學習REST API vs SOAP

對我們來說,這是有點問題。

我們有幾個自定義工具,學生完成一項活動(D2L之外)並給予評分。這些工具的設置使得以這種方式提供的等級與我們的D2L實例中給定課程的成績簿列相關聯。目前使用SOAP,我們只使用特權Web服務帳戶,以便學生完成任務時,等級會自動導出到給定課程中的關聯成績簿列。

我對REST文檔的理解是,它不再可能使用特權Web服務帳戶,因爲它每次都必須登錄並接受該工具的使用。完成任務的學生不會獲得這些信息(我們也不希望他們),並且學生的訪問級別不允許他升級成績簿列,因此我們無法使用他的「用戶身份」 。

我能想到的唯一選擇是將所有其他成績存儲在哪裏。然後,在適當的時候,課程導師將登錄並使用他們的「用戶身份級別」和「用戶驗收」批量更新成績簿?

這是正確的嗎?

對我們來說,這非常麻煩,因爲我們依靠自己的工具的身份驗證方法和特權Web服務帳戶相當多。

回答

1

不需要額外的手動登錄,並且在此方案中有兩種備選方案。兩者都利用了Valence認證系統使用密鑰和簽名的事實。通過使用簽名而不是發送令牌,甚至明文apis也不會受到會話劫持的影響,因此密鑰可以安全地保持長時間有效。這段時間通常設置爲30天,但是,當您描述的應用程序正在使用時,最好不要超時。您可以聯繫有關調整服務器超時的支持。 (如果密碼被重置或者被明確吊銷,密鑰仍然被重置)。

憑藉長壽命按鍵下面的情況是可能的,而應用程序直接接收或存儲用戶密碼(密鑰存儲仍然需要安全地完成):

導師帳戶上下文:如果應用程序的工作流程已經需要教師激活或配置該過程時,該教師的用戶ID和用戶密鑰可在初始會話期間保留,並稍後用於提交成績。這不需要任何特殊帳戶或提升專利,但只適用於工作流程已經涉及教師環境的情況。

實用程序帳戶上下文:如果應用程序不涉及教師,則可以創建一個有權更新成績的實用程序帳戶。這通常是D2LWS已經在使用的方法,但是需要額外的一步。在這種情況下,實用工具帳戶的密鑰會建立在帶外(例如入門示例(http://docs.valence.desire2learn.com/samples/gettingStarted.html)將顯示密鑰)。或者,可以創建一個安裝或配置類型的過程,自動記錄實用程序帳戶中的密鑰。記錄這些密鑰後,不需要額外的交互式會話。