2017-04-14 61 views
0

我想在我的.NET MVC應用程序中調用Workday REST API,並且遇到了oAuth 2.0方面的問題。雖然在我的情況下,我特別談論Workday,但我認爲我不瞭解的可以應用於任何支持oAuth 2.0的API。我正在嘗試使用Authorization Code Grant類型。在.NET MVC中使用oAuth 2.0消耗Workday REST API

我是OAuth 2流的理解如下:

1)我發送一個GET請求到authorize端點

2)用戶必須登錄使用他們的憑據

3)此時,響應從API發送,授權代碼授權位於響應

4)現在我可以發出POST請求來交換訪問令牌的授權碼

5)我響應與發送回一個訪問令牌

6)現在,我可以自由地使用該訪問令牌才能GET請求

概念我明白這只是罰款,但在技術上,我得到絆倒從步驟1移動到步驟2:

我假設我從我的服務器(因爲CORS策略不會允許它來自我的前端)在步驟1中的GET請求。在這種情況下,我注意到我從api得到的響應是html和登錄頁面。 什麼是一個典型的方法中,然後,用於使該HTML到前端,具有用戶登錄,然後移動到步驟3.

此外,有一個稱爲Redirect URL在API客戶端配置字段,我假設API將以授權代碼授權發送響應,我也假設應該是我的控制器上的一個操作,但是如何在我的頁面上獲取並使用該響應?

我希望這一切都有道理。

我似乎無法繞過我的頭。

回答

0

兩個授權支持工作日REST API流是:

  • 隱式許可
  • 授權代碼准予

並且每個授權流程可以使用任一類型的接入令牌的:

  • 無記號令牌
  • MAC令牌

您將使用您在註冊客戶端(使用WD上的註冊API客戶端任務)時指定的授權流和令牌類型。

初始授權請求,當前用戶將與租戶登錄頁面呈現,如果尚未登錄,並且將與同意的頁面呈現,問到批准或拒絕訪問到Workday資源,如果首次使用客戶端。 從此之後,您的API客戶端將有權訪問Workday資源,因爲該批准將獲得批准。您不應該重新批准該贈款。

基本上這將是一個一次性的練習來創建您的授權流程,並從那時起,您可以在您的請求標題中使用您的令牌。

強烈建議您通過OAuth的完整文檔WD阿比這裏https://community.workday.com/rest/oauth

至於重定向URI閱讀,你可以在這裏閱讀更多的它是什麼,爲什麼有必要https://tools.ietf.org/html/rfc6749#section-3.1

+0

謝謝你的答案,雖然我的問題是真正問如何從步驟1轉移到步驟2 - 將WD返回的HTML傳遞到我的前端以實際創建登錄頁面 – blubberbo