1. 概述
用户需要实现通过 CAS(统一身份认证服务)认证登录数据决策系统,本文提供配置 CAS 单点登录及登出方法索引。
1.1 CAS 简介
CAS 架构包括:CAS 服务器和 CAS 客户端。
CAS 服务器需要独立部署,负责用户信息的验证。一般由企业搭建,并可以连接数据库,新建一张 CAS 用户表,统一管理用户信息。
CAS 客户端为各个需要单点登录的 Web 应用,如 FineReport ,负责处理资源访问请求,当用户需要登录数据决策系统时,重定向到 CAS 服务器。
1.2 CAS 登录原理
用户通过 CAS 认证登录数据决策系统的过程如下:
1)浏览器访问数据决策系统,即访问 CAS 客户端。
2)客户端重定向用户请求到 CAS 服务器。
3)CAS 服务器验证用户的 CAS 账号和密码。
4)验证通过则发放凭证 ticket ,凭借 ticket 跳转访问数据决策系统。
5)数据决策系统向 CAS 服务器验证 ticket 的真实性,是否过期等信息。
6)验证通过后,CAS 服务器返回该 ticket 的用户名,数据决策系统进一步验证返回的用户名是否为系统用户,且为可用状态,验证通过,则单点成功,登入数据决策系统。
如下图所示:
2. 方案一:通过插件实现
该方案无需代码,可通过插件直接实现,方便简单。详情请参见:CAS单点登录插件
3. 方案二:通过代码实现
注:文档提供的该方案,不适用于移动端;若想实现移动端 CAS 单点登录,请参考本文第二章内容。
3.1 CAS 单点登录
CAS 单点登录步骤如下表所示:
步骤 | 简介 | 备注 |
---|---|---|
配置 SSL 证书实现 HTTPS 访问 | 配置 CAS 单点登录需要首先配置网站 HTTPS 支持,否则 CAS 单点登录无法使用 | 必须操作 |
CAS 服务器搭建 | CAS 单点登录需要通过 CAS 服务器进行信息验证,若用户已有 CAS 服务器环境,可忽略该操作 | 选择性操作 |
实现基于数据库的身份验证 | 用户信息如果保存在数据库的某张表中,可参考本文方法实现基于数据库的身份验证,用户根据实际情况选择是否进行该操作 注:CAS 默认的验证是用户名和密码相同。若未做这一步,当密码和用户名相同时,即可通过 CAS 验证 | 选择性操作 |
配置 FineReport 作为 CAS 客户端 | 介绍如何将 FineReport 与 CAS 单点登录结合 | 必须操作 |
注:集群环境下 CAS 单点登录步骤请参见:集群下 CAS 方案
3.2 CAS 单点登出
在没有配置 CAS 单点登出的情况下,当用户登出平台以后只是登出了平台这一个客户端,但是其他的客户端并没有进行退出。可参考 CAS 登出方案 实现登出平台的同时登出其他 CAS 客户端。
3.3 CAS 后进行远程设计
11.0 集成 CAS 之后,远程设计的请求会被 CAS 拦截,导致无法进行远程设计,可参见:11.0集成 CAS 后的远程设计 进行解决。
3.4 报错解决方案
CAS 单点登录过程中,相关报错及解决方案请参见:CAS 报错解决方案