簡體   English   中英

Spring Boot 2 + Oauth2-保護微服務中的其余調用

[英]Spring boot 2 + Oauth2 - Securing the Rest Calls in Microservices

我正在從事spring boot 2微服務。 現在我打算使用OAUTH2確保我的休息電話安全。

我發現有很多關於Spring 2 + OAUTH2集成的文章,但與我的要求不符,所有文章都使用表和使用角色的安全調用,

我的應用程序登錄使用SAML(SSO)進行單點登錄,我的要求是僅授權每個請求。 最好的方法是什么?

  1. 因為使用SSO已經發生登錄,我是否真的需要表為用戶存儲令牌?
  2. 這里唯一的事情就是不管用戶的角色如何都授權請求。

任何建議或github鏈接,以符合簡單的要求,將不勝感激。

@premKumarR

對於您在內存v / s JDBC中哪個更好的評論。 對於Spring Docs,

這是對它們的討論的描述

默認的InMemoryTokenStore非常適合單個服務器(例如,低流量,並且在發生故障的情況下不與備份服務器進行熱交換)。 大多數項目都可以從此處開始,並且可以在開發模式下以這種方式運行,從而可以輕松啟動沒有依賴性的服務器。

JdbcTokenStore是同一事物的JDBC版本,它將令牌數據存儲在關系數據庫中。 如果可以在服務器之間共享數據庫,請使用JDBC版本;如果只有一個,則可以擴展同一服務器的實例;如果有多個組件,則可以使用授權和資源服務器。 要使用JdbcTokenStore,您需要在類路徑上使用“ spring-jdbc”。

文件連結: https : //projects.spring.io/spring-security-oauth/docs/oauth2.html

OAuth2具有創建用於身份驗證的令牌的不同實現。 默認情況下,它通過隨機值創建令牌並處理所有TokenStore除了將其委托給TokenStore的令牌的持久性TokenStore 默認存儲是內存中的實現,但是還有其他一些可用的實現。

JdbcTokenStore是同一事物的JDBC版本,它將令牌數據存儲在關系數據庫中。

存儲的JSON Web Token (JWT)版本,但不保留數據。

所以回答你的問題

  • 因為使用SSO已經發生登錄,我是否真的需要表為用戶存儲令牌?

    不必要。 據我了解,您僅打算進行身份驗證而不生成令牌。

  • 這里唯一的事情就是不管用戶的角色如何都授權請求。

    您可以使用WebSecurityConfigurerAdapter使傳入的請求失效。 例如如下

    公共類配置擴展了WebSecurityConfigurerAdapter {

     @Override public void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() .antMatchers("/authorization-server-1/**", "/login").permitAll() .anyRequest().authenticated(); } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM