春季安全 SAML:授权多个用作单个服务提供商的应用程序



我们目前正在为客户开发应用程序。该项目的限制是我们仅提供可部署的战争档案。客户提供基础架构,并且不允许与之偏离。

使用Spring Boot,Spring Security和SAML开发该应用程序。当前版本是一个单一的战争文件。

目前,由于多种原因(可维护性,部署,代码质量,...),我们正在将此单片应用程序分开。不幸的是,我们还不知道如何使用这些给定的限制来实施授权:


基础结构约束:

  • 应用程序将部署在JBOSS EAP 7.0
  • 客户提供的自定义身份提供商
  • 必须使用SAML 2.0
  • 实施与IDP的通信

自定义IDP具有以下限制:

  • 身份验证是通过代理完成的,这意味着只有身份验证的用户到达应用程序
  • 只能提供一个SP元数据文件,因为它链接到用户数据库。我们想为所有应用程序共享相同的用户数据库。
  • SP元数据文件只能提供一个OssertionConsumerService-Location
  • sosertionConsumerService-Lication在元数据文件中静态定义,不能在Authnrequest中覆盖

问题描述:

每个应用程序必须授权与IDP接收角色和断言。在当前(整体)部署的情况下,这没问题,因为我们只需要一个断言。使用新体系结构,每个应用程序都可以重定向到IDP,但是IDP只能重定向到静态配置的AC。当只有一个AC是可能的?

时,每个应用程序如何接收authnresponse?

有什么想法?

从SAML标准的角度来看,这可以通过SAML IDP代理来实现。您的应用程序充当ServiceProviders仅与IDP代理的IDP部分进行通信。实际的IDP仅与IDP代理的SP分开(因此只有一个ACS URL)。

最新更新