2016-06-22 134 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

相关问题