我试图在其中未加入任何域在DMZ中的Tomcat服务器上运行的应用系统创建一个单点登录,能够对多个域进行身份验证的同时还能自动登录使用其Windows凭据用户。
主要要求:
- 必须支持多个域
- 用户不得被提示输入凭据,如果他们是在支持的领域
- Web服务器不能在域
- Web服务器位于DMZ中
- 必须支持的Tomcat 6
这甚至可能,如果是没有任何类型的框架,它支持这样做呢? 我已经看了JOSSO,Shibboleth的,和OpenAM但他们都不满足的要求,所有五个。
该JCIFS NtlmHttpFilter
样子正是我期待的,不幸的是它已被弃用,不再推荐。
Visio图表以供参考。
Jespa可以做到这一点。 如果域有信任,默认Jespa HttpSecurityFilter会工作。 你将不得不捅在防火墙孔Jespa交谈TCP端口445上目标区议会,但。 你可能会想创建一个DNS记录文件(参见Jespa操作手册)绕过DNS,仍然有Jespa使用多个域控制器。
如果域没有信任,实际上你可以仍然这样做。 但是,你必须编写一些代码来设置cookie,然后查找几个jespa.http.HttpSecurityService实例中的一个(每个域)来调用的doFilter上。 这意味着你会写一个小请求,路由器选择正确的域。 对于更详细的解释问IOPLEX支持。
但是请注意,如果客户没有真正加入到域,那么真正的单点登录,无论什么软件或者您使用的协议是理论上是不可能的。 你将不得不使用“二级”或“双签的”类型的协议类似的OpenID或CAS你在哪里得到重定向到一些登录页面一次。 然后客户可以进入任何数量,而无需再次提供凭据参加在“SSO”计划网站(至少在会议余下反正)。
没有办法解决的Kerberos越来越需要从中域访问。 NTLM是没办法,因为它是专有的,不要指望找到一个完整的OSS实现。 只有Jespa 。