我有一個網站,mywebsite.com,其中用戶可以登錄登錄被重定向未經驗證的進程到SSO提供對ssologin.com處理,驗證憑證和然後使用訪問令牌重定向到mywebsite.com,以便它可以創建本地會話。使用3比例與共享OAuth授權服務器
該網站是一個使用JavaScript調用通過API網關3scale公開的API的單頁網絡應用程序。
我想知道的是我如何獲得3scale來兌現發給網站的OAuth訪問令牌。我猜它應該很簡單,因爲3scale似乎把它委託給一個授權URL,但我不確定這背後的機制以及它是否在做我期望的。
任何人都可以解釋是否 - 以及如何 - 我可以做到這一點?我已閱讀文檔,但我無法理解它,因爲它會掩蓋授予OAuth訪問令牌後會發生的情況,並且它不涉及可能無法創建令牌的場景,樂隊(即在3scale的視線之外)。
我想我想在這種情況下使用的流程是客戶端Web應用程序/隱式授權流程,但請糾正我,如果我錯了。
我試圖破譯幫助文件,但我仍然有一大堆的問題:
- 我以爲我配置3比例的OAuth登錄網址正是mywebsite.com重定向到相同的URL?或者我需要一個不同的頁面來處理不同的邏輯,並且API調用通常不是交互式/面向用戶的事實?
- 訪問令牌是在用戶通過ssologin.com OAuth登錄頁面登錄到網站後用於後續API調用返回的,還是3scale需要自己的令牌,因此需要自己的登錄重定向? (是否有狀態存儲在網關中的任何位置?)
- 訪問令牌如何傳遞給API調用:作爲參數,作爲HTTP標頭還是通過其他某種機制?
其實我想要做的是實際上使用OpenID Connect並獲取ID令牌,但3scale本身不支持這一點。有沒有什麼我可以用3scale做到這一點,並仍然返回一個ID令牌,有效地使其行爲像OpenID連接?
非常感謝您的全面回答。我認爲我錯過了一件重要的事情,那就是我期望使用雲API網關,而不是內部部署,但是從更多閱讀來看,您只能在自己的nginx服務器(或同等產品)上使用OAuth。我喜歡使用API來存儲和刪除令牌,但需要確保SSO註銷包括清除令牌。 – ChrisC
其實我正在重新思考這個架構......我所看到的SSO提供者實際上提供了對web和API的保護,所以也是一種網關,但是它缺少大部分其他API網關功能API密鑰,管理,度量標準等。我在協調基於雲計算的API網關時遇到了問題,但現在我正在考慮將SSO網關放在API網關(3比例nginx)之前,繞過3scale用於用戶authn/authz完全。這實際上是相當乾淨的責任分離這種方式......思考? – ChrisC