Single sign on 使用SAML和身份提供者的微服务身份验证

Single sign on 使用SAML和身份提供者的微服务身份验证,single-sign-on,saml,spring-saml,siteminder,Single Sign On,Saml,Spring Saml,Siteminder,我们正在为我们的领域开发微服务 我们需要使用SAML保护微服务 我仔细阅读了SAML文档,发现会有一个身份提供者,我们已经向其注册了我们的应用程序(SP),并且我们应该连接到IdP进行身份验证。我理解我们需要在他们之间建立一个信任圈或联盟 我尝试使用SpringSecuritySAML扩展和ssocycle.com作为IdP,使用提供的示例应用程序进行身份验证。我能够成功地进行相应的身份验证 我的问题是,在微服务体系结构中,我们有多个服务。由于它不是单片的,我们不能只将一个服务作为SP添加到Id

我们正在为我们的领域开发微服务

我们需要使用SAML保护微服务

我仔细阅读了SAML文档,发现会有一个身份提供者,我们已经向其注册了我们的应用程序(SP),并且我们应该连接到IdP进行身份验证。我理解我们需要在他们之间建立一个信任圈或联盟

我尝试使用SpringSecuritySAML扩展和ssocycle.com作为IdP,使用提供的示例应用程序进行身份验证。我能够成功地进行相应的身份验证

我的问题是,在微服务体系结构中,我们有多个服务。由于它不是单片的,我们不能只将一个服务作为SP添加到IdP中

这意味着我拥有的每一项微服务,比如员工、部门、销售等,都应该作为独立的SP应用程序添加到IdP中

我不确定这样做是否有意义或实际上可能

如果有人从事过类似的体系结构/开发,请提供您的想法,从身份验证的角度探讨微服务安全的最佳方法

谢谢, b技术有两种方法:

  • 正如您所说,将每个微服务配置为SP,每个SP与IdP对话以进行SAML身份验证。
    • 如果每个微服务具有不同的用户集、组和角色,则这是合适的
    • 管理员可能需要维护多个SP
  • 将所有micro服务整合并配置到域中的单个SP(可能使用反向代理Web服务器或Access Manager),并将该单个SP与IdP对话以进行SAML身份验证。
    • 如果所有微服务都具有相同的用户、组和角色集,则这是合适的
    • 管理员只需要维护一个SP

  • 谢谢你的回复。是的,所有的微服务都有相同的用户集,但可能有不同的组和角色。我也觉得只有一个SP应该是前进的方向。但是,我不确定如何使用IdP为与域相关的所有服务配置单个SP。我正在使用publicdp,ssocycle.com通过上传服务元数据来添加服务元数据,这是在服务启动时生成的。您能告诉我如何将服务分组到单个域并将其添加到IdP中吗?简单的解决方案是,使用反向代理Web服务器(如Apache反向代理或Nginx)。(1). 在反向代理的配置文件或策略文件中添加所有微服务终结点。(2). 集成反向代理(使用SAML模块)和SAML-SP服务器进行对话。(3). 现在所有服务都受到保护,并将通过IdP的SAML认证。关于如何实现上述方法,请进一步参考反向代理Web服务器(如Apache反向代理或Nginx)。