Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建SSO服务提供商?_Java_Jakarta Ee_Single Sign On_Saml_Saml 2.0 - Fatal编程技术网

Java 如何创建SSO服务提供商?

Java 如何创建SSO服务提供商?,java,jakarta-ee,single-sign-on,saml,saml-2.0,Java,Jakarta Ee,Single Sign On,Saml,Saml 2.0,我不熟悉单点登录的概念。我们已经有了一个Java web应用程序来管理它的用户。现在的要求是,身份验证将由客户端的SSO Idp提供(使用SAML),然后请求将转发到我们的应用程序。因为我以前没有实现过类似的功能,所以我需要澄清以下问题以进一步进行: 如何检查请求是否来自SSO IdP的身份验证 如何管理会话?因为会话将在客户端创建 如果他们点击了注销,是留在我们的应用程序中还是重定向到用户访问我们的应用程序中更好 在客户端有一个内部应用程序,它包含到许多使用相同SSO IdP的应用程序的链接。

我不熟悉单点登录的概念。我们已经有了一个Java web应用程序来管理它的用户。现在的要求是,身份验证将由客户端的SSO Idp提供(使用SAML),然后请求将转发到我们的应用程序。因为我以前没有实现过类似的功能,所以我需要澄清以下问题以进一步进行:

  • 如何检查请求是否来自SSO IdP的身份验证
  • 如何管理会话?因为会话将在客户端创建
  • 如果他们点击了注销,是留在我们的应用程序中还是重定向到用户访问我们的应用程序中更好
  • 在客户端有一个内部应用程序,它包含到许多使用相同SSO IdP的应用程序的链接。用户无法直接访问internet

    任何有助于我理解从IdP端发起的SSO的教程或起点都会很有帮助


    谢谢。

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

  • 这在不同的产品中有所不同,但通常应用程序会安装一个代理,该代理充当一个过滤器,用于检查用户是否通过了IDP的身份验证,如果没有,则过滤器会将用户重定向到IDP
  • 通常,SSO产品中有一个仅保留身份验证状态的已验证会话,但应用程序上仍有一个会话来保留特定于应用程序的用户信息
  • 这也可以由产品来处理。注销通常有两种方法。通过重定向或SOAP。通过重定向,用户将被重定向到IDP,然后是其登录到的不同SP。在SOAP中,您的应用程序对IDP执行webservice调用,请求注销。然后,IDP向其他SP发送注销请求。重定向是推荐的方法
  • 我建议你读这本书

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


    在我的书中,我也写了很多关于这个问题的文章

    这个答案够了吗?谢谢@Stefan这个文档真的很有帮助。