【问题标题】:Spring REST, redirect request to another application with params (SSO, SAML)Spring REST,使用参数(SSO,SAML)将请求重定向到另一个应用程序
【发布时间】:2015-12-21 10:50:08
【问题描述】:

我必须实现基于 SAML 提供程序的 SSO 身份验证机制(在 A 应用程序中),如果身份验证成功,则重定向到另一个应用程序(B 应用程序)。在重定向中,我必须包含 SAMLAssertion xml 文档(假设以 base64 编码),以便我可以在另一个应用程序(B 应用程序)中进行身份验证。

应用程序是 Spring Boot 应用程序,具有简单的凭据形式。在提交表单时,有一个对 SAML Idp 的 REST 调用并消耗了响应。如果响应成功,我正在执行重定向到 B 应用程序。在这里,我想包括 Idp 的回复。

B 应用程序是具有自己的用户数据库的复杂 Java 应用程序,我可以在其中实现基于 HTTPServletRequests 的自定义身份验证器,因此我可以同时使用 GET 和 POST 请求。我想根据从 A 应用程序获取的 saml resposne 对这个应用程序中的用户进行身份验证。顺便说一句,B app 不能直接调用 IDp 有几个原因。

如何将 SAML 响应传递给 B 应用程序? 我的方法在 SSO/SAML 方面是否正确?

我知道有几个与此相关的问题,但是我找不到针对我的具体案例的任何解决方案。

【问题讨论】:

    标签: java spring redirect single-sign-on saml


    【解决方案1】:

    为了实现 SSO/SAML,您可以使用开源项目。Shibboleth 和 JOSSO 是开源项目。它们为 IDP 和 SP 提供实现。

    您需要根据需要使用 LDAP、AD 或数据库配置 IDP。

    【讨论】:

    • 我确实有现有的 SAML IDp wokring。我只负责创建新应用程序,该应用程序将通过 SSO SAML 进行身份验证,并具有上述约束。
    • 您需要实现 Web 服务以使 SAML 响应 SP。首先,当用户想要访问资源时,您需要将他重定向到 IDP 应用程序,并且在 IDP 上进行身份验证时需要存储令牌以防用户 id 到 IDP 数据库,然后重定向到 SP 服务器。您需要在 SP 服务器上编写 Web 服务代码以从 IDP 获取更多用户详细信息。
    猜你喜欢
    • 2016-08-19
    • 2020-10-16
    • 2015-05-29
    • 2015-09-27
    • 2012-11-18
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多