2015-11-12 61 views
0

我對基於Spring Cloud Netflix(Zuul,Eureka),Spring Security OAuth和Spring Cloud Security的基於微服務的生態系統之間的安全下行調用有疑問。Spring Cloud:困惑代理

例如我有web應用(WEB)和以下微服務:A,B,X,Y,Z

其中:

  • 所有服務(A,B,X, Y,Z)部署在外圍,彼此直接物理訪問。
  • 基於Netflix的API網關Zuul爲部署到周邊的所有服務執行身份驗證功能。
  • 所有服務都接受OAuth令牌進行授權。

和:

  1. A應該有機會獲得服務的X和Y(一些行動)
  2. 乙方應有權訪問服務,Y和Z(一些行動)
  3. 調用所有服務必須在認證用戶的上下文中進行(授權)。

我要解決以下幾個問題(疑惑副題):

  1. 該服務的不應該是能夠執行對服務Z的任何行動,即使身份驗證的用戶有必要的權限( Z)。

例如: 用戶必須執行的操作讀,寫,刪除了服務Z.

但是服務A應不能夠執行對認證的用戶服務Z代表任何操作的權限。

  • 服務A應該能夠對服務X
  • 例如僅執行授予操作:

    用戶具有權限來執行操作READ,寫,刪除服務X.

    但服務A應該只能對已驗證的用戶執行代表服務X的READ操作。

    是否有任何解決方案(使用當前技術)開箱即可解決這些問題?

    回答

    0

    您必須記住,它在邏輯上是執行這些操作的用戶,並且他必須已經隱式或明確地授權他們。考慮到這一點,我知道至少有一種方法可行(UDC在cloudfoundry中是這樣做的)。您可以擴展範圍的名稱空間以包含服務標識,例如「X.READ」,「Z.WRITE」。