【问题标题】:Spring saml SSO春季山姆 SSO
【发布时间】:2017-11-03 06:44:21
【问题描述】:

我有一个使用 spring security 和 mvc 框架开发的门户应用程序。此门户应用程序连接到 IDP(使用 Spring security 和 spring saml 开发)进行身份验证。如果用户认证成功,用户将被导航到主页,该主页为外部应用程序提供了多个链接……当用户点击应用程序链接时,用户应该成功导航到相应的应用程序,而无需挑战登录页面。

其他应用程序是使用 struts 和 spring security 开发的。我如何确保从门户中单击链接时,将 saml 令牌或上下文传递给其他应用程序,因此它不会要求登录。

非常感谢任何帮助。

【问题讨论】:

    标签: spring security single-sign-on saml


    【解决方案1】:

    最常见的 SAML 流程如下所示:

    1. 应用程序(称为服务提供商或 SP)接收来自未经身份验证的用户的请求(任何请求,例如对业务资源的请求)
    2. 它将用户(最常见的是通过 http 重定向)重定向到 IdP(SP 应该已经在其中注册)
    3. 如果用户未通过 IdP 的身份验证(未登录到 SSO),则会显示登录表单并由 IdP 管理登录,直到与 IdP 建立用户会话
    4. 如果用户已经通过 IdP 进行了身份验证(因为他已经是或输入了正确的用户/密码),IdP 会发出其声明令牌并将带有令牌的用户发送回 SP 中的断言消费者服务 (原始申请)
    5. 断言消费者服务(实际上只是一个 API 端点)接收并验证 SAML 令牌并创建自己的与用户的应用程序会话。现在用户已通过应用程序 (SP) 的身份验证
    6. 在向应用程序 (SP) 发出下一个请求时,已经存在会话,因此不涉及 SAML

    请注意,如果已经与 IdP 建立了会话,那么所有这些对于用户来说都是无缝的。发生了一堆重定向,但用户无需输入凭据即可到达应用程序。

    因此,对您的问题的简短回答是,您的外部应用程序需要支持 SAML SSO 并且需要向身份提供商注册,在这种情况下,他们可以只使用 IdP 对用户进行身份验证并签署它可能拥有的声明.

    【讨论】:

      猜你喜欢
      • 2019-04-19
      • 2017-10-06
      • 2016-01-30
      • 2014-10-03
      • 2015-01-10
      • 2014-11-13
      • 2013-12-22
      • 2011-05-15
      相关资源
      最近更新 更多