在Desire2Learn Valence API中,是否存在用於服務器應用程序的非交互式身份驗證流程? Valence文檔似乎假定任何驗證應用程序都將是一個交互式客戶端過程。Desire2Learn Valence API非交互式身份驗證
回答
這在一定程度上連接到位於這裏的問題是:
Authenticaton Method for Desire2Learn REST API vs SOAP
價的API確實需要已發生互動權威性的步驟,但是,這可以在「安裝時間」來完成對非交互式應用。該過程的結果是可以「長時間使用」的鍵。
對於某些版本和服務包級別,這是30天,但可以設置爲「不過期」。 「未過期」是預期的默認值,但如果您的實例仍設置爲30天,則可以提出支持請求以更改它。
我們實際上是通過非交互式登錄到站點來實現的。 如果您嘗試此路線,請確保抓取d2lSecureSessionVal,d2lSessionVal和登錄Cookie並將它們添加到您的後續請求中。
請求1: 1> POST HTTP {S}://elearning.test.masked.edu/d2l/lp/auth/login/login.d2l 1>內容類型:應用程序/ x-WWW-窗體-urlencoded 的userName = {您的用戶名} &密碼= {密碼}
響應1:
1 < Set-Cookie: LoginKey=; expires=Sat, 01-Jan-2000 05:00:00 GMT; path=/
1 < Set-Cookie: d2lSecureSessionVal=masked; path=/; HttpOnly <-- grab this
1 < Set-Cookie: Login=true; path=/ <-- grab this
1 < Set-Cookie: d2lSessionVal=masked; path=/ <-- grab this
此外,關於該要求,目標其實並不重要太多 請求2: 2> GET http {s}://elearning.test.masked.edu:443/d2l/auth/api/token? x_a = ZNsxGYZuSmasked & x_b = 7jkhCKfEmaked & x_target = https%3A%2F%2Fwww.maked.edu 2> Cookie:d2lSecureSessionVal = masked; d2lSessionVal =掩蔽的;登錄= TRUE;
它會嘗試將您重定向到目標站點。忽略重定向,x_a就是你真正想要的。
響應2:從這個響應
2 < 302
2 < X-AspNet-Version: 2.0.50727
2 < Date: Tue, 09 Oct 2012 14:03:45 GMT
2 < Content-Length: 248
2 < X-XSS-Protection: 0
2 < Location: http{s}://www.masked.edu?x_a=DxHmasked&x_b=aQVkg-7jkhCKfEmaked&x_c=IfLBcKYFf8masked
2 < Set-Cookie: TS50cdf6=masked; Path=/
2 < Content-Type: text/html; charset=utf-8
2 < X-Powered-By: ASP.NET
2 < Cache-Control: private
2 <
抓住x_a並使用它作爲x_b在您的要求
第一次是不好的毛病,因爲那裏是顯示一個複選框以允許請求頁面來自特定的主機。我們只抓取了身份驗證令牌請求並將其彈出到瀏覽器中。在檢查框始終允許後,事情工作得很好。
還要注意auth令牌偶爾會過期。確保你編碼並在發生時重新進行驗證。
我使用了PHP示例代碼中的入門示例代碼,該代碼在登錄後向您顯示瀏覽器中的用戶密鑰,以獲取我創建的「服務帳戶」的密鑰。
然後我把它們放到一個PHP類中,我可以重新使用它來建立連接。所以,在我的代碼,我可以叫
$authcontext = d2l::connect();
它確實就像一個魅力。
- 1. 在非交互式應用程序中的API身份驗證
- 2. SSH鍵盤交互式身份驗證
- 3. Desire2Learn Valence API註銷
- 4. Desire2Learn Valence API | JSON不加載
- 5. Desire2Learn Valence API用戶ID
- 6. Desire2Learn Valence API版本參數
- 7. Desire2Learn庫部分的Valence API
- 8. Desire2Learn Valence API開始時間UTC格式?
- 9. Firebase身份驗證數據庫交互
- 10. 沒有用戶交互的自動Soundcloud PHP Api身份驗證
- 11. RPC相互身份驗證
- 12. SSLStream相互身份驗證
- 13. Desire2Learn通過Shibboleth學習Valence認證
- 14. REST Api身份驗證 - 交換私鑰
- 15. 使用ADAL Javascript以非交互方式向Azure AD進行身份驗證
- 16. 如何使用非交互式用戶對CRM Online進行身份驗證?
- 17. 客戶端身份驗證或相互身份驗證
- 18. EnterpriseDT - 如何禁用ssh鍵盤交互式身份驗證?
- 19. Web Api客戶端身份驗證(非用戶身份驗證)最佳實踐
- 20. Desire2Learn Valence API創建和更新部分?
- 21. Desire2Learn Valence API - 文件名中的空格
- 22. Asp.net web API 2身份驗證身份
- 23. Office 365 API編程式身份驗證
- 24. Django社交身份驗證GitHub身份驗證
- 25. 安全API身份驗證
- 26. Webtrends API身份驗證PHP
- 27. Laravel rest api身份驗證
- 28. PHP REST API - 身份驗證
- 29. Loopback API Explorer身份驗證
- 30. Imgur api身份驗證PHP
它適合一次性使用。但是,應用程序使用Cookie和URL會有點危險。 D2L可以更改Cookie策略,因爲它不是受控界面的一部分,如果這一方更改了登錄順序或技術(Shib等),您最終會看到不同的頁面 – Cadmium
同意這可能有點冒險。我們一直在這樣做,因爲化合價包含在D2L中___中,沒有一個問題___。如果您選擇對令牌進行硬編碼,則當令牌過期時(這似乎在每次升級後都會發生),您會感到驚訝。 –