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

Posted

技术标签:

【中文标题】用于多个 Web 应用程序的单个 SAML SP【英文标题】:Single SAML SP for multiple web applications 【发布时间】:2016-08-14 12:08:15 【问题描述】:

我能够使用Spring Saml Extension 在 Java Web 应用程序(不是在 Spring)中使用 ADFS 实现单点登录。我刚刚通过this post。它说:

对于间接选项...将 SAML SP 作为另一个应用程序部署在 您的容器(例如 Spring SAML 或 OpenAM)并使其通信 使用您的应用程序 - 因此 SAML SP 使用 ADFS 执行身份验证 并将其传达给您的应用程序,例如通过共享 cookie 或自定义令牌

我们究竟需要做什么?据我了解,这是基于浏览器的 SSO,其中每个 Web 应用程序都需要使用 Spring saml 插件与 ADFS 进行交互。如果我错了,请纠正我。我们如何将 SAML 令牌从一个 SP 传递给多个应用程序?

【问题讨论】:

【参考方案1】:

上述帖子实际上将基于标准的 WebSSO (SAML) 与专有的 WebSSO(例如 OpenAM)混合在一起。没有将 SAML 断言传递给其他 WebApp,但 WebSSO 的实现方式不同。对于 OpenAM,这是通过 SSO 跟踪 cookie 实现的。

你是正确的,当使用 SAML 时,只有每个应用程序都必须充当 SAML SP(例如,使用 Spring Security SAML 扩展实现基于 Java 的 webapps 或 simpleSAMLphp 用于基于 PHP 的 webapps)。

或者,您可以在 HTTP 反向代理后面部署所有其他应用程序,其中反向代理充当 SAML SP(例如 OpenIG)

【讨论】:

我现在正在检查 Shibboleth SP。将尝试安装和使用。

以上是关于用于多个 Web 应用程序的单个 SAML SP的主要内容,如果未能解决你的问题,请参考以下文章

在期待多个应用程序时,我应该使用 Spring Security SAML 还是 Shiboleth SP?

单个 .jks 文件包含多个 SAML 应用程序的密钥库

Keycloak IdP SAML2 将 XML 元数据导出到 SP

Shibboleth SP 是 SAML 2.0 的实现吗?

Spring saml,第二个本地 SP - 实体别名和上下文提供者

用于断言的 SAML 2.0 格式属性 - 联合身份