我正在考慮爲我的應用程序使用OAuth2。我想實現的架構如下:Spring引導OAuth2單一登錄(註銷)
- 我會有我自己的(和僅此)授權服務器
- 一些資源應用程序使用授權服務器
- 某些客戶端驗證訪問其資源將用戶重定向到Authorization Server以進行身份驗證和成功的應用程序(web,mobile)將消耗資源應用程序上的api。
到目前爲止,我已經設法實現了3個基本應用程序(1個auth服務器,1個資源服務器和1個客戶端)之間的這種交互。我不能工作的是註銷功能。我讀過Dave Syer在他的教程中描述的"notoriously tricky problem",但在這種情況下,我真的需要用戶在註銷後重新登錄。我已經嘗試給訪問令牌和刷新令牌幾秒鐘,但是當到期到期時不再提示再次登錄,我在客戶端應用程序中獲得了NPE。我也嘗試了在此post中提出的解決方案,以從令牌存儲中刪除令牌,但它不起作用。單次簽名對我來說是這個實現的理想行爲。我如何使用Spring Boot Oauth2來實現這一點。如果由於某種原因無法實現,那麼我可以使用哪種替代方法來實現使用Spring Boot的集中安全性?
在此先感謝。
這個簡單的答案讓我成爲一個簡單的解決方案。 –
這段代碼在做什麼?從客戶端應用程序(網站)登出從一個授權服務器註銷用戶?這是否意味着當用戶登錄到多個客戶端應用程序時,從其中一個應用程序註銷會導致從所有客戶端應用程序註銷? – eugene
@eugene我已經使用2個客戶端應用程序測試過這個解決方案,並且從一個註銷時不會影響另一個。此解決方案所做的是,當您單擊註銷並再次單擊登錄時,您必須重新輸入憑據。是解決[[臭名昭着的棘手問題]]的替代方法](https://spring.io/blog/2015/02/03/sso-with-oauth2-angular-js-and-spring-security-part-v#在-註銷體驗)。 –