我有非常簡單的Spring Boot應用程序和社交單點登錄功能。彈出OAuth2負載平衡器背後的SSO
它看起來像這樣:
@Configuration
@EnableOAuth2Sso
class Application {
// beans
}
,它已要求application.yml
條目:
security:
oauth2:
client:
# clientId: ...
# clientSecret: ...
accessTokenUri: https://www.googleapis.com/oauth2/v3/token
userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
scope: email
resource:
userInfoUri: https://www.googleapis.com/userinfo/v2/me
preferTokenInfo: false
它工作得很好我的本地機器上,當只有一個實例啓動。
當多個實例隱藏在負載平衡器後面時,會發生問題。
即使用戶在所述第一請求認證,之後負載平衡器作出請求被阻塞,由於401
的請求被路由到不同的應用程序實例中相比於所述第一個之一。
我想弄清楚,我怎麼能使用JWT或JDBC無國籍做,所以它可以跨多個實例。不幸的是,我沒有在網上找到任何工作示例。
有一些需要啓動授權服務器。但這不是我的情況,因爲我想完全將授權轉發給第三方提供商(例如Google)。
在這種情況下,我應該如何讓授權在多個實例中工作?
謝謝,最後我用redis的spring會話作爲後端。不幸的是,我也在使用Vaadin,它在這種基礎設施中爲我提供了另一堆問題,但最終我用一些骯髒的黑客攻克了它們。感謝提示! – dmydlarz