2017-07-03 41 views
0

我目前正在建設一個微服務在春季啓動以下服務基礎的應用Auth服務器是否應該與微服務架構中的用戶服務結合使用?

  • 驗證服務器(分發的訪問令牌)
  • 用戶服務(如用戶名,密碼,電子郵件用戶信息等)
  • 各種其他不相關的服務

當用戶將其證書的認證服務器後,auth服務器驗證它們是否正確,然後返回一個訪問令牌。

我的問題是,我應該與用戶的服務結合起來,auth服務器,以便查找證書是一個簡單的數據庫調用,或者我應該讓他們作爲獨立的應用程序,讓他們都指向同一個共享的數據庫?有更好的選擇嗎?

回答

1

我通常做的是讓他們分開。賬戶信息(名字,姓氏,聯繫方式,聯繫方式,性別等)與認證/授權無關。另外,一個賬戶可以有多種身份驗證方法(即OAuth,uname-pass,私鑰),這與賬戶數據並不真正相關。所以,我把它們作爲獨立的實體。我知道授權和帳戶數據看起來是一樣的,但它們代表了兩個完全不同的事情,責任非常不同,所以我將它們分開。如果一個用戶不得不看到其他用戶的名字和姓氏,我不希望將其他用戶的憑證從數據庫中取出(很多情況可能會出錯)。

如果您正在考慮Spring Security的UserService,它會使用Auth服務器。

從安全的立場來看,其真相(auth服務器)的單點並且能夠在一個地方解決的問題是一個巨大的優勢。

總之,恕我直言,帳戶和身份驗證可以共享一些屬性,但它們是兩個不同的東西 - 所以我讓他們分開。

希望這會有所幫助。

0

你應該讓他們分開,oauth與身份管理無關,但與授權委託相關。

在oauth2中,您當前有4個角色(資源服務器,資源所有者,客戶端和授權服務器)詢問授權服務器是否必須是資源服務器的一個毫無意義的微服務的一部分。

如果我正確地得到你的情況你的名字是什麼用戶對應於oauth2術語中的資源所有者角色,一些oauth2流(例如client_credentials)直接允許客戶端訪問資源服務器,並且不會有用戶以任何方式暗示。

相關問題