2017-01-04 67 views
1

以下是一個示例體系結構。使用Spring的微服務授權

  • 用戶經由API網關
  • API網關進行認證的所有請求
  • 彈簧會話複製http會話到微服務「A」和「B」訪問微服務「A」和「B」。
  • 微服務「C」訪問微服務「A」,沒有任何安全檢查。

Example architecture

什麼是提供瀏覽器和微服務之間的授權檢查的最佳途徑?該解決方案需要解決微服務「C」沒有關聯的「會話」/角色。

具體來說:

  • 如何能方法級授權工作[即。 @PreAuthorize]當微服務「C」沒有用戶?
  • 將所有授權檢查放入API網關並將所有內部微服務通信置於無保護狀態是否有意義?

回答

0

對於來自'C'的請求使用OAuth或JWT怎麼樣?服務A只需要另一個身份驗證提供程序(我假定您已經有一個來自API網關的請求)來驗證該令牌。然後,可以包含權限或提供信息來根據令牌中的其他信息查找權限。這將允許您保留方法級別的身份驗證註釋。

+0

中找到更多詳細信息如何將令牌轉換爲可以通過@PreAuthorize驗證的角色/權限? –

0

API網關可以設置在頭部的X身份驗證令牌與httpsessionheaderStrategy名單。 ,然後每個服務都可以有一個GenericFilter來根據場景設置認證上下文。