我正在尝试创建一个单点登录系统,在该系统中,未连接任何域的DMZ上的Tomcat服务器上运行的应用程序能够针对多个域进行身份验证,同时仍使用Windows凭据自动登录用户。
关键要求:
这是否有可能,如果有的话,是否有某种框架可以做到这一点?我看过JOSSO,Shibboleth和OpenAM,但似乎都不满足所有五个要求。
JCIFS NtlmHttpFilter
看起来与我要找的完全一样,很遗憾,它已被弃用,不再推荐使用。
Visio图以供参考。
如果域不信任,您实际上仍然可以这样做。但是您必须编写一些代码来设置cookie,然后查找几个jespa.http.HttpSecurityService实例(每个域一个)中的一个来调用doFilter。这意味着您将编写一个小的请求路由器以选择正确的域。有关更详细的说明,请询问IOPLEX支持。
但是请注意,如果实际上没有将客户端加入域,则无论您使用哪种软件或协议,理论上都不可能进行真正的单点登录。您将必须使用“辅助”或“双重登录”样式的协议,例如OpenID或CAS,在该协议中您将被重定向到某个登录页面一次。然后,客户端可以进入任何数量的参与该“ SSO”方案的站点,而无需再次提供凭据(至少无论如何对于会话的其余部分而言)。