跨多个域的Tomcat集成Windows身份验证(Tomcat Integrated Windows

2019-10-29 12:16发布

我试图在其中未加入任何域在DMZ中的Tomcat服务器上运行的应用系统创建一个单点登录,能够对多个域进行身份验证的同时还能自动登录使用其Windows凭据用户。

主要要求:

  • 必须支持多个域
  • 用户不得被提示输入凭据,如果他们是在支持的领域
  • Web服务器不能在域
  • Web服务器位于DMZ中
  • 必须支持的Tomcat 6

这甚至可能,如果是没有任何类型的框架,它支持这样做呢? 我已经看了JOSSO,Shibboleth的,和OpenAM但他们都不满足的要求,所有五个。

JCIFS NtlmHttpFilter样子正是我期待的,不幸的是它已被弃用,不再推荐。


Visio图表以供参考。

Answer 1:

Jespa可以做到这一点。 如果域有信任,默认Jespa HttpSecurityFilter会工作。 你将不得不捅在防火墙孔Jespa交谈TCP端口445上目标区议会,但。 你可能会想创建一个DNS记录文件(参见Jespa操作手册)绕过DNS,仍然有Jespa使用多个域控制器。

如果域没有信任,实际上你可以仍然这样做。 但是,你必须编写一些代码来设置cookie,然后查找几个jespa.http.HttpSecurityService实例中的一个(每个域)来调用的doFilter上。 这意味着你会写一个小请求,路由器选择正确的域。 对于更详细的解释问IOPLEX支持。

但是请注意,如果客户没有真正加入到域,那么真正的单点登录,无论什么软件或者您使用的协议是理论上是不可能的。 你将不得不使用“二级”或“双签的”类型的协议类似的OpenID或CAS你在哪里得到重定向到一些登录页面一次。 然后客户可以进入任何数量,而无需再次提供凭据参加在“SSO”计划网站(至少在会议余下反正)。



Answer 2:

没有办法解决的Kerberos越来越需要从中域访问。 NTLM是没办法,因为它是专有的,不要指望找到一个完整的OSS实现。 只有Jespa 。



文章来源: Tomcat Integrated Windows Authentication across Multiple Domains