将Netty应用程序转换为SAML2.0服务提供程序端点的选项

时间:2014-06-23 23:13:31

标签: java single-sign-on netty saml-2.0 opensaml

我有一个使用Netty 4.x框架的应用程序,它可以作为某种服务器。身份验证必须联合,因此现在我需要将其转换为SAML2.0服务提供程序。

我做了一些研究,我担心的是,为了使用现有的SAML2.0解决方案,即OpenAM,PingFederate,服务提供商必须是运行在某种Web容器中的Web应用程序,而不是在我的项目中的案例。这是真的吗?

我是单点登录和联盟世界的新手,我非常感谢所提供的任何信息和提示。

1 个答案:

答案 0 :(得分:0)

SAML通常使用浏览器来保持一个共同的会话"在两个网站之间。

这样做如下:

  • 一个站点A.org在浏览器中启动会话A.
  • 它看到没有SAML身份验证,并发布到SAML身份提供商。通过自动表单提交(JavaScript)浏览器,
  • 身份提供商认为没有SSO会话,登录表单
  • 在登录表单后,它会回复到具有SSO会话ID的站点A.org(可以这么说)。
  • 如果Site B.net上的同一浏览器启动新会话B,它会再次发布到SAML身份提供商,该提供商现在有一个现有的SSO会话ID要返回。

发布到SAML身份提供商的表单会自动回发,并且返回的身份验证也是一个自动发布的表单。一个跨站点脚本的kinde。

SAML servlet过滤器可以接受此结果并将UserPrinciepal放入应用程序请求中。

配置并不太难。您的"服务器",

需要您自己的唯一密钥对

总而言之,这是相当耗时的。它也有助于建立自己的身份提供商。 Apache Shiro是Java EE服务器世界之外的安全解决方案,在我使用SAML时没有SAML解决方案。

如果你有一个运行的演示IdP和SP,那么缩短所有内容应该不会太难。也许使用FireFox和TamperData插件来检查通信。