7

我對Spring OAuth進行了深入研究,發現了一些衝突的信息。有人可以澄清?Spring OAuth中/ oauth/authorize和/ oauth/token如何交互?

具體而言,this tutorial指出/oauth/token端點在向客戶端應用授予刷新令牌之前處理用戶名和密碼。相比之下,Spring OAuth Developer Guide提到了端點/oauth/authorize/oauth/token,但尚未具體說明它們的工作方式。

是否/oauth/authorizeusername/password/nOtherFactors檢查的100%,然後將信號端點/oauth/token發送刷新令牌給客戶,讓客戶端將發送更新憑證到/oauth/token終點?

還是全部由/oauth/token端點處理?

下面的流程圖說明了什麼維維安麪包車ZYL在他的教程指出:

但這第二流程圖似乎更有意義:

哪個流程圖正確?或者是真的有別於其他流程圖?對於不同的授權類型,/oauth/authorize/oauth/token之間的關係是否有所不同?怎麼樣?

回答

5

根據OAuth 2.0規範,授權和令牌端點具有不同的用途。

授權端點是資源所有者(用戶)登錄並授予客戶端授權(例如:在瀏覽器中運行的Web應用程序或在移動設備上運行的應用程序)的權限。這通常用於資源所有者的用戶代理(例如:瀏覽器)重定向到身份服務器(授權服務器)進行身份驗證的情況。資源所有者的用戶代理將直接訪問訪問令牌。

令牌端點是客戶端(例如:服務器端API或移動應用程序)調用來交換訪問令牌的授權碼,客戶端ID和客戶端密鑰的位置。在這種情況下,用戶代理僅提供授權碼,不能直接訪問訪問令牌。客戶端是可信任的一方,可以從授權服務器訪問客戶端ID和客戶端密鑰(這就是爲什麼我提到服務器端API作爲客戶端)。

請閱讀這篇文章有更好的解釋 link

請讓我知道如果您有任何其他問題。

謝謝, Soma。

+0

感謝您和+1提供鏈接的解釋。有時間的時候,讓我進一步研究一下。我很想知道這個OP的答案對於不同的授權類型是不同的。但是,我不指望你寫關於它的論文。 – CodeMed