【问题标题】:Can spring-saml and UserDetailsService co-exist?spring-saml 和 UserDetailsS​​ervice 可以共存吗?
【发布时间】:2015-11-10 05:20:21
【问题描述】:

我们的 SaaS webApp 目前使用 spring-security 的 UserDetailsS​​ervice 对用户进行身份验证。

在我们的多租户设置中,每个租户都只能使用自己的数据库架构。到目前为止,这一切都很好。

潜在的新租户希望我们改进应用以支持 SAML。他们的安全基础设施已经到位,我们需要能够连接到他们的 IdP 以仅为该租户执行身份验证。

我找不到显示如何实现此目的的示例。据我了解,spring-saml 示例应用允许多个 IdP,但不允许不同的提供者。

有人对我正在寻找的东西有经验吗?

【问题讨论】:

    标签: spring-security spring-saml


    【解决方案1】:

    您当然可以在同一个应用程序中支持多个身份验证提供程序。只需按照您习惯使用自定义 UserDetailsService 配置您的 <security:http>,按如下方式添加 SAML 过滤器,最终自定义您的入口点以决定是否/何时开始当前或 SAML 身份验证,您就可以开始了。

    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
    

    【讨论】:

    • 我还有 2 个问题:这是否意味着“samlFilter”将被所有人调用
    • 请忽略之前的评论:我太早按了 键(并且不知道 5 分钟编辑规则。:-(
    • 我还有 2 个问题:#1) 这是否意味着所有通过 UserDetailService 的请求或只有失败的请求都会调用“samlFilter”? #2) 正如我在原始帖子中所写,我只希望将特定租户路由到 SAML 基础架构;不是所有的租户。执行该逻辑的最合适位置在哪里?我需要一个自定义的 AuthenticationProvider 吗?
    • 1) 是的,所有请求都会通过过滤器,但过滤器只监控 /saml/* URL,所以它只会通过。 2)自定义入口点是此类逻辑的好地方。
    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2013-05-12
    相关资源
    最近更新 更多