2016-06-22 132 views
0

我們正在爲我們的域開發微服務。使用SAML和身份提供商的微服務認證

我們需要使用SAML保護微服務。

我閱讀了SAML文檔,看到會有一個身份提供程序,我們已經註冊了我們的應用程序(SP),並且還應該連接到IdP進行身份驗證。我明白我們需要在他們之間建立一個信任或聯合的圈子。

我嘗試使用Spring Security SAML擴展和SSOCircle.com作爲IdP進行身份驗證,使用提供的示例應用程序進行身份驗證。我能夠相應地成功進行身份驗證。

我的問題是,在微服務架構中,我們有多種服務。由於它不是單一的,我們不能只將一項服務作爲SP添加到IdP中。

這意味着我所說的每個微型服務,員工,部門,銷售等也應作爲獨立的SP應用程序添加到IdP中。

我不確定這是否合理或實際可行。

如果有人從事類似的體系結構/開發工作,請提供一些關於從認證角度處理微服務安全問題的最佳方法。

感謝, bstechie

回答

1

兩種方法可以做到這一點:

  1. 正如你所說,配置每個微服務爲SP和每個SP談話國內流離失所者爲SAML驗證。
    • 如果每個微服務具有不同的用戶,組和角色集合,那麼這是合適的。
    • 可能有多個SP,管理員需要維護。
  2. 在您的域中整合並配置所有微服務給單個SP(可能使用反向代理Web服務器或Access Manager),並且該單個SP與IdP進行對話以進行SAML身份驗證。
    • 如果所有微服務都具有相同的用戶,組和角色集合,這是合適的。
    • 可能只有管理員需要維護的單個SP。
+0

感謝您的回覆。是的,所有微服務都有相同的用戶組,但可能有不同的組和角色。我也覺得有一個單一的SP應該是前進的方向。但是,我不確定我們如何使用IdP爲與域相關的所有服務配置單個SP。我正在使用公共IdP,ssocircle.com通過上載它來添加服務元數據,該服務在服務啓動時生成。您能否告訴我如何將服務分組到一個域中並將其添加到IdP中。 – bstechie

+0

簡單的解決方案是,使用反向代理Web服務器(如Apache反向代理或Nginx)。 (1)。在逆向代理的配置或策略文件中添加所有的微服務端點。 (2)。集成反向代理(使用SAML模塊)和您的SAML-SP服務器通話。 (3)。現在所有服務都受到保護,並將通過IdP的SAML身份驗證。 請參考反向代理Web服務器(如Apache反向代理或Nginx)進一步瞭解如何實現上述方法。 – Zeigeist

相關問題