开源解决方案与CAS服务器配置

在众多的开源解决方案中,CAS(Central Authentication Service)以其安全性和易用性脱颖而出。它不仅提供了一个安全的身份验证机制,而且其源代码是公开的,这意味着任何人都可以查看、使用和改进它。这种开放性使得CAS在公共领域中得到了广泛的应用,并且其实现文档相对完善,这为用户带来了极大的便利。当然,任何技术都不可能完美无缺,CAS也不例外。在实际部署过程中,可能会遇到各种问题,但这些问题通常都能找到解决方案。

本文将介绍如何在一个Redhat服务器上安装和配置CAS服务器,以及如何将其与JBoss服务器上的Web应用程序集成。首先,将在本地主机上进行初步安装和测试,以确保一切正常。

配置CAS服务器

目标是让CAS作为单点登录(SSO)的入口点,使用默认的认证方式(相同的用户名和密码),然后重定向到JBoss上的三个简单的Web应用程序之一。

在配置过程中遇到的第一个障碍是让CAS信任HTTPS所需的自签名证书。首先,创建了一个本地密钥库,并尝试将其导入到系统的Java密钥库中,但这一尝试并未成功。尽管如此,发现直接告诉CAS信任特定的密钥库或证书是有效的。

<bean id="casProxyTicketValidator" class="org.acegisecurity.providers.cas.ticketvalidator.CasProxyTicketValidator" p:casValidate="${cas.securityContext.casProxyTicketValidator.casValidate}" p:serviceProperties-ref="serviceProperties"> <property name="proxyCallbackUrl"> <null/> </property> <property name="trustStore"> <value>/usr/local/cas/mykeystore.jks</value> </property> </bean>

通过上述配置,成功地让CAS信任了自签名证书,并且能够调用应用程序并立即跳转到CAS登录页面进行认证。

接下来,将替换简单的认证方式,使用LDAP模块,并利用现有的Microsoft Active Directory进行认证。用户在启动他们的PC时使用这些凭据进行认证,如果他们想要访问任何JBoss应用程序,他们现在只需要在登录门户(CAS服务器)上进行一次认证。

让CAS与LDAP模块协同工作有点棘手。在能够查询LDAP服务器之前,不得不解决CAS与LDAP证书之间的信任问题。微软管理员提供了LDAP服务器的证书文件,将这个证书导入到之前生成的密钥库中。导入命令如下:

$keytool -import -trustcacerts -keystore /usr/local/cas/mykeystore -storepass 123456 -noprompt -alias mycerts -file ldapserver.cer

这个命令将LDAP服务器的证书添加到CAS信任的密钥库中。在部署生产环境中的CAS时,SSL证书将被签名,因此这类问题应该不会发生。

虽然解决了信任问题,但配置LDAP过滤器和搜索基础仍然是一项挑战。这将是另一篇文章的主题。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485