如何创建SSO服务提供商?

时间:2014-04-01 09:58:19

标签: java java-ee single-sign-on saml saml-2.0

我是单点登录概念的新手。我们已经有一个管理其用户的Java Web应用程序。现在要求验证将由客户端的SSO Idp(使用SAML)提供,之后请求将转发到我们的应用程序。由于我之前没有实现过这样的事情,我需要澄清以下问题以便继续进行:

  1. 如何在从SSO IdP进行身份验证后检查请求?
  2. 如何管理会话?因为会话将在客户端创建。
  3. 如果他们点击退出,最好留在我们的应用程序中或重定向到用户访问我们的应用程序吗?
  4. 客户端有一个内部应用程序,其中包含许多应用程序的链接,这些应用程序使用相同的SSO IdP。用户无法直接访问互联网。

    任何有助于我理解从IdP方面发起的SSO的教程或起点都会有所帮助。

    谢谢。

1 个答案:

答案 0 :(得分:5)

SSO我通常使用现成的SSO产品,例如OpenAM或shibboleth

  1. 这与产品不同,但通常应用程序会安装一个代理,该代理充当过滤器,检查用户是否使用IDP进行身份验证,如果不是,则过滤器会将用户重定向到IDP。
  2. 通常,SSO产品中存在经过身份验证的会话,该会话仅保留身份验证状态,您的应用程序上仍会有会话以保留应用程序特定的用户信息。
  3. 这也可以由产品处理。注销通常有两种方法。通过重定向或SOAP。通过重定向,用户被重定向到IDP,然后重定向到其签名的不同SP。在SOAP中,您的应用程序对IDP进行Web服务调用,请求注销。然后,IDP将注销请求发送到其他SP。重定向是推荐的方法。
  4. 我建议您阅读technical overview on SAML from Oasis

    在我的博客上,我有一些帖子介绍了SAML

    A short introduction to SAML

    SAML Web Profile

    在我的书A Guide To OpenSAML中,我也写了很多关于这个

    的文章