2017-06-02 203 views
1

我有一个使用spring security和mvc framework开发的门户应用程序。这个门户应用程序连接到IDP(使用Spring安全和spring saml开发)进行身份验证。如果用户身份验证成功,用户将被导航到为外部应用程序提供多个链接的主页...当用户点击应用程序链接时,用户应成功导航到相应的应用程序,而不会对登录页面产生挑战。Spring saml SSO

其他应用程序是使用struts和spring security开发的。如何确保从门户点击链接时,saml标记或上下文将传递给其他应用程序,以便它不会要求登录。

任何帮助,非常感谢。

回答

2

对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对用户进行身份验证并对其声明进行签名有。