致远OACIP统一认证-CAS认证配置与单点登录
一、CAS认证架构
二、CAS认证流程
2.1 PC端认证流程
2.2 移动端M3认证流程
三、CAS服务搭建
3.1 下载CAS服务
以CAS 4.0.0版本为例,从GitHub下载CAS服务:
3.2 部署CAS到Tomcat
第一步:解压并部署
将 cas-server-webapp-4.0.0.war 放到Tomcat的 webapps 目录下,重命名为 cas.war。
第二步:修改Tomcat端口
打开 conf/server.xml,修改端口防止冲突:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
第三步:修改CAS配置文件
打开 webapps/cas/WEB-INF/cas.properties,修改服务端口:
cas.server.name=http://localhost:8081
cas.server.prefix=http://localhost:8081/cas
第四步:去除HTTPS认证(开发环境)
打开 webapps/cas/WEB-INF/deployerConfigContext.xml,增加参数:
<bean id="proxyAuthenticationHandler"
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:requireSecure="false" />
第五步:添加CAS用户
在 deployerConfigContext.xml 中配置测试用户:
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map>
<entry key="admin" value="admin" />
<entry key="user1" value="user1" />
</map>
</property>
</bean>
四、OA配置CAS过滤器
4.1 修改web.xml
打开 ApacheJetspeed/webapps/seeyon/WEB-INF/web.xml,将CAS过滤器相关配置注释放开:
<!-- CAS过滤器 -->
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>http://localhost:8081/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/caslogin/*</url-pattern>
</filter-mapping>
4.2 配置参数说明
| 参数 | 说明 |
|---|---|
| casServerLoginUrl | CAS服务登录地址 |
| serverName | OA服务地址 |
| filter-name | 过滤器名称 |
| url-pattern | 需要CAS认证的URL模式 |
五、CAS开启REST服务
5.1 添加REST依赖
在CAS的 pom.xml 中添加REST依赖:
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-integration-restlet</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
5.2 添加JAR包
将以下JAR包添加到CAS服务的 lib 目录:
| JAR包 | 说明 |
|---|---|
| cas-server-integration-restlet-4.0.0.jar | CAS REST集成包 |
| org.restlet-2.1.0.jar | Restlet核心包 |
| org.restlet.ext.spring-2.1.0.jar | Restlet Spring扩展 |
| org.restlet.ext.slf4j-2.1.0.jar | Restlet日志扩展 |
| org.restlet.ext.servlet-2.1.0.jar | Restlet Servlet扩展 |
| cglib-full-2.0.2.jar | CGLIB字节码库 |
5.3 配置REST Servlet
在CAS的 web.xml 中添加REST Servlet配置:
<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>org.restlet.ext.spring.RestletFrameworkServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restlet</servlet-name>
<url-pattern>/v1/*</url-pattern>
</servlet-mapping>
六、OA配置CAS服务
6.1 配置入口
路径:管理员后台 → CIP集成平台 → 统一认证 → CAS认证
6.2 配置参数
| 参数 | 说明 | 必填 |
|---|---|---|
| CAS服务地址 | CAS服务的访问地址(注意:是服务地址,不是登录地址) | 是 |
| 启用CAS认证 | 是否启用CAS认证 | 是 |
| 服务地址 | OA服务地址 | 是 |
6.3 配置界面
6.4 配置注意事项
重要提示:配置的是CAS服务地址,不是登录地址!
- 正确配置:
http://localhost:8081/cas - 错误配置:
http://localhost:8081/cas/login
七、重启服务
配置完成后,需要重启OA服务和CAS服务:
八、登录验证
8.1 PC端登录
访问地址:http://localhost/seeyon/caslogin/sso
登录流程:
8.2 移动端M3登录
移动端服务器配置不需要变更,直接使用CAS用户名密码登录即可。
8.3 管理员特殊登录
管理员用户可以直接在原OA地址输入原OA用户名密码登录:
访问地址:http://localhost/seeyon
其他普通用户必须输入CAS用户名密码,通过CAS认证跳转才能登录。
九、退出登录
9.1 PC端退出
如果登录的是CAS 4.0版本,退出A8需要让portal执行以下地址:
http://CAS服务地址/cas/logout?service=A8服务地址/seeyon/caslogin/sso
示例:
http://localhost:8081/cas/logout?service=http://localhost/seeyon/caslogin/sso
9.2 退出注意事项
退出后建议清除浏览器缓存并关闭浏览器,避免Cookie残留导致的登录问题。
十、压力测试注意事项
10.1 关闭CAS配置
如果客户要做压力测试,必须关闭CAS配置,否则会压测失败!
10.2 压测配置
10.3 压测建议
| 建议项 | 说明 |
|---|---|
| 单独压测 | 将CAS认证和OA业务分开压测 |
| 模拟用户 | 使用真实的CAS用户进行压测 |
| 监控指标 | 监控CAS服务响应时间和并发数 |
| 资源配置 | 确保CAS服务器有足够的资源 |
十一、CAS认证常见问题
11.1 登录页面无法访问
现象:访问CAS登录页面时出现404或500错误
排查步骤:
| 检查项 | 说明 |
|---|---|
| Tomcat状态 | 检查Tomcat是否正常启动 |
| 端口配置 | 检查Tomcat端口是否正确 |
| 部署路径 | 检查CAS是否正确部署到webapps目录 |
| 日志查看 | 查看Tomcat日志,定位错误原因 |
11.2 OA无法重定向到CAS
现象:访问OA CAS登录入口时,无法重定向到CAS登录页面
排查步骤:
| 检查项 | 说明 |
|---|---|
| web.xml配置 | 检查CAS过滤器配置是否正确 |
| CAS服务地址 | 检查CAS服务地址是否可达 |
| 网络连接 | 检查OA服务器是否能访问CAS服务器 |
| 端口开放 | 检查CAS服务器端口是否开放 |
11.3 登录后无法跳转回OA
现象:CAS登录成功后,无法跳转回OA
排查步骤:
| 检查项 | 说明 |
|---|---|
| serverName配置 | 检查web.xml中serverName是否正确 |
| OA服务地址 | 检查OA服务地址是否可达 |
| Ticket验证 | 检查CAS是否能验证Ticket |
11.4 移动端无法登录
现象:M3移动端无法通过CAS认证登录
排查步骤:
| 检查项 | 说明 |
|---|---|
| REST服务 | 检查CAS REST服务是否正常 |
| JAR包 | 检查REST相关JAR包是否齐全 |
| web.xml配置 | 检查REST Servlet配置是否正确 |
| 网络连接 | 检查移动端是否能访问CAS服务器 |
11.5 管理员无法直接登录
现象:管理员无法在原OA地址直接登录
排查步骤:
| 检查项 | 说明 |
|---|---|
| 登录地址 | 检查是否使用原OA地址登录 |
| 管理员权限 | 检查用户是否有管理员权限 |
| CAS配置 | 检查CAS配置是否正确 |
十二、CAS安全建议
12.1 HTTPS配置
生产环境建议配置HTTPS:
12.2 用户存储
生产环境建议使用数据库存储用户信息:
12.3 安全加固
| 安全项 | 建议 |
|---|---|
| 密码策略 | 设置强密码策略 |
| 登录失败限制 | 设置登录失败次数限制 |
| 会话超时 | 设置合理的会话超时时间 |
| 日志审计 | 开启登录日志审计 |

浙公网安备 33010602011771号