我可以在应用程序中同时实现 SAML 和基本 spring 安全性吗?

Posted

技术标签:

【中文标题】我可以在应用程序中同时实现 SAML 和基本 spring 安全性吗?【英文标题】:can I implement both SAML and basic spring security within an application? 【发布时间】:2015-05-15 16:23:29 【问题描述】:

我对我们的应用程序有要求,我们需要在我们的应用程序中实现 Spring SAML,以便为一位客户启用联合 SSO。但是,我们需要使用 spring-security 为其他客户维护现有的登录流程。

所以我的问题是,我们能否为 Web 应用程序设置两种安全机制,以便将其视为多租户。

我可以在同一个应用程序中实现 OAuth 和 SAML。

提前谢谢..

【问题讨论】:

【参考方案1】:

是的,您可以将现有的密码身份验证与 SAML 结合使用。有关详细信息,请参阅 Spring SAML 的示例应用程序 - 它包含两种方法的组合。也可以包含 OAuth 用例,但我不知道有任何指南。

【讨论】:

在这种情况下如何决定使用哪一个。我需要为 saml 提供单独的 url 模式吗? 您可以将用户名/密码发布到例如/j_spring_security_check,通过重定向到 /saml/login 启动 SAML 身份验证,或从 IDP(通过 IDP 初始化的 SSO)接收 SAML 断言到 /saml/SSO。 Spring Security 在任何情况下都将涉及您的 UserDetailService 实现,您可以在其中进行一些过滤/用户处理,并且在所有情况下,您最终都会得到一个带有用户详细信息的 Authentication 对象。 有人有工作示例或链接吗?我已经启动并运行了示例应用程序,但它有一个拦截器 /** 并将所有内容重定向到 IDP。我一生都找不到你在文档中提到的例子。 github.com/spring-projects/spring-security-saml/blob/master/… /saml/web/* 正在使用基于表单的登录

以上是关于我可以在应用程序中同时实现 SAML 和基本 spring 安全性吗?的主要内容,如果未能解决你的问题,请参考以下文章

没有浏览器的 SAML 和 Java 独立应用程序?

Shibboleth SP 是 SAML 2.0 的实现吗?

spring saml - IDP 发起的 SSO

用于多个 Web 应用程序的单个 SAML SP

在反向代理后面使用 SP 时出现 Spring saml 问题

使用基于 SAML 的基本身份验证进行身份验证?